diff --git a/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated_cypress.h b/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated_cypress.h index 42e67cd888..454501f5d5 100644 --- a/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated_cypress.h +++ b/firmware/config/boards/cypress/config/controllers/algo/rusefi_generated_cypress.h @@ -295,7 +295,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -340,7 +340,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -397,6 +396,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_outputs.h b/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_outputs.h index 9b8b2de829..9dcd1dbcdd 100644 --- a/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_outputs.h +++ b/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_outputs.h @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellen64_miataNA6_94/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNA6/connectors/main.yaml #pragma once Gpio GENERATED_OUTPUTS = { diff --git a/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_ts_name_by_pin.cpp b/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_ts_name_by_pin.cpp index ba2d264a21..5e97099529 100644 --- a/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_ts_name_by_pin.cpp +++ b/firmware/config/boards/hellen/hellenMiataNA6/connectors/generated_ts_name_by_pin.cpp @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellen64_miataNA6_94/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNA6/connectors/main.yaml #include "pch.h" // see comments at declaration in pin_repository.h diff --git a/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_outputs.h b/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_outputs.h index d26ac0f13b..0611845f5a 100644 --- a/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_outputs.h +++ b/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_outputs.h @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenNA8_96/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNA96/connectors/main.yaml #pragma once Gpio GENERATED_OUTPUTS = { diff --git a/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_ts_name_by_pin.cpp b/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_ts_name_by_pin.cpp index 886632e126..6762c7e2ff 100644 --- a/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_ts_name_by_pin.cpp +++ b/firmware/config/boards/hellen/hellenMiataNA96/connectors/generated_ts_name_by_pin.cpp @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenNA8_96/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNA96/connectors/main.yaml #include "pch.h" // see comments at declaration in pin_repository.h diff --git a/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_outputs.h b/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_outputs.h index e24fac643c..4b4a9ec147 100644 --- a/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_outputs.h +++ b/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_outputs.h @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellen-nb1/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNB1/connectors/main.yaml #pragma once Gpio GENERATED_OUTPUTS = { diff --git a/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_ts_name_by_pin.cpp b/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_ts_name_by_pin.cpp index 82502c23ce..f99e21dce2 100644 --- a/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_ts_name_by_pin.cpp +++ b/firmware/config/boards/hellen/hellenMiataNB1/connectors/generated_ts_name_by_pin.cpp @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellen-nb1/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNB1/connectors/main.yaml #include "pch.h" // see comments at declaration in pin_repository.h diff --git a/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_outputs.h b/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_outputs.h index c863760dc1..a0fade1493 100644 --- a/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_outputs.h +++ b/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_outputs.h @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellen72/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNB2/connectors/main.yaml #pragma once Gpio GENERATED_OUTPUTS = { diff --git a/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_ts_name_by_pin.cpp b/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_ts_name_by_pin.cpp index 7693341967..b903188a84 100644 --- a/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_ts_name_by_pin.cpp +++ b/firmware/config/boards/hellen/hellenMiataNB2/connectors/generated_ts_name_by_pin.cpp @@ -1,6 +1,6 @@ //DO NOT EDIT MANUALLY, let automation work hard. -// auto-generated by PinoutLogic.java based on config/boards/hellen/hellen72/connectors/main.yaml +// auto-generated by PinoutLogic.java based on config/boards/hellen/hellenMiataNB2/connectors/main.yaml #include "pch.h" // see comments at declaration in pin_repository.h diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated_kin.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated_kin.h index 48bf47cf44..1db2b8cee2 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated_kin.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated_kin.h @@ -295,7 +295,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -340,7 +340,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -397,6 +396,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated_subaru_eg33_f7.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated_subaru_eg33_f7.h index eacb4ec13a..2ea5f94a13 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated_subaru_eg33_f7.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated_subaru_eg33_f7.h @@ -323,7 +323,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -368,7 +368,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -425,6 +424,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/algo/auto_generated_enginetypes.cpp b/firmware/controllers/algo/auto_generated_enginetypes.cpp index 4dd1b445c1..40bfde8934 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 enum_to_string.jar tool on Wed Mar 06 20:22:30 UTC 2024 +// was generated automatically by rusEFI tool from engine_types.h // by enum_to_string.jar tool on Wed Mar 06 23:17:04 UTC 2024 // see also gen_config_and_enums.bat @@ -263,8 +263,6 @@ case engine_type_e::HELLEN_4CHAN_STIM_QC: return "HELLEN_4CHAN_STIM_QC"; case engine_type_e::HELLEN_HONDA_BCM: return "HELLEN_HONDA_BCM"; -case engine_type_e::HELLEN_NB1_36: - return "HELLEN_NB1_36"; case engine_type_e::HONDA_600: return "HONDA_600"; case engine_type_e::HONDA_K: @@ -377,6 +375,8 @@ case engine_type_e::UNUSED9: return "UNUSED9"; case engine_type_e::UNUSED93: return "UNUSED93"; +case engine_type_e::UNUSED94: + return "UNUSED94"; case engine_type_e::UNUSED_21: return "UNUSED_21"; case engine_type_e::UNUSED_65: diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNA6.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNA6.h new file mode 100644 index 0000000000..92af25bdc1 --- /dev/null +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNA6.h @@ -0,0 +1,5637 @@ +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:31 UTC 2024 +// by class com.rusefi.output.CHeaderConsumer +// begin +#pragma once +#include "rusefi_types.h" +// start of stft_cell_cfg_s +struct stft_cell_cfg_s { + /** + * Maximum % that the short term fuel trim can add + * units: % + * offset 0 + */ + int8_t maxAdd; + /** + * Maximum % that the short term fuel trim can remove + * units: % + * offset 1 + */ + int8_t maxRemove; + /** + * 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. + * units: sec + * offset 2 + */ + scaled_channel timeConstant; +}; +static_assert(sizeof(stft_cell_cfg_s) == 4); + +// start of stft_s +struct stft_s { + /** + * Below this RPM, the idle region is active + * units: RPM + * offset 0 + */ + scaled_channel maxIdleRegionRpm; + /** + * Below this engine load, the overrun region is active + * units: load + * offset 1 + */ + uint8_t maxOverrunLoad; + /** + * Above this engine load, the power region is active + * units: load + * offset 2 + */ + uint8_t minPowerLoad; + /** + * 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. + * units: % + * offset 3 + */ + scaled_channel deadband; + /** + * Below this temperature, correction is disabled. + * units: C + * offset 4 + */ + int8_t minClt; + /** + * Below this AFR, correction is paused + * units: afr + * offset 5 + */ + scaled_channel minAfr; + /** + * Above this AFR, correction is paused + * units: afr + * offset 6 + */ + scaled_channel maxAfr; + /** + * Delay after starting the engine before beginning closed loop correction. + * units: seconds + * offset 7 + */ + uint8_t startupDelay; + /** + * offset 8 + */ + stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT]; +}; +static_assert(sizeof(stft_s) == 24); + +// start of pid_s +struct pid_s { + /** + * offset 0 + */ + float pFactor; + /** + * offset 4 + */ + float iFactor; + /** + * offset 8 + */ + float dFactor; + /** + * Linear addition to PID logic + * offset 12 + */ + int16_t offset; + /** + * PID dTime + * units: ms + * offset 14 + */ + int16_t periodMs; + /** + * Output Min Duty Cycle + * offset 16 + */ + int16_t minValue; + /** + * Output Max Duty Cycle + * offset 18 + */ + int16_t maxValue; +}; +static_assert(sizeof(pid_s) == 20); + +// start of cranking_parameters_s +struct cranking_parameters_s { + /** + * 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. + * A reasonable starting point is 60mg per liter per cylinder. + * ex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel. + * units: mg + * offset 0 + */ + 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 + * units: RPM + * offset 4 + */ + int16_t rpm; + /** + * need 4 byte alignment + * units: units + * offset 6 + */ + uint8_t alignmentFill_at_6[2]; +}; +static_assert(sizeof(cranking_parameters_s) == 8); + +// start of gppwm_channel +struct gppwm_channel { + /** + * Select a pin to use for PWM or on-off output. + * offset 0 + */ + output_pin_e pin; + /** + * If an error (with a sensor, etc) is detected, this value is used instead of reading from the table. + * This should be a safe value for whatever hardware is connected to prevent damage. + * units: % + * offset 2 + */ + uint8_t dutyIfError; + /** + * need 4 byte alignment + * units: units + * offset 3 + */ + uint8_t alignmentFill_at_3[1]; + /** + * Select a frequency to run PWM at. + * Set this to 0hz to enable on-off mode. + * units: hz + * offset 4 + */ + uint16_t pwmFrequency; + /** + * Hysteresis: in on-off mode, turn the output on when the table value is above this duty. + * units: % + * offset 6 + */ + uint8_t onAboveDuty; + /** + * Hysteresis: in on-off mode, turn the output off when the table value is below this duty. + * units: % + * offset 7 + */ + uint8_t offBelowDuty; + /** + * Selects the Y axis to use for the table. + * offset 8 + */ + gppwm_channel_e loadAxis; + /** + * Selects the X axis to use for the table. + * offset 9 + */ + gppwm_channel_e rpmAxis; + /** + * units: load + * offset 10 + */ + scaled_channel loadBins[GPPWM_LOAD_COUNT]; + /** + * units: RPM + * offset 26 + */ + int16_t rpmBins[GPPWM_RPM_COUNT]; + /** + * units: duty + * offset 42 + */ + scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 106 + */ + uint8_t alignmentFill_at_106[2]; +}; +static_assert(sizeof(gppwm_channel) == 108); + +// start of air_pressure_sensor_config_s +struct air_pressure_sensor_config_s { + /** + * kPa value at low volts + * units: kpa + * offset 0 + */ + float lowValue; + /** + * kPa value at high volts + * units: kpa + * offset 4 + */ + float highValue; + /** + * offset 8 + */ + air_pressure_sensor_type_e type; + /** + * offset 9 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 10 + */ + uint8_t alignmentFill_at_10[2]; +}; +static_assert(sizeof(air_pressure_sensor_config_s) == 12); + +// start of MAP_sensor_config_s +struct MAP_sensor_config_s { + /** + * offset 0 + */ + float samplingAngleBins[MAP_ANGLE_SIZE]; + /** + * MAP averaging sampling start crank degree angle + * units: deg + * offset 32 + */ + float samplingAngle[MAP_ANGLE_SIZE]; + /** + * offset 64 + */ + float samplingWindowBins[MAP_WINDOW_SIZE]; + /** + * MAP averaging angle crank degree duration + * units: deg + * offset 96 + */ + float samplingWindow[MAP_WINDOW_SIZE]; + /** + * offset 128 + */ + air_pressure_sensor_config_s sensor; +}; +static_assert(sizeof(MAP_sensor_config_s) == 140); + +/** + * @brief Thermistor known values + +*/ +// start of thermistor_conf_s +struct thermistor_conf_s { + /** + * these values are in Celcius + * units: *C + * offset 0 + */ + float tempC_1; + /** + * units: *C + * offset 4 + */ + float tempC_2; + /** + * units: *C + * offset 8 + */ + float tempC_3; + /** + * units: Ohm + * offset 12 + */ + float resistance_1; + /** + * units: Ohm + * offset 16 + */ + float resistance_2; + /** + * units: Ohm + * offset 20 + */ + float resistance_3; + /** + * Pull-up resistor value on your board + * units: Ohm + * offset 24 + */ + float bias_resistor; +}; +static_assert(sizeof(thermistor_conf_s) == 28); + +// start of linear_sensor_s +struct linear_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 1 + */ + uint8_t alignmentFill_at_1[3]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * offset 16 + */ + float value2; +}; +static_assert(sizeof(linear_sensor_s) == 20); + +// start of ThermistorConf +struct ThermistorConf { + /** + * offset 0 + */ + thermistor_conf_s config; + /** + * offset 28 + */ + adc_channel_e adcChannel; + /** + * need 4 byte alignment + * units: units + * offset 29 + */ + uint8_t alignmentFill_at_29[3]; +}; +static_assert(sizeof(ThermistorConf) == 32); + +// start of injector_s +struct injector_s { + /** + * This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute + * By the way, g/s = 0.125997881 * (lb/hr) + * g/s = 0.125997881 * (cc/min)/10.5 + * g/s = 0.0119997981 * cc/min + * units: cm3/min + * offset 0 + */ + float flow; + /** + * units: volts + * offset 4 + */ + float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; + /** + * ms delay between injector open and close dead times + * units: ms + * offset 36 + */ + float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; +}; +static_assert(sizeof(injector_s) == 68); + +// start of trigger_config_s +struct trigger_config_s { + /** + * https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers + * set trigger_type X + * offset 0 + */ + trigger_type_e type; + /** + * units: number + * offset 4 + */ + int customTotalToothCount; + /** + * units: number + * offset 8 + */ + int customSkippedToothCount; +}; +static_assert(sizeof(trigger_config_s) == 12); + +// start of afr_sensor_s +struct afr_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * offset 1 + */ + adc_channel_e hwChannel2; + /** + * need 4 byte alignment + * units: units + * offset 2 + */ + uint8_t alignmentFill_at_2[2]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * units: AFR + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * units: AFR + * offset 16 + */ + float value2; +}; +static_assert(sizeof(afr_sensor_s) == 20); + +// start of idle_hardware_s +struct idle_hardware_s { + /** + * units: Hz + * offset 0 + */ + int solenoidFrequency; + /** + * offset 4 + */ + output_pin_e solenoidPin; + /** + * offset 6 + */ + Gpio stepperDirectionPin; + /** + * offset 8 + */ + Gpio stepperStepPin; + /** + * offset 10 + */ + pin_output_mode_e solenoidPinMode; + /** + * need 4 byte alignment + * units: units + * offset 11 + */ + uint8_t alignmentFill_at_11[1]; +}; +static_assert(sizeof(idle_hardware_s) == 12); + +// start of dc_io +struct dc_io { + /** + * offset 0 + */ + Gpio directionPin1; + /** + * offset 2 + */ + Gpio directionPin2; + /** + * Acts as EN pin in two-wire mode + * offset 4 + */ + Gpio controlPin; + /** + * offset 6 + */ + Gpio disablePin; +}; +static_assert(sizeof(dc_io) == 8); + +// start of vr_threshold_s +struct vr_threshold_s { + /** + * units: rpm + * offset 0 + */ + scaled_channel rpmBins[6]; + /** + * units: volts + * offset 6 + */ + scaled_channel values[6]; + /** + * offset 12 + */ + Gpio pin; + /** + * need 4 byte alignment + * units: units + * offset 14 + */ + uint8_t alignmentFill_at_14[2]; +}; +static_assert(sizeof(vr_threshold_s) == 16); + +// start of engine_configuration_s +struct engine_configuration_s { + /** + * http://rusefi.com/wiki/index.php?title=Manual:Engine_Type + * set engine_type X + * offset 0 + */ + engine_type_e engineType; + /** + * offset 2 + */ + uint16_t startButtonSuppressOnStartUpMs; + /** + * Disable sensor sniffer above this rpm + * units: RPM + * offset 4 + */ + uint16_t sensorSnifferRpmThreshold; + /** + * A secondary Rev limit engaged by the driver to help launch the vehicle faster + * units: rpm + * offset 6 + */ + uint16_t launchRpm; + /** + * set rpm_hard_limit X + * units: rpm + * offset 8 + */ + uint16_t rpmHardLimit; + /** + * Engine sniffer would be disabled above this rpm + * set engineSnifferRpmThreshold X + * units: RPM + * offset 10 + */ + uint16_t engineSnifferRpmThreshold; + /** + * Disable multispark above this engine speed. + * units: rpm + * offset 12 + */ + scaled_channel multisparkMaxRpm; + /** + * Above this RPM, disable AC. Set to 0 to disable check. + * units: rpm + * offset 13 + */ + scaled_channel maxAcRpm; + /** + * Above this TPS, disable AC. Set to 0 to disable check. + * units: % + * offset 14 + */ + uint8_t maxAcTps; + /** + * Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check. + * units: deg C + * offset 15 + */ + uint8_t maxAcClt; + /** + * units: RPM + * offset 16 + */ + uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; + /** + * 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. + * units: deg + * offset 48 + */ + uint8_t multisparkMaxSparkingAngle; + /** + * Configures the maximum number of extra sparks to fire (does not include main spark) + * units: count + * offset 49 + */ + uint8_t multisparkMaxExtraSparkCount; + /** + * need 4 byte alignment + * units: units + * offset 50 + */ + uint8_t alignmentFill_at_50[2]; + /** + * offset 52 + */ + injector_s injector; + /** + * offset 120 + */ + injector_s injectorSecondary; + /** + * Does the vehicle have a turbo or supercharger? + offset 188 bit 0 */ + bool isForcedInduction : 1 {}; + /** + * 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. + offset 188 bit 1 */ + bool useFordRedundantTps : 1 {}; + /** + offset 188 bit 2 */ + bool enableKline : 1 {}; + /** + offset 188 bit 3 */ + bool overrideTriggerGaps : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 4 */ + bool enableFan1WithAc : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 5 */ + bool enableFan2WithAc : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 6 */ + bool disableFan1WhenStopped : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 7 */ + bool disableFan2WhenStopped : 1 {}; + /** + * Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines). + offset 188 bit 8 */ + bool enableTrailingSparks : 1 {}; + /** + * TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. + offset 188 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 188 bit 10 */ + bool isDoubleSolenoidIdle : 1 {}; + /** + offset 188 bit 11 */ + bool useEeprom : 1 {}; + /** + * Switch between Industrial and Cic PID implementation + offset 188 bit 12 */ + bool useCicPidForIdle : 1 {}; + /** + offset 188 bit 13 */ + bool useTLE8888_cranking_hack : 1 {}; + /** + offset 188 bit 14 */ + 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 188 bit 15 */ + bool useSeparateIdleTablesForCrankingTaper : 1 {}; + /** + offset 188 bit 16 */ + bool launchControlEnabled : 1 {}; + /** + * "Detect double trigger edges" + offset 188 bit 17 */ + bool doNotFilterTriggerEdgeNoise : 1 {}; + /** + offset 188 bit 18 */ + bool antiLagEnabled : 1 {}; + /** + * For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table). + offset 188 bit 19 */ + 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 188 bit 20 */ + bool displayLogicLevelsInEngineSniffer : 1 {}; + /** + offset 188 bit 21 */ + bool useTLE8888_stepper : 1 {}; + /** + offset 188 bit 22 */ + bool usescriptTableForCanSniffingFiltering : 1 {}; + /** + * Print incoming and outgoing first bus CAN messages in rusEFI console + offset 188 bit 23 */ + bool verboseCan : 1 {}; + /** + * Experimental setting that will cause a misfire + * DO NOT ENABLE. + offset 188 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 188 bit 25 */ + bool useFordRedundantPps : 1 {}; + /** + offset 188 bit 26 */ + bool cltSensorPulldown : 1 {}; + /** + offset 188 bit 27 */ + bool iatSensorPulldown : 1 {}; + /** + offset 188 bit 28 */ + bool allowIdenticalPps : 1 {}; + /** + offset 188 bit 29 */ + bool overrideVvtTriggerGaps : 1 {}; + /** + * If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages + offset 188 bit 30 */ + bool useSpiImu : 1 {}; + /** + offset 188 bit 31 */ + bool enableStagedInjection : 1 {}; + /** + * Closed throttle, 1 volt = 200 units. + * See also tps1_1AdcChannel + * set tps_min X + * units: ADC + * offset 192 + */ + int16_t tpsMin; + /** + * Full throttle. + * See also tps1_1AdcChannel + * set tps_max X + * units: ADC + * offset 194 + */ + int16_t tpsMax; + /** + * TPS error detection: what throttle % is unrealistically low? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 196 + */ + int16_t tpsErrorDetectionTooLow; + /** + * TPS error detection: what throttle % is unrealistically high? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 198 + */ + int16_t tpsErrorDetectionTooHigh; + /** + * offset 200 + */ + cranking_parameters_s cranking; + /** + * Dwell duration while cranking + * units: ms + * offset 208 + */ + float ignitionDwellForCrankingMs; + /** + * Once engine speed passes this value, start reducing ETB angle. + * units: rpm + * offset 212 + */ + uint16_t etbRevLimitStart; + /** + * 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. + * units: rpm + * offset 214 + */ + uint16_t etbRevLimitRange; + /** + * @see isMapAveragingEnabled + * offset 216 + */ + MAP_sensor_config_s map; + /** + * todo: merge with channel settings, use full-scale Thermistor here! + * offset 356 + */ + ThermistorConf clt; + /** + * offset 388 + */ + ThermistorConf iat; + /** + * units: deg + * offset 420 + */ + int launchTimingRetard; + /** + * value '6' for 8MHz hw osc + * read hip9011 datasheet for details + * todo split into two bit fields + * units: integer + * offset 424 + */ + int hip9011PrescalerAndSDO; + /** + * We calculate knock band based of cylinderBore + * Use this to override - kHz knock band override + * Requires power cycling to effect + * units: kHz + * offset 428 + */ + float knockBandCustom; + /** + * Engine displacement in litres + * units: L + * offset 432 + */ + scaled_channel displacement; + /** + * units: RPM + * offset 434 + */ + uint16_t triggerSimulatorRpm; + /** + * Number of cylinder the engine has. + * offset 436 + */ + uint32_t cylindersCount; + /** + * offset 440 + */ + firing_order_e firingOrder; + /** + * need 4 byte alignment + * units: units + * offset 441 + */ + uint8_t alignmentFill_at_441[1]; + /** + * offset 442 + */ + Gpio communityCommsLedPid; + /** + * Cylinder diameter in mm. + * units: mm + * offset 444 + */ + float cylinderBore; + /** + * This setting controls which fuel quantity control algorithm is used. + * 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 448 + */ + engine_load_mode_e fuelAlgorithm; + /** + * units: % + * offset 449 + */ + uint8_t ALSMaxTPS; + /** + * This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous". + * offset 450 + */ + 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. + * offset 451 + */ + 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 452 + */ + uint16_t boostControlMinRpm; + /** + * Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 454 + */ + uint8_t boostControlMinTps; + /** + * Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 455 + */ + uint8_t boostControlMinMap; + /** + * 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 + * units: deg + * offset 456 + */ + angle_t crankingTimingAngle; + /** + * Single coil = distributor + * 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 460 + */ + ignition_mode_e ignitionMode; + /** + * How many consecutive gap rations have to match expected ranges for sync to happen + * units: count + * offset 461 + */ + int8_t gapTrackingLengthOverride; + /** + * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). + * units: kph + * offset 462 + */ + uint8_t maxIdleVss; + /** + * need 4 byte alignment + * units: units + * offset 463 + */ + uint8_t alignmentFill_at_463[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. + * units: kPa + * offset 464 + */ + 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 466 + */ + timing_mode_e timingMode; + /** + * need 4 byte alignment + * units: units + * offset 467 + */ + uint8_t alignmentFill_at_467[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. + * units: RPM + * offset 468 + */ + angle_t fixedModeTiming; + /** + * Angle between Top Dead Center (TDC) and the first trigger event. + * Positive value in case of synchronization point before TDC and negative in case of synchronization point after TDC + * .Knowing this angle allows us to control timing and other angles in reference to TDC. + * set global_trigger_offset_angle X + * units: deg btdc + * offset 472 + */ + 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. + * units: coef + * offset 476 + */ + 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. + * units: coef + * offset 480 + */ + float vbattDividerCoeff; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 484 + */ + float fanOnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 488 + */ + float fanOffTemperature; + /** + * offset 492 + */ + output_pin_e acrPin; + /** + * need 4 byte alignment + * units: units + * offset 494 + */ + uint8_t alignmentFill_at_494[2]; + /** + * 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. + * units: revs/km + * offset 496 + */ + float driveWheelRevPerKm; + /** + * set can_mode X + * offset 500 + */ + can_nbc_e canNbcType; + /** + * need 4 byte alignment + * units: units + * offset 501 + */ + uint8_t alignmentFill_at_501[3]; + /** + * CANbus thread period in ms + * units: ms + * offset 504 + */ + int canSleepPeriodMs; + /** + * offset 508 + */ + uint8_t camDecoder2jzPrecision; + /** + * offset 509 + */ + uint8_t justATempTest; + /** + * offset 510 + */ + uint8_t unusedHere333; + /** + * offset 511 + */ + uint8_t unusedHere334; + /** + * units: index + * offset 512 + */ + int byFirmwareVersion; + /** + * First throttle body, first sensor. See also pedalPositionAdcChannel + * offset 516 + */ + 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 517 + */ + 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 518 + */ + adc_channel_e fuelLevelSensor; + /** + * Second throttle body position sensor, single channel so far + * set_analog_input_pin tps2 X + * offset 519 + */ + adc_channel_e tps2_1AdcChannel; + /** + * 0.1 is a good default value + * units: x + * offset 520 + */ + float idle_derivativeFilterLoss; + /** + * just a temporary solution + * units: angle + * offset 524 + */ + int trailingSparkAngle; + /** + * offset 528 + */ + trigger_config_s trigger; + /** + * Extra air taper amount + * units: % + * offset 540 + */ + float airByRpmTaper; + /** + * offset 544 + */ + spi_device_e hip9011SpiDevice; + /** + * 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. + * units: % + * offset 545 + */ + uint8_t boostControlSafeDutyCycle; + /** + * offset 546 + */ + adc_channel_e mafAdcChannel; + /** + * offset 547 + */ + uint8_t acrRevolutions; + /** + * offset 548 + */ + float unused4bytesHere; + /** + * units: volts + * offset 552 + */ + float adcVcc; + /** + * units: Deg + * offset 556 + */ + 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 560 + */ + brain_input_pin_e camInputs[CAM_INPUTS_COUNT]; + /** + * offset 568 + */ + 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 588 + */ + adc_channel_e throttlePedalPositionAdcChannel; + /** + * TPS/PPS error threshold + * units: % + * offset 589 + */ + scaled_channel etbSplit; + /** + * offset 590 + */ + Gpio tle6240_cs; + /** + * offset 592 + */ + pin_output_mode_e tle6240_csPinMode; + /** + * offset 593 + */ + pin_output_mode_e mc33810_csPinMode; + /** + * Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata + * offset 594 + */ + switch_input_pin_e throttlePedalUpPin; + /** + * @see hasBaroSensor + * offset 596 + */ + air_pressure_sensor_config_s baroSensor; + /** + * offset 608 + */ + idle_hardware_s idle; + /** + * Value between 0 and 100 used in Manual mode + * units: % + * offset 620 + */ + float manIdlePosition; + /** + * Ignition timing to remove when a knock event occurs. + * units: % + * offset 624 + */ + scaled_channel knockRetardAggression; + /** + * After a knock event, reapply timing at this rate. + * units: deg/s + * offset 625 + */ + 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 626 + */ + engineSyncCam_e engineSyncCam; + /** + * Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response. + * offset 627 + */ + 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. + * units: ratio + * offset 628 + */ + 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. + * units: count + * offset 630 + */ + uint8_t vssToothCount; + /** + * Override the Y axis (load) value used for only the Idle VE table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 631 + */ + ve_override_e idleVeOverrideMode; + /** + * offset 632 + */ + Gpio l9779_cs; + /** + * offset 634 + */ + output_pin_e injectionPins[MAX_CYLINDER_COUNT]; + /** + * offset 658 + */ + output_pin_e ignitionPins[MAX_CYLINDER_COUNT]; + /** + * offset 682 + */ + pin_output_mode_e injectionPinMode; + /** + * offset 683 + */ + pin_output_mode_e ignitionPinMode; + /** + * offset 684 + */ + output_pin_e fuelPumpPin; + /** + * offset 686 + */ + pin_output_mode_e fuelPumpPinMode; + /** + * How many consecutive VVT gap rations have to match expected ranges for sync to happen + * units: count + * offset 687 + */ + int8_t gapVvtTrackingLengthOverride; + /** + * Check engine light, also malfunction indicator light. Always blinks once on boot. + * offset 688 + */ + output_pin_e malfunctionIndicatorPin; + /** + * offset 690 + */ + pin_output_mode_e malfunctionIndicatorPinMode; + /** + * offset 691 + */ + pin_output_mode_e fanPinMode; + /** + * offset 692 + */ + output_pin_e fanPin; + /** + * Some cars have a switch to indicate that clutch pedal is all the way down + * offset 694 + */ + switch_input_pin_e clutchDownPin; + /** + * offset 696 + */ + output_pin_e alternatorControlPin; + /** + * offset 698 + */ + pin_output_mode_e alternatorControlPinMode; + /** + * offset 699 + */ + pin_input_mode_e clutchDownPinMode; + /** + * offset 700 + */ + Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT]; + /** + * offset 708 + */ + pin_output_mode_e electronicThrottlePin1Mode; + /** + * offset 709 + */ + spi_device_e max31855spiDevice; + /** + * offset 710 + */ + Gpio debugTriggerSync; + /** + * Digital Potentiometer is used by stock ECU stimulation code + * offset 712 + */ + spi_device_e digitalPotentiometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 713 + */ + uint8_t alignmentFill_at_713[1]; + /** + * offset 714 + */ + Gpio mc33972_cs; + /** + * offset 716 + */ + pin_output_mode_e mc33972_csPinMode; + /** + * Useful in Research&Development phase + * offset 717 + */ + adc_channel_e auxFastSensor1_adcChannel; + /** + * First throttle body, second sensor. + * offset 718 + */ + adc_channel_e tps1_2AdcChannel; + /** + * Second throttle body, second sensor. + * offset 719 + */ + adc_channel_e tps2_2AdcChannel; + /** + * Electronic throttle pedal position input + * Second channel + * See also tps1_1AdcChannel + * See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage + * offset 720 + */ + adc_channel_e throttlePedalPositionSecondAdcChannel; + /** + * units: % + * offset 721 + */ + uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; + /** + * AFR, WBO, EGO - whatever you like to call it + * offset 729 + */ + ego_sensor_e afr_type; + /** + * offset 730 + */ + Gpio mc33810_cs[C_MC33810_COUNT]; + /** + * 0.1 is a good default value + * units: x + * offset 732 + */ + float idle_antiwindupFreq; + /** + * offset 736 + */ + 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. + * units: us + * offset 740 + */ + uint16_t mc33_t_min_boost; + /** + * offset 742 + */ + pin_output_mode_e hip9011CsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 743 + */ + uint8_t alignmentFill_at_743[1]; + /** + * offset 744 + */ + output_pin_e tachOutputPin; + /** + * offset 746 + */ + pin_output_mode_e tachOutputPinMode; + /** + * need 4 byte alignment + * units: units + * offset 747 + */ + uint8_t alignmentFill_at_747[1]; + /** + * offset 748 + */ + output_pin_e mainRelayPin; + /** + * offset 750 + */ + Gpio sdCardCsPin; + /** + * set_can_tx_pin X + * offset 752 + */ + Gpio canTxPin; + /** + * set_can_rx_pin X + * offset 754 + */ + Gpio canRxPin; + /** + * offset 756 + */ + pin_input_mode_e throttlePedalUpPinMode; + /** + * Additional idle % while A/C is active + * units: % + * offset 757 + */ + uint8_t acIdleExtraOffset; + /** + * Ratio between the wheels and your transmission output. + * units: ratio + * offset 758 + */ + scaled_channel finalGearRatio; + /** + * offset 760 + */ + brain_input_pin_e tcuInputSpeedSensorPin; + /** + * offset 762 + */ + uint8_t tcuInputSpeedSensorTeeth; + /** + * need 4 byte alignment + * units: units + * offset 763 + */ + uint8_t alignmentFill_at_763[1]; + /** + * Voltage when the wastegate is closed. + * You probably don't have one of these! + * units: mv + * offset 764 + */ + uint16_t wastegatePositionMin; + /** + * Voltage when the wastegate is fully open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 766 + */ + uint16_t wastegatePositionMax; + /** + * Voltage when the idle valve is closed. + * You probably don't have one of these! + * units: mv + * offset 768 + */ + uint16_t idlePositionMin; + /** + * Voltage when the idle valve is open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 770 + */ + uint16_t idlePositionMax; + /** + * Secondary TTL channel baud rate + * units: BPs + * offset 772 + */ + uint32_t tunerStudioSerialSpeed; + /** + * Just for reference really, not taken into account by any logic at this point + * units: CR + * offset 776 + */ + 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 780 + */ + Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * units: g/s + * offset 784 + */ + scaled_channel fordInjectorSmallPulseSlope; + /** + * offset 786 + */ + pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * offset 788 + */ + adc_channel_e maf2AdcChannel; + /** + * need 4 byte alignment + * units: units + * offset 789 + */ + uint8_t alignmentFill_at_789[1]; + /** + * On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking. + * offset 790 + */ + output_pin_e o2heaterPin; + /** + * offset 792 + */ + pin_output_mode_e o2heaterPinModeTodO; + /** + * units: RPM + * offset 793 + */ + scaled_channel lambdaProtectionMinRpm; + /** + * units: % + * offset 794 + */ + scaled_channel lambdaProtectionMinLoad; + /** + * need 4 byte alignment + * units: units + * offset 795 + */ + uint8_t alignmentFill_at_795[1]; + /** + offset 796 bit 0 */ + bool is_enabled_spi_1 : 1 {}; + /** + offset 796 bit 1 */ + bool is_enabled_spi_2 : 1 {}; + /** + offset 796 bit 2 */ + bool is_enabled_spi_3 : 1 {}; + /** + * enable sd/disable sd + offset 796 bit 3 */ + bool isSdCardEnabled : 1 {}; + /** + * Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format. + offset 796 bit 4 */ + bool rusefiVerbose29b : 1 {}; + /** + offset 796 bit 5 */ + bool rethrowHardFault : 1 {}; + /** + offset 796 bit 6 */ + bool isHip9011Enabled : 1 {}; + /** + offset 796 bit 7 */ + bool requireFootOnBrakeToCrank : 1 {}; + /** + offset 796 bit 8 */ + bool verboseQuad : 1 {}; + /** + * This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed. + offset 796 bit 9 */ + bool useStepperIdle : 1 {}; + /** + offset 796 bit 10 */ + bool enabledStep1Limiter : 1 {}; + /** + offset 796 bit 11 */ + bool useTpicAdvancedMode : 1 {}; + /** + offset 796 bit 12 */ + bool lambdaProtectionEnable : 1 {}; + /** + offset 796 bit 13 */ + bool verboseTLE8888 : 1 {}; + /** + * CAN broadcast using custom rusEFI protocol + * enable can_broadcast/disable can_broadcast + offset 796 bit 14 */ + bool enableVerboseCanTx : 1 {}; + /** + offset 796 bit 15 */ + bool etb1configured : 1 {}; + /** + offset 796 bit 16 */ + bool etb2configured : 1 {}; + /** + * Useful for individual intakes + offset 796 bit 17 */ + bool measureMapOnlyInOneCylinder : 1 {}; + /** + offset 796 bit 18 */ + 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 796 bit 19 */ + 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 796 bit 20 */ + 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 796 bit 21 */ + bool useIacTableForCoasting : 1 {}; + /** + offset 796 bit 22 */ + bool useNoiselessTriggerDecoder : 1 {}; + /** + offset 796 bit 23 */ + 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 796 bit 24 */ + bool disableEtbWhenEngineStopped : 1 {}; + /** + offset 796 bit 25 */ + 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 796 bit 26 */ + bool pauseEtbControl : 1 {}; + /** + offset 796 bit 27 */ + bool alignEngineSnifferAtTDC : 1 {}; + /** + offset 796 bit 28 */ + bool verboseKLine : 1 {}; + /** + offset 796 bit 29 */ + bool idleIncrementalPidCic : 1 {}; + /** + * AEM X-Series or rusEFI Wideband + offset 796 bit 30 */ + bool enableAemXSeries : 1 {}; + /** + offset 796 bit 31 */ + bool unusedBit_230_31 : 1 {}; + /** + * offset 800 + */ + brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]; + /** + * offset 808 + */ + pin_output_mode_e mainRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 809 + */ + uint8_t alignmentFill_at_809[1]; + /** + * offset 810 + */ + Gpio hip9011CsPin; + /** + * offset 812 + */ + Gpio hip9011IntHoldPin; + /** + * offset 814 + */ + pin_output_mode_e hip9011IntHoldPinMode; + /** + * need 4 byte alignment + * units: units + * offset 815 + */ + uint8_t alignmentFill_at_815[1]; + /** + * offset 816 + */ + uint32_t verboseCanBaseAddress; + /** + * Boost Voltage + * units: v + * offset 820 + */ + uint8_t mc33_hvolt; + /** + * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. + * units: kPa + * offset 821 + */ + uint8_t minimumBoostClosedLoopMap; + /** + * Optional Radiator Fan used with A/C + * offset 822 + */ + output_pin_e acFanPin; + /** + * offset 824 + */ + pin_output_mode_e acFanPinMode; + /** + * offset 825 + */ + spi_device_e l9779spiDevice; + /** + * units: volts + * offset 826 + */ + scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; + /** + * offset 834 + */ + imu_type_e imuType; + /** + * units: multiplier + * offset 835 + */ + scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 843 + */ + uint8_t alignmentFill_at_843[1]; + /** + * units: kg + * offset 844 + */ + uint16_t vehicleWeight; + /** + * How far above idle speed do we consider idling, i.e. coasting detection threshold. + * For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle. + * units: RPM + * offset 846 + */ + int16_t idlePidRpmUpperLimit; + /** + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + * units: ms + * offset 848 + */ + scaled_channel applyNonlinearBelowPulse; + /** + * offset 850 + */ + Gpio lps25BaroSensorScl; + /** + * offset 852 + */ + Gpio lps25BaroSensorSda; + /** + * offset 854 + */ + brain_input_pin_e vehicleSpeedSensorInputPin; + /** + * Some vehicles have a switch to indicate that clutch pedal is all the way up + * offset 856 + */ + switch_input_pin_e clutchUpPin; + /** + * offset 858 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + * offset 859 + */ + pin_input_mode_e clutchUpPinMode; + /** + * offset 860 + */ + Gpio max31855_cs[EGT_CHANNEL_COUNT]; + /** + * Continental/GM flex fuel sensor, 50-150hz type + * offset 876 + */ + brain_input_pin_e flexSensorPin; + /** + * offset 878 + */ + Gpio test557pin; + /** + * offset 880 + */ + pin_output_mode_e stepperDirectionPinMode; + /** + * offset 881 + */ + spi_device_e mc33972spiDevice; + /** + * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 + * units: :1 + * offset 882 + */ + scaled_channel stoichRatioSecondary; + /** + * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. + * units: % + * offset 883 + */ + uint8_t etbMaximumPosition; + /** + * Rate the ECU will log to the SD card, in hz (log lines per second). + * units: hz + * offset 884 + */ + uint16_t sdCardLogFrequency; + /** + * offset 886 + */ + adc_channel_e idlePositionChannel; + /** + * need 4 byte alignment + * units: units + * offset 887 + */ + uint8_t alignmentFill_at_887[1]; + /** + * offset 888 + */ + Gpio debugMapAveraging; + /** + * offset 890 + */ + output_pin_e starterRelayDisablePin; + /** + * On some vehicles we can disable starter once engine is already running + * offset 892 + */ + pin_output_mode_e starterRelayDisablePinMode; + /** + * need 4 byte alignment + * units: units + * offset 893 + */ + uint8_t alignmentFill_at_893[1]; + /** + * Some Subaru and some Mazda use double-solenoid idle air valve + * offset 894 + */ + output_pin_e secondSolenoidPin; + /** + * See also starterControlPin + * offset 896 + */ + switch_input_pin_e startStopButtonPin; + /** + * need 4 byte alignment + * units: units + * offset 898 + */ + uint8_t alignmentFill_at_898[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. + * units: count + * offset 900 + */ + 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%. + * units: % + * offset 904 + */ + int16_t idlePidDeactivationTpsThreshold; + /** + * units: % + * offset 906 + */ + int16_t stepperParkingExtraSteps; + /** + * units: ADC + * offset 908 + */ + uint16_t tps1SecondaryMin; + /** + * units: ADC + * offset 910 + */ + uint16_t tps1SecondaryMax; + /** + * units: rpm + * offset 912 + */ + int16_t antiLagRpmTreshold; + /** + * Maximum time to crank starter when start/stop button is pressed + * units: Seconds + * offset 914 + */ + uint16_t startCrankingDuration; + /** + * This pin is used for debugging - snap a logic analyzer on it and see if it's ever high + * offset 916 + */ + Gpio triggerErrorPin; + /** + * offset 918 + */ + pin_output_mode_e triggerErrorPinMode; + /** + * need 4 byte alignment + * units: units + * offset 919 + */ + uint8_t alignmentFill_at_919[1]; + /** + * offset 920 + */ + output_pin_e acRelayPin; + /** + * units: % + * offset 922 + */ + uint8_t lambdaProtectionMinTps; + /** + * Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed + * units: s + * offset 923 + */ + scaled_channel lambdaProtectionTimeout; + /** + * units: RPM + * offset 924 + */ + scaled_channel lambdaProtectionRestoreRpm; + /** + * offset 925 + */ + pin_output_mode_e acRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 926 + */ + uint8_t alignmentFill_at_926[2]; + /** + * offset 928 + */ + script_setting_t scriptSetting[SCRIPT_SETTING_COUNT]; + /** + * offset 960 + */ + Gpio spi1mosiPin; + /** + * offset 962 + */ + Gpio spi1misoPin; + /** + * offset 964 + */ + Gpio spi1sckPin; + /** + * offset 966 + */ + Gpio spi2mosiPin; + /** + * offset 968 + */ + Gpio spi2misoPin; + /** + * offset 970 + */ + Gpio spi2sckPin; + /** + * offset 972 + */ + Gpio spi3mosiPin; + /** + * offset 974 + */ + Gpio spi3misoPin; + /** + * offset 976 + */ + Gpio spi3sckPin; + /** + * Saab Combustion Detection Module knock signal input pin + * also known as Saab Ion Sensing Module + * offset 978 + */ + Gpio cdmInputPin; + /** + * offset 980 + */ + uart_device_e consoleUartDevice; + /** + * rusEFI console Sensor Sniffer mode + * offset 981 + */ + sensor_chart_e sensorChartMode; + /** + * offset 982 + */ + maf_sensor_type_e mafSensorType; + /** + * need 4 byte alignment + * units: units + * offset 983 + */ + uint8_t alignmentFill_at_983[1]; + /** + offset 984 bit 0 */ + bool clutchUpPinInverted : 1 {}; + /** + offset 984 bit 1 */ + bool clutchDownPinInverted : 1 {}; + /** + * If enabled we use two H-bridges to drive stepper idle air valve + offset 984 bit 2 */ + bool useHbridgesToDriveIdleStepper : 1 {}; + /** + offset 984 bit 3 */ + bool multisparkEnable : 1 {}; + /** + offset 984 bit 4 */ + bool enableLaunchRetard : 1 {}; + /** + offset 984 bit 5 */ + bool canInputBCM : 1 {}; + /** + * This property is useful if using rusEFI as TCM or BCM only + offset 984 bit 6 */ + bool consumeObdSensors : 1 {}; + /** + * Read VSS from OEM CAN bus according to selected CAN vehicle configuration. + offset 984 bit 7 */ + bool enableCanVss : 1 {}; + /** + offset 984 bit 8 */ + bool enableInnovateLC2 : 1 {}; + /** + offset 984 bit 9 */ + 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. + offset 984 bit 10 */ + bool stftIgnoreErrorMagnitude : 1 {}; + /** + offset 984 bit 11 */ + bool vvtBooleanForVerySpecialCases : 1 {}; + /** + offset 984 bit 12 */ + bool enableSoftwareKnock : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable vvt_details + offset 984 bit 13 */ + bool verboseVVTDecoding : 1 {}; + /** + * get invertCamVVTSignal + offset 984 bit 14 */ + bool invertCamVVTSignal : 1 {}; + /** + * In Alpha-N mode, compensate for air temperature. + offset 984 bit 15 */ + bool alphaNUseIat : 1 {}; + /** + offset 984 bit 16 */ + bool knockBankCyl1 : 1 {}; + /** + offset 984 bit 17 */ + bool knockBankCyl2 : 1 {}; + /** + offset 984 bit 18 */ + bool knockBankCyl3 : 1 {}; + /** + offset 984 bit 19 */ + bool knockBankCyl4 : 1 {}; + /** + offset 984 bit 20 */ + bool knockBankCyl5 : 1 {}; + /** + offset 984 bit 21 */ + bool knockBankCyl6 : 1 {}; + /** + offset 984 bit 22 */ + bool knockBankCyl7 : 1 {}; + /** + offset 984 bit 23 */ + bool knockBankCyl8 : 1 {}; + /** + offset 984 bit 24 */ + bool knockBankCyl9 : 1 {}; + /** + offset 984 bit 25 */ + bool knockBankCyl10 : 1 {}; + /** + offset 984 bit 26 */ + bool knockBankCyl11 : 1 {}; + /** + offset 984 bit 27 */ + bool knockBankCyl12 : 1 {}; + /** + offset 984 bit 28 */ + bool tcuEnabled : 1 {}; + /** + offset 984 bit 29 */ + bool canBroadcastUseChannelTwo : 1 {}; + /** + * If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils + offset 984 bit 30 */ + bool useRawOutputToDriveIdleStepper : 1 {}; + /** + * Print incoming and outgoing second bus CAN messages in rusEFI console + offset 984 bit 31 */ + bool verboseCan2 : 1 {}; + /** + * offset 988 + */ + dc_io etbIo[ETB_COUNT]; + /** + * Wastegate control Solenoid + * offset 1004 + */ + output_pin_e boostControlPin; + /** + * offset 1006 + */ + pin_output_mode_e boostControlPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1007 + */ + uint8_t alignmentFill_at_1007[1]; + /** + * offset 1008 + */ + switch_input_pin_e ALSActivatePin; + /** + * offset 1010 + */ + switch_input_pin_e launchActivatePin; + /** + * offset 1012 + */ + pid_s boostPid; + /** + * offset 1032 + */ + boostType_e boostType; + /** + * offset 1033 + */ + pin_input_mode_e ignitionKeyDigitalPinMode; + /** + * offset 1034 + */ + Gpio ignitionKeyDigitalPin; + /** + * units: Hz + * offset 1036 + */ + int boostPwmFrequency; + /** + * offset 1040 + */ + launchActivationMode_e launchActivationMode; + /** + * offset 1041 + */ + antiLagActivationMode_e antiLagActivationMode; + /** + * need 4 byte alignment + * units: units + * offset 1042 + */ + uint8_t alignmentFill_at_1042[2]; + /** + * Launch disabled above this speed if setting is above zero + * units: Kph + * offset 1044 + */ + int launchSpeedThreshold; + /** + * Range from Launch RPM for Timing Retard to activate + * units: RPM + * offset 1048 + */ + int launchTimingRpmRange; + /** + * Spark Skip Transition Target + * units: % + * offset 1052 + */ + int launchSparkSkipPercent; + /** + * Duty Cycle for the Boost Solenoid + * units: % + * offset 1056 + */ + int launchBoostDuty; + /** + * Range from Launch RPM to activate Hard Cut + * units: RPM + * offset 1060 + */ + int hardCutRpmRange; + /** + * offset 1064 + */ + float turbochargerFilter; + /** + * offset 1068 + */ + int launchTpsThreshold; + /** + * offset 1072 + */ + float launchActivateDelay; + /** + * offset 1076 + */ + stft_s stft; + /** + * offset 1100 + */ + dc_io stepperDcIo[DC_PER_STEPPER]; + /** + * For example, BMW, GM or Chevrolet + * REQUIRED for rusEFI Online + * offset 1116 + */ + vehicle_info_t engineMake; + /** + * For example, LS1 or NB2 + * REQUIRED for rusEFI Online + * offset 1148 + */ + vehicle_info_t engineCode; + /** + * For example, Hunchback or Orange Miata + * Vehicle name has to be unique between your vehicles. + * REQUIRED for rusEFI Online + * offset 1180 + */ + vehicle_info_t vehicleName; + /** + * offset 1212 + */ + output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT]; + /** + * offset 1224 + */ + dc_function_e etbFunctions[ETB_COUNT]; + /** + * offset 1226 + */ + spi_device_e drv8860spiDevice; + /** + * need 4 byte alignment + * units: units + * offset 1227 + */ + uint8_t alignmentFill_at_1227[1]; + /** + * offset 1228 + */ + Gpio drv8860_cs; + /** + * offset 1230 + */ + pin_output_mode_e drv8860_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1231 + */ + uint8_t alignmentFill_at_1231[1]; + /** + * offset 1232 + */ + Gpio drv8860_miso; + /** + * units: volt + * offset 1234 + */ + scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; + /** + * offset 1250 + */ + output_pin_e luaOutputPins[LUA_PWM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 1266 + */ + uint8_t alignmentFill_at_1266[2]; + /** + * Angle between cam sensor and VVT zero position + * set vvt_offset X + * units: value + * offset 1268 + */ + float vvtOffsets[CAM_INPUTS_COUNT]; + /** + * offset 1284 + */ + vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT]; + /** + * offset 1316 + */ + gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; + /** + * units: ADC + * offset 1380 + */ + uint16_t tps2SecondaryMin; + /** + * units: ADC + * offset 1382 + */ + uint16_t tps2SecondaryMax; + /** + * Select which bus the wideband controller is attached to. + offset 1384 bit 0 */ + bool widebandOnSecondBus : 1 {}; + /** + * Enables lambda sensor closed loop feedback for fuelling. + offset 1384 bit 1 */ + bool fuelClosedLoopCorrectionEnabled : 1 {}; + /** + * On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines. + offset 1384 bit 2 */ + bool oddFireEngine : 1 {}; + /** + offset 1384 bit 3 */ + bool boardUseTachPullUp : 1 {}; + /** + offset 1384 bit 4 */ + bool boardUseTempPullUp : 1 {}; + /** + offset 1384 bit 5 */ + bool yesUnderstandLocking : 1 {}; + /** + * Sometimes we have a performance issue while printing error + offset 1384 bit 6 */ + bool silentTriggerError : 1 {}; + /** + offset 1384 bit 7 */ + bool useLinearCltSensor : 1 {}; + /** + * enable can_read/disable can_read + offset 1384 bit 8 */ + bool canReadEnabled : 1 {}; + /** + * enable can_write/disable can_write. See also can1ListenMode + offset 1384 bit 9 */ + bool canWriteEnabled : 1 {}; + /** + offset 1384 bit 10 */ + bool useLinearIatSensor : 1 {}; + /** + offset 1384 bit 11 */ + bool boardUse2stepPullDown : 1 {}; + /** + * Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50% + offset 1384 bit 12 */ + bool tachPulseDurationAsDutyCycle : 1 {}; + /** + * This enables smart alternator control and activates the extra alternator settings. + offset 1384 bit 13 */ + bool isAlternatorControlEnabled : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the primary engine speed sensor. + offset 1384 bit 14 */ + bool invertPrimaryTriggerSignal : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the secondary engine speed sensor. + offset 1384 bit 15 */ + bool invertSecondaryTriggerSignal : 1 {}; + /** + offset 1384 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 1384 bit 17 */ + bool cutSparkOnHardLimit : 1 {}; + /** + offset 1384 bit 18 */ + bool launchFuelCutEnable : 1 {}; + /** + * This is the Cut Mode normally used + offset 1384 bit 19 */ + bool launchSparkCutEnable : 1 {}; + /** + offset 1384 bit 20 */ + bool boardUseCrankPullUp : 1 {}; + /** + offset 1384 bit 21 */ + bool boardUseCamPullDown : 1 {}; + /** + offset 1384 bit 22 */ + bool boardUseCamVrPullUp : 1 {}; + /** + offset 1384 bit 23 */ + bool boardUseD2PullDown : 1 {}; + /** + offset 1384 bit 24 */ + bool boardUseD3PullDown : 1 {}; + /** + offset 1384 bit 25 */ + bool boardUseD4PullDown : 1 {}; + /** + offset 1384 bit 26 */ + bool boardUseD5PullDown : 1 {}; + /** + * Are you a developer troubleshooting TS over CAN ISO/TP? + offset 1384 bit 27 */ + bool verboseIsoTp : 1 {}; + /** + offset 1384 bit 28 */ + bool engineSnifferFocusOnInputs : 1 {}; + /** + offset 1384 bit 29 */ + bool launchActivateInverted : 1 {}; + /** + offset 1384 bit 30 */ + bool twoStroke : 1 {}; + /** + * Where is your primary skipped wheel located? + offset 1384 bit 31 */ + bool skippedWheelOnCam : 1 {}; + /** + * offset 1388 + */ + adc_channel_e hipOutputChannel; + /** + * need 4 byte alignment + * units: units + * offset 1389 + */ + uint8_t alignmentFill_at_1389[1]; + /** + * A/C button input + * offset 1390 + */ + switch_input_pin_e acSwitch; + /** + * offset 1392 + */ + adc_channel_e vRefAdcChannel; + /** + * Expected neutral position + * units: % + * offset 1393 + */ + uint8_t etbNeutralPosition; + /** + * See also idleRpmPid + * offset 1394 + */ + idle_mode_e idleMode; + /** + * need 4 byte alignment + * units: units + * offset 1395 + */ + uint8_t alignmentFill_at_1395[1]; + /** + offset 1396 bit 0 */ + bool isInjectionEnabled : 1 {}; + /** + offset 1396 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 1396 bit 2 */ + bool isCylinderCleanupEnabled : 1 {}; + /** + * Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values? + offset 1396 bit 3 */ + bool complexWallModel : 1 {}; + /** + * RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution + offset 1396 bit 4 */ + bool alwaysInstantRpm : 1 {}; + /** + offset 1396 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 1396 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 1396 bit 7 */ + bool useSeparateAdvanceForIdle : 1 {}; + /** + offset 1396 bit 8 */ + bool isWaveAnalyzerEnabled : 1 {}; + /** + * This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling. + offset 1396 bit 9 */ + bool useSeparateVeForIdle : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable trigger_details + offset 1396 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 1396 bit 11 */ + bool isManualSpinningMode : 1 {}; + /** + offset 1396 bit 12 */ + bool cutFuelInAcr : 1 {}; + /** + offset 1396 bit 13 */ + bool hondaK : 1 {}; + /** + * This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark). + offset 1396 bit 14 */ + bool twoWireBatchIgnition : 1 {}; + /** + offset 1396 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 1396 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 1396 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 1396 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 1396 bit 19 */ + bool useIacPidMultTable : 1 {}; + /** + offset 1396 bit 20 */ + bool isBoostControlEnabled : 1 {}; + /** + * Interpolates the Ignition Retard from 0 to 100% within the RPM Range + offset 1396 bit 21 */ + bool launchSmoothRetard : 1 {}; + /** + * Some engines are OK running semi-random sequential while other engine require phase synchronization + offset 1396 bit 22 */ + bool isPhaseSyncRequiredForIgnition : 1 {}; + /** + * If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value. + offset 1396 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 1396 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 1396 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 1396 bit 26 */ + bool invertVvtControlExhaust : 1 {}; + /** + offset 1396 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 1396 bit 28 */ + bool sdTriggerLog : 1 {}; + /** + offset 1396 bit 29 */ + bool ALSActivateInverted : 1 {}; + /** + offset 1396 bit 30 */ + bool stepper_dc_use_two_wires : 1 {}; + /** + offset 1396 bit 31 */ + bool watchOutForLinearTime : 1 {}; + /** + * units: count + * offset 1400 + */ + uint32_t engineChartSize; + /** + * units: mult + * offset 1404 + */ + float turboSpeedSensorMultiplier; + /** + * offset 1408 + */ + Gpio camInputsDebug[CAM_INPUTS_COUNT]; + /** + * Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling. + * units: RPM + * offset 1416 + */ + int16_t acIdleRpmTarget; + /** + * set warningPeriod X + * units: seconds + * offset 1418 + */ + int16_t warningPeriod; + /** + * units: angle + * offset 1420 + */ + float knockDetectionWindowStart; + /** + * units: angle + * offset 1424 + */ + float knockDetectionWindowEnd; + /** + * units: ms + * offset 1428 + */ + float idleStepperReactionTime; + /** + * units: count + * offset 1432 + */ + int idleStepperTotalSteps; + /** + * TODO: finish this #413 + * units: sec + * offset 1436 + */ + 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. + * units: index + * offset 1440 + */ + int mapAveragingSchedulingAtIndex; + /** + * Duration in ms or duty cycle depending on selected mode + * offset 1444 + */ + float tachPulseDuractionMs; + /** + * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. + * units: Seconds + * offset 1448 + */ + float wwaeTau; + /** + * offset 1452 + */ + pid_s alternatorControl; + /** + * offset 1472 + */ + pid_s etb; + /** + * offset 1492 + */ + Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; + /** + * RPM range above upper limit for extra air taper + * units: RPM + * offset 1496 + */ + int16_t airTaperRpmRange; + /** + * offset 1498 + */ + brain_input_pin_e turboSpeedSensorInputPin; + /** + * Closed throttle#2. todo: extract these two fields into a structure + * See also tps2_1AdcChannel + * set tps2_min X + * units: ADC + * offset 1500 + */ + int16_t tps2Min; + /** + * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! + * See also tps1_1AdcChannel + * set tps2_max X + * units: ADC + * offset 1502 + */ + int16_t tps2Max; + /** + * See also startStopButtonPin + * offset 1504 + */ + output_pin_e starterControlPin; + /** + * offset 1506 + */ + pin_input_mode_e startStopButtonMode; + /** + * need 4 byte alignment + * units: units + * offset 1507 + */ + uint8_t alignmentFill_at_1507[1]; + /** + * offset 1508 + */ + Gpio mc33816_flag0; + /** + * units: Pulse + * offset 1510 + */ + uint8_t tachPulsePerRev; + /** + * need 4 byte alignment + * units: units + * offset 1511 + */ + uint8_t alignmentFill_at_1511[1]; + /** + * kPa value which is too low to be true + * units: kPa + * offset 1512 + */ + float mapErrorDetectionTooLow; + /** + * kPa value which is too high to be true + * units: kPa + * offset 1516 + */ + float mapErrorDetectionTooHigh; + /** + * How long to wait for the spark to fire before recharging the coil for another spark. + * units: ms + * offset 1520 + */ + scaled_channel multisparkSparkDuration; + /** + * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. + * units: ms + * offset 1522 + */ + scaled_channel multisparkDwell; + /** + * See cltIdleRpmBins + * offset 1524 + */ + 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. + * units: Fraction + * offset 1544 + */ + float wwaeBeta; + /** + * See also EFI_CONSOLE_RX_BRAIN_PIN + * offset 1548 + */ + Gpio binarySerialTxPin; + /** + * offset 1550 + */ + Gpio binarySerialRxPin; + /** + * offset 1552 + */ + Gpio auxValves[AUX_DIGITAL_VALVE_COUNT]; + /** + * offset 1556 + */ + switch_input_pin_e tcuUpshiftButtonPin; + /** + * offset 1558 + */ + switch_input_pin_e tcuDownshiftButtonPin; + /** + * units: voltage + * offset 1560 + */ + float throttlePedalUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1564 + */ + float throttlePedalWOTVoltage; + /** + * on IGN voltage detection turn fuel pump on to build fuel pressure + * units: seconds + * offset 1568 + */ + int16_t startUpFuelPumpDuration; + /** + * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation + * units: RPM + * offset 1570 + */ + int16_t idlePidRpmDeadZone; + /** + * This is the target battery voltage the alternator PID control will attempt to maintain + * units: Volts + * offset 1572 + */ + float targetVBatt; + /** + * See Over/Undervoltage Shutdown/Retry bit in documentation + offset 1576 bit 0 */ + bool mc33810DisableRecoveryMode : 1 {}; + /** + offset 1576 bit 1 */ + bool mc33810Gpgd0Mode : 1 {}; + /** + offset 1576 bit 2 */ + bool mc33810Gpgd1Mode : 1 {}; + /** + offset 1576 bit 3 */ + bool mc33810Gpgd2Mode : 1 {}; + /** + offset 1576 bit 4 */ + bool mc33810Gpgd3Mode : 1 {}; + /** + offset 1576 bit 5 */ + bool enableExtendedCanBroadcast : 1 {}; + /** + offset 1576 bit 6 */ + bool luaCanRxWorkaround : 1 {}; + /** + offset 1576 bit 7 */ + bool flexSensorInverted : 1 {}; + /** + offset 1576 bit 8 */ + bool useHardSkipInTraction : 1 {}; + /** + offset 1576 bit 9 */ + bool unusedBit_495_9 : 1 {}; + /** + offset 1576 bit 10 */ + bool unusedBit_495_10 : 1 {}; + /** + offset 1576 bit 11 */ + bool useAuxSpeedForSlipRatio : 1 {}; + /** + * VSS and auxSpeed1 or auxSpeed1 with auxSpeed2? + offset 1576 bit 12 */ + bool useVssAsSecondWheelSpeed : 1 {}; + /** + offset 1576 bit 13 */ + bool is_enabled_spi_5 : 1 {}; + /** + offset 1576 bit 14 */ + bool is_enabled_spi_6 : 1 {}; + /** + offset 1576 bit 15 */ + bool unusedBit_503_15 : 1 {}; + /** + offset 1576 bit 16 */ + bool unusedBit_503_16 : 1 {}; + /** + offset 1576 bit 17 */ + bool unusedBit_503_17 : 1 {}; + /** + offset 1576 bit 18 */ + bool unusedBit_511_18 : 1 {}; + /** + offset 1576 bit 19 */ + bool unusedBit_511_19 : 1 {}; + /** + offset 1576 bit 20 */ + bool unusedBit_511_20 : 1 {}; + /** + offset 1576 bit 21 */ + bool unusedBit_511_21 : 1 {}; + /** + offset 1576 bit 22 */ + bool unusedBit_511_22 : 1 {}; + /** + offset 1576 bit 23 */ + bool unusedBit_511_23 : 1 {}; + /** + offset 1576 bit 24 */ + bool unusedBit_511_24 : 1 {}; + /** + offset 1576 bit 25 */ + bool unusedBit_511_25 : 1 {}; + /** + offset 1576 bit 26 */ + bool unusedBit_511_26 : 1 {}; + /** + offset 1576 bit 27 */ + bool unusedBit_511_27 : 1 {}; + /** + offset 1576 bit 28 */ + bool unusedBit_511_28 : 1 {}; + /** + offset 1576 bit 29 */ + bool unusedBit_511_29 : 1 {}; + /** + offset 1576 bit 30 */ + bool unusedBit_511_30 : 1 {}; + /** + offset 1576 bit 31 */ + bool unusedBit_511_31 : 1 {}; + /** + * 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. + * units: cycles + * offset 1580 + */ + int16_t afterCrankingIACtaperDuration; + /** + * IAC Value added when coasting and transitioning into idle. + * units: percent + * offset 1582 + */ + int16_t iacByTpsTaper; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1584 + */ + Gpio auxSerialTxPin; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1586 + */ + Gpio auxSerialRxPin; + /** + * offset 1588 + */ + Gpio accelerometerCsPin; + /** + * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. + * units: sec + * offset 1590 + */ + scaled_channel tpsAccelLookback; + /** + * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1591 + */ + uint8_t coastingFuelCutVssLow; + /** + * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1592 + */ + 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. + * units: sec + * offset 1593 + */ + scaled_channel noFuelTrimAfterDfcoTime; + /** + * need 4 byte alignment + * units: units + * offset 1594 + */ + uint8_t alignmentFill_at_1594[2]; + /** + * 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. + * units: roc + * offset 1596 + */ + float tpsAccelEnrichmentThreshold; + /** + * offset 1600 + */ + brain_input_pin_e auxSpeedSensorInputPin[AUX_SPEED_SENSOR_COUNT]; + /** + * offset 1604 + */ + uint8_t totalGearsCount; + /** + * Sets what part of injection's is controlled by the injection phase table. + * offset 1605 + */ + InjectionTimingMode injectionTimingMode; + /** + * See http://rusefi.com/s/debugmode + * offset 1606 + */ + debug_mode_e debugMode; + /** + * Additional idle % when fan #1 is active + * units: % + * offset 1607 + */ + uint8_t fan1ExtraIdle; + /** + * Band rate for primary TTL + * units: BPs + * offset 1608 + */ + uint32_t uartConsoleSerialSpeed; + /** + * For decel we simply multiply delta of TPS and tFor decel we do not use table?! + * units: roc + * offset 1612 + */ + float tpsDecelEnleanmentThreshold; + /** + * Magic multiplier, we multiply delta of TPS and get fuel squirt duration + * units: coeff + * offset 1616 + */ + float tpsDecelEnleanmentMultiplier; + /** + * units: BPs + * offset 1620 + */ + uint32_t auxSerialSpeed; + /** + * units: voltage + * offset 1624 + */ + float throttlePedalSecondaryUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1628 + */ + float throttlePedalSecondaryWOTVoltage; + /** + * set can_baudrate + * offset 1632 + */ + 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 1633 + */ + ve_override_e veOverrideMode; + /** + * offset 1634 + */ + 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 1635 + */ + load_override_e afrOverrideMode; + /** + * units: A + * offset 1636 + */ + scaled_channel mc33_hpfp_i_peak; + /** + * units: A + * offset 1637 + */ + scaled_channel mc33_hpfp_i_hold; + /** + * How long to deactivate power when hold current is reached before applying power again + * units: us + * offset 1638 + */ + uint8_t mc33_hpfp_i_hold_off; + /** + * Maximum amount of time the solenoid can be active before assuming a programming error + * units: ms + * offset 1639 + */ + uint8_t mc33_hpfp_max_hold; + /** + * Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards) + offset 1640 bit 0 */ + bool stepperDcInvertedPins : 1 {}; + /** + * Allow OpenBLT on Primary CAN + offset 1640 bit 1 */ + bool canOpenBLT : 1 {}; + /** + * Allow OpenBLT on Secondary CAN + offset 1640 bit 2 */ + bool can2OpenBLT : 1 {}; + /** + * Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s). + offset 1640 bit 3 */ + bool injectorFlowAsMassFlow : 1 {}; + /** + offset 1640 bit 4 */ + bool boardUseCanTerminator : 1 {}; + /** + offset 1640 bit 5 */ + bool kLineDoHondaSend : 1 {}; + /** + * ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled + offset 1640 bit 6 */ + bool can1ListenMode : 1 {}; + /** + offset 1640 bit 7 */ + bool can2ListenMode : 1 {}; + /** + offset 1640 bit 8 */ + bool unusedBit_563_8 : 1 {}; + /** + offset 1640 bit 9 */ + bool unusedBit_563_9 : 1 {}; + /** + offset 1640 bit 10 */ + bool unusedBit_563_10 : 1 {}; + /** + offset 1640 bit 11 */ + bool unusedBit_563_11 : 1 {}; + /** + offset 1640 bit 12 */ + bool unusedBit_563_12 : 1 {}; + /** + offset 1640 bit 13 */ + bool unusedBit_563_13 : 1 {}; + /** + offset 1640 bit 14 */ + bool unusedBit_563_14 : 1 {}; + /** + offset 1640 bit 15 */ + bool unusedBit_563_15 : 1 {}; + /** + offset 1640 bit 16 */ + bool unusedBit_563_16 : 1 {}; + /** + offset 1640 bit 17 */ + bool unusedBit_563_17 : 1 {}; + /** + offset 1640 bit 18 */ + bool unusedBit_563_18 : 1 {}; + /** + offset 1640 bit 19 */ + bool unusedBit_563_19 : 1 {}; + /** + offset 1640 bit 20 */ + bool unusedBit_563_20 : 1 {}; + /** + offset 1640 bit 21 */ + bool unusedBit_563_21 : 1 {}; + /** + offset 1640 bit 22 */ + bool unusedBit_563_22 : 1 {}; + /** + offset 1640 bit 23 */ + bool unusedBit_563_23 : 1 {}; + /** + offset 1640 bit 24 */ + bool unusedBit_563_24 : 1 {}; + /** + offset 1640 bit 25 */ + bool unusedBit_563_25 : 1 {}; + /** + offset 1640 bit 26 */ + bool unusedBit_563_26 : 1 {}; + /** + offset 1640 bit 27 */ + bool unusedBit_563_27 : 1 {}; + /** + offset 1640 bit 28 */ + bool unusedBit_563_28 : 1 {}; + /** + offset 1640 bit 29 */ + bool unusedBit_563_29 : 1 {}; + /** + offset 1640 bit 30 */ + bool unusedBit_563_30 : 1 {}; + /** + offset 1640 bit 31 */ + bool unusedBit_563_31 : 1 {}; + /** + * offset 1644 + */ + uint8_t camDecoder2jzPosition; + /** + * offset 1645 + */ + mc33810maxDwellTimer_e mc33810maxDwellTimer; + /** + * Duration of each test pulse + * units: ms + * offset 1646 + */ + scaled_channel benchTestOnTime; + /** + * units: % + * offset 1648 + */ + uint8_t lambdaProtectionRestoreTps; + /** + * units: % + * offset 1649 + */ + scaled_channel lambdaProtectionRestoreLoad; + /** + * offset 1650 + */ + pin_input_mode_e launchActivatePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1651 + */ + uint8_t alignmentFill_at_1651[1]; + /** + * set_can2_tx_pin X + * offset 1652 + */ + Gpio can2TxPin; + /** + * set_can2_rx_pin X + * offset 1654 + */ + Gpio can2RxPin; + /** + * offset 1656 + */ + pin_output_mode_e starterControlPinMode; + /** + * offset 1657 + */ + 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 1658 + */ + load_override_e ignOverrideMode; + /** + * Select which fuel pressure sensor measures the pressure of the fuel at your injectors. + * offset 1659 + */ + injector_pressure_type_e injectorPressureType; + /** + * offset 1660 + */ + output_pin_e hpfpValvePin; + /** + * offset 1662 + */ + pin_output_mode_e hpfpValvePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1663 + */ + uint8_t alignmentFill_at_1663[1]; + /** + * MAP value above which fuel is cut in case of overboost. + * Set to 0 to disable overboost cut. + * units: kPa (absolute) + * offset 1664 + */ + float boostCutPressure; + /** + * units: kg/h + * offset 1668 + */ + scaled_channel tchargeBins[16]; + /** + * units: ratio + * offset 1684 + */ + scaled_channel tchargeValues[16]; + /** + * Fixed timing, useful for TDC testing + * units: deg + * offset 1700 + */ + float fixedTiming; + /** + * MAP voltage for low point + * units: v + * offset 1704 + */ + float mapLowValueVoltage; + /** + * MAP voltage for low point + * units: v + * offset 1708 + */ + float mapHighValueVoltage; + /** + * EGO value correction + * units: value + * offset 1712 + */ + float egoValueShift; + /** + * VVT output solenoid pin for this cam + * offset 1716 + */ + output_pin_e vvtPins[CAM_INPUTS_COUNT]; + /** + * offset 1724 + */ + pin_output_mode_e sdCardCsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1725 + */ + uint8_t alignmentFill_at_1725[3]; + /** + * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. + * units: percent + * offset 1728 + */ + int crankingIACposition; + /** + * offset 1732 + */ + float tChargeMinRpmMinTps; + /** + * offset 1736 + */ + float tChargeMinRpmMaxTps; + /** + * offset 1740 + */ + float tChargeMaxRpmMinTps; + /** + * offset 1744 + */ + float tChargeMaxRpmMaxTps; + /** + * offset 1748 + */ + pwm_freq_t vvtOutputFrequency; + /** + * Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint. + * units: deg BTDC + * offset 1750 + */ + int8_t minimumIgnitionTiming; + /** + * Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC + * units: deg BTDC + * offset 1751 + */ + int8_t maximumIgnitionTiming; + /** + * units: Hz + * offset 1752 + */ + int alternatorPwmFrequency; + /** + * set vvt_mode X + * offset 1756 + */ + vvt_mode_e vvtMode[CAMS_PER_BANK]; + /** + * Additional idle % when fan #2 is active + * units: % + * offset 1758 + */ + uint8_t fan2ExtraIdle; + /** + * Delay to allow fuel pressure to build before firing the priming pulse. + * units: sec + * offset 1759 + */ + scaled_channel primingDelay; + /** + * offset 1760 + */ + adc_channel_e auxAnalogInputs[LUA_ANALOG_INPUT_COUNT]; + /** + * offset 1768 + */ + output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT]; + /** + * offset 1792 + */ + tle8888_mode_e tle8888mode; + /** + * offset 1793 + */ + pin_output_mode_e accelerometerCsPinMode; + /** + * 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 1794 + */ + injector_compensation_mode_e injectorCompensationMode; + /** + * offset 1795 + */ + 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. + * units: kPa + * offset 1796 + */ + float fuelReferencePressure; + /** + * units: mult + * offset 1800 + */ + float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; + /** + * units: count + * offset 1944 + */ + float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; + /** + * units: C + * offset 1968 + */ + float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; + /** + * offset 1992 + */ + ThermistorConf auxTempSensor1; + /** + * offset 2024 + */ + ThermistorConf auxTempSensor2; + /** + * units: Deg + * offset 2056 + */ + int16_t knockSamplingDuration; + /** + * units: Hz + * offset 2058 + */ + int16_t etbFreq; + /** + * offset 2060 + */ + pid_s etbWastegatePid; + /** + * For micro-stepping, make sure that PWM frequency (etbFreq) is high enough + * offset 2080 + */ + stepper_num_micro_steps_e stepperNumMicroSteps; + /** + * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) + * units: % + * offset 2081 + */ + uint8_t stepperMinDutyCycle; + /** + * Use to limit the max.current through the stepper motor (100% = no limit) + * units: % + * offset 2082 + */ + uint8_t stepperMaxDutyCycle; + /** + * offset 2083 + */ + spi_device_e sdCardSpiDevice; + /** + * per-cylinder ignition and fueling timing correction for uneven engines + * units: deg + * offset 2084 + */ + angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; + /** + * units: seconds + * offset 2132 + */ + float idlePidActivationTime; + /** + * offset 2136 + */ + pin_mode_e spi1SckMode; + /** + * Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc. + * offset 2137 + */ + pin_mode_e spi1MosiMode; + /** + * offset 2138 + */ + pin_mode_e spi1MisoMode; + /** + * offset 2139 + */ + pin_mode_e spi2SckMode; + /** + * offset 2140 + */ + pin_mode_e spi2MosiMode; + /** + * offset 2141 + */ + pin_mode_e spi2MisoMode; + /** + * offset 2142 + */ + pin_mode_e spi3SckMode; + /** + * offset 2143 + */ + pin_mode_e spi3MosiMode; + /** + * offset 2144 + */ + pin_mode_e spi3MisoMode; + /** + * offset 2145 + */ + pin_output_mode_e stepperEnablePinMode; + /** + * ResetB + * offset 2146 + */ + Gpio mc33816_rstb; + /** + * offset 2148 + */ + Gpio mc33816_driven; + /** + * Brake pedal switch + * offset 2150 + */ + switch_input_pin_e brakePedalPin; + /** + * offset 2152 + */ + pin_input_mode_e brakePedalPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2153 + */ + uint8_t alignmentFill_at_2153[3]; + /** + * VVT output PID + * TODO: rename to vvtPid + * offset 2156 + */ + pid_s auxPid[CAMS_PER_BANK]; + /** + * offset 2196 + */ + float injectorCorrectionPolynomial[8]; + /** + * units: C + * offset 2228 + */ + int8_t primeBins[PRIME_CURVE_COUNT]; + /** + * offset 2236 + */ + linear_sensor_s oilPressure; + /** + * offset 2256 + */ + spi_device_e accelerometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 2257 + */ + uint8_t alignmentFill_at_2257[1]; + /** + * offset 2258 + */ + output_pin_e fan2Pin; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 2260 + */ + uint8_t fan2OnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 2261 + */ + uint8_t fan2OffTemperature; + /** + * offset 2262 + */ + Gpio stepperEnablePin; + /** + * offset 2264 + */ + Gpio tle8888_cs; + /** + * offset 2266 + */ + pin_output_mode_e tle8888_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2267 + */ + uint8_t alignmentFill_at_2267[1]; + /** + * offset 2268 + */ + Gpio mc33816_cs; + /** + * need 4 byte alignment + * units: units + * offset 2270 + */ + uint8_t alignmentFill_at_2270[2]; + /** + * units: hz + * offset 2272 + */ + float auxFrequencyFilter; + /** + * units: RPM + * offset 2276 + */ + int16_t vvtControlMinRpm; + /** + * offset 2278 + */ + sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; + /** + * units: % + * offset 2280 + */ + int8_t launchFuelAdderPercent; + /** + * Time required to detect a stuck throttle. + * units: sec + * offset 2281 + */ + scaled_channel etbJamTimeout; + /** + * By the way ETB PID runs at 500hz, length in 1/500 of second here. + * offset 2282 + */ + uint16_t etbExpAverageLength; + /** + * offset 2284 + */ + float etbDutyThreshold; + /** + * This sets the RPM above which fuel cut is active. + * units: rpm + * offset 2288 + */ + int16_t coastingFuelCutRpmHigh; + /** + * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle + * units: rpm + * offset 2290 + */ + int16_t coastingFuelCutRpmLow; + /** + * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. + * units: % + * offset 2292 + */ + int16_t coastingFuelCutTps; + /** + * Fuel cutoff is disabled when the engine is cold. + * units: C + * offset 2294 + */ + int16_t coastingFuelCutClt; + /** + * Increases PID reaction for RPM stoichRatioPrimary; + /** + * iTerm max value + * offset 2710 + */ + 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. + * units: % + * offset 2712 + */ + float etbIdleThrottleRange; + /** + * Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor + * offset 2716 + */ + uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; + /** + * units: mg + * offset 2728 + */ + scaled_channel primeValues[PRIME_CURVE_COUNT]; + /** + * Trigger comparator center point voltage + * units: V + * offset 2736 + */ + scaled_channel triggerCompCenterVolt; + /** + * Trigger comparator hysteresis voltage (Min) + * units: V + * offset 2737 + */ + scaled_channel triggerCompHystMin; + /** + * Trigger comparator hysteresis voltage (Max) + * units: V + * offset 2738 + */ + scaled_channel triggerCompHystMax; + /** + * VR-sensor saturation RPM + * units: RPM + * offset 2739 + */ + scaled_channel triggerCompSensorSatRpm; + /** + * units: ratio + * offset 2740 + */ + scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: RPM + * offset 2752 + */ + uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 2758 + */ + int8_t disableFan1AtSpeed; + /** + * offset 2759 + */ + int8_t disableFan2AtSpeed; + /** + * offset 2760 + */ + can_vss_nbc_e canVssNbcType; + /** + * need 4 byte alignment + * units: units + * offset 2762 + */ + uint8_t alignmentFill_at_2762[2]; + /** + * offset 2764 + */ + gppwm_channel gppwm[GPPWM_CHANNELS]; + /** + * Boost Current + * units: mA + * offset 3196 + */ + uint16_t mc33_i_boost; + /** + * Peak Current + * units: mA + * offset 3198 + */ + uint16_t mc33_i_peak; + /** + * Hold Current + * units: mA + * offset 3200 + */ + 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. + * units: us + * offset 3202 + */ + uint16_t mc33_t_max_boost; + /** + * units: us + * offset 3204 + */ + uint16_t mc33_t_peak_off; + /** + * Peak phase duration + * units: us + * offset 3206 + */ + uint16_t mc33_t_peak_tot; + /** + * units: us + * offset 3208 + */ + uint16_t mc33_t_bypass; + /** + * units: us + * offset 3210 + */ + uint16_t mc33_t_hold_off; + /** + * Hold phase duration + * units: us + * offset 3212 + */ + uint16_t mc33_t_hold_tot; + /** + * offset 3214 + */ + pin_input_mode_e tcuUpshiftButtonPinMode; + /** + * offset 3215 + */ + pin_input_mode_e tcuDownshiftButtonPinMode; + /** + * offset 3216 + */ + pin_input_mode_e acSwitchMode; + /** + * offset 3217 + */ + pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; + /** + * Knock sensor output knock detection threshold depending on current RPM. + * units: dB + * offset 3223 + */ + scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 3239 + */ + uint8_t alignmentFill_at_3239[1]; + /** + * units: ratio + * offset 3240 + */ + float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; + /** + * units: ratio + * offset 3312 + */ + 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. + * units: rpm + * offset 3384 + */ + 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... + * units: sec + * offset 3385 + */ + 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. + * units: sec + * offset 3386 + */ + scaled_channel acDelay; + /** + * need 4 byte alignment + * units: units + * offset 3387 + */ + uint8_t alignmentFill_at_3387[1]; + /** + * units: mg + * offset 3388 + */ + scaled_channel fordInjectorSmallPulseBreakPoint; + /** + * units: multiplier + * offset 3390 + */ + scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: % + * offset 3394 + */ + uint8_t etbJamIntegratorLimit; + /** + * units: lobes/cam + * offset 3395 + */ + uint8_t hpfpCamLobes; + /** + * offset 3396 + */ + hpfp_cam_e hpfpCam; + /** + * offset 3397 + */ + uint8_t auxiliarySetting1; + /** + * If the requested activation time is below this angle, don't bother running the pump + * units: deg + * offset 3398 + */ + uint8_t hpfpMinAngle; + /** + * need 4 byte alignment + * units: units + * offset 3399 + */ + uint8_t alignmentFill_at_3399[1]; + /** + * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. + * units: cc + * offset 3400 + */ + 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) + * units: deg + * offset 3402 + */ + uint8_t hpfpActivationAngle; + /** + * offset 3403 + */ + uint8_t issFilterReciprocal; + /** + * units: %/kPa + * offset 3404 + */ + scaled_channel hpfpPidP; + /** + * units: %/kPa/lobe + * offset 3406 + */ + 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. + * units: kPa/s + * offset 3408 + */ + uint16_t hpfpTargetDecay; + /** + * units: % + * offset 3410 + */ + scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: deg + * offset 3426 + */ + scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: volts + * offset 3442 + */ + uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; + /** + * units: ms + * offset 3450 + */ + scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; + /** + * units: kPa + * offset 3466 + */ + uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; + /** + * units: load + * offset 3666 + */ + scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; + /** + * units: RPM + * offset 3686 + */ + scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; + /** + * units: % + * offset 3696 + */ + int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; + /** + * units: cc/lobe + * offset 3796 + */ + scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; + /** + * units: RPM + * offset 3816 + */ + scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; + /** + * offset 3826 + */ + output_pin_e stepper_raw_output[4]; + /** + * units: ratio + * offset 3834 + */ + scaled_channel gearRatio[TCU_GEAR_COUNT]; + /** + * We need to give engine time to build oil pressure without diverting it to VVT + * units: ms + * offset 3854 + */ + uint16_t vvtActivationDelayMs; + /** + * units: deg C + * offset 3856 + */ + int8_t wwCltBins[WWAE_TABLE_SIZE]; + /** + * offset 3864 + */ + scaled_channel wwTauCltValues[WWAE_TABLE_SIZE]; + /** + * offset 3872 + */ + scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; + /** + * units: kPa + * offset 3880 + */ + int8_t wwMapBins[WWAE_TABLE_SIZE]; + /** + * offset 3888 + */ + scaled_channel wwTauMapValues[WWAE_TABLE_SIZE]; + /** + * offset 3896 + */ + scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; + /** + * units: Nm + * offset 3904 + */ + scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; + /** + * units: RPM + * offset 3940 + */ + uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; + /** + * units: Load + * offset 3952 + */ + uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; + /** + * offset 3964 + */ + GearControllerMode gearControllerMode; + /** + * offset 3965 + */ + TransmissionControllerMode transmissionControllerMode; + /** + * units: deg + * offset 3966 + */ + uint16_t acrDisablePhase; + /** + * offset 3968 + */ + linear_sensor_s auxLinear1; + /** + * offset 3988 + */ + linear_sensor_s auxLinear2; + /** + * offset 4008 + */ + output_pin_e tcu_tcc_onoff_solenoid; + /** + * offset 4010 + */ + pin_output_mode_e tcu_tcc_onoff_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4011 + */ + uint8_t alignmentFill_at_4011[1]; + /** + * offset 4012 + */ + output_pin_e tcu_tcc_pwm_solenoid; + /** + * offset 4014 + */ + pin_output_mode_e tcu_tcc_pwm_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4015 + */ + uint8_t alignmentFill_at_4015[1]; + /** + * offset 4016 + */ + pwm_freq_t tcu_tcc_pwm_solenoid_freq; + /** + * offset 4018 + */ + output_pin_e tcu_pc_solenoid_pin; + /** + * offset 4020 + */ + pin_output_mode_e tcu_pc_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4021 + */ + uint8_t alignmentFill_at_4021[1]; + /** + * offset 4022 + */ + pwm_freq_t tcu_pc_solenoid_freq; + /** + * offset 4024 + */ + output_pin_e tcu_32_solenoid_pin; + /** + * offset 4026 + */ + pin_output_mode_e tcu_32_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4027 + */ + uint8_t alignmentFill_at_4027[1]; + /** + * offset 4028 + */ + pwm_freq_t tcu_32_solenoid_freq; + /** + * offset 4030 + */ + output_pin_e acrPin2; + /** + * units: % + * offset 4032 + */ + float etbMinimumPosition; + /** + * offset 4036 + */ + uint16_t tuneHidingKey; + /** + * offset 4038 + */ + vin_number_t vinNumber; + /** + * need 4 byte alignment + * units: units + * offset 4055 + */ + uint8_t alignmentFill_at_4055[1]; + /** + * offset 4056 + */ + uint16_t highSpeedOffsets[HIGH_SPEED_COUNT]; + /** + * offset 4120 + */ + float etbDutyShutdownThreshold; + /** + * offset 4124 + */ + fuel_pressure_sensor_mode_e fuelPressureSensorMode; + /** + * need 4 byte alignment + * units: units + * offset 4125 + */ + uint8_t alignmentFill_at_4125[1]; + /** + * offset 4126 + */ + switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; + /** + * units: RPM + * offset 4142 + */ + scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: rpm + * offset 4146 + */ + int16_t ALSMinRPM; + /** + * units: rpm + * offset 4148 + */ + int16_t ALSMaxRPM; + /** + * units: sec + * offset 4150 + */ + int16_t ALSMaxDuration; + /** + * units: C + * offset 4152 + */ + int8_t ALSMinCLT; + /** + * units: C + * offset 4153 + */ + int8_t ALSMaxCLT; + /** + * offset 4154 + */ + uint8_t alsMinTimeBetween; + /** + * offset 4155 + */ + uint8_t alsEtbPosition; + /** + * units: % + * offset 4156 + */ + uint8_t acRelayAlternatorDutyAdder; + /** + * offset 4157 + */ + SentEtbType sentEtbType; + /** + * offset 4158 + */ + uint16_t customSentTpsMin; + /** + * units: % + * offset 4160 + */ + int ALSIdleAdd; + /** + * units: % + * offset 4164 + */ + int ALSEtbAdd; + /** + * offset 4168 + */ + float ALSSkipRatio; + /** + * units: % + * offset 4172 + */ + uint8_t ALSMaxDriverThrottleIntent; + /** + * offset 4173 + */ + pin_input_mode_e ALSActivatePinMode; + /** + * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% + * units: % + * offset 4174 + */ + scaled_channel tpsSecondaryMaximum; + /** + * For Toyota ETCS-i, use ~69% + * units: % + * offset 4175 + */ + scaled_channel ppsSecondaryMaximum; + /** + * offset 4176 + */ + pin_input_mode_e luaDigitalInputPinModes[LUA_DIGITAL_INPUT_COUNT]; + /** + * offset 4184 + */ + uint16_t customSentTpsMax; + /** + * offset 4186 + */ + uint16_t kLineBaudRate; + /** + * offset 4188 + */ + CanGpioType canGpioType; + /** + * offset 4189 + */ + UiMode uiMode; + /** + * Crank angle ATDC of first lobe peak + * units: deg + * offset 4190 + */ + int16_t hpfpPeakPos; + /** + * units: us + * offset 4192 + */ + int16_t kLinePeriodUs; + /** + * Window that the correction will be added throughout (example, if rpm limit is 7000, and rpmSoftLimitWindowSize is 200, the corrections activate at 6800RPM, creating a 200rpm window) + * units: RPM + * offset 4194 + */ + scaled_channel rpmSoftLimitWindowSize; + /** + * Degrees of timing REMOVED from actual timing during soft RPM limit window + * units: deg + * offset 4195 + */ + scaled_channel rpmSoftLimitTimingRetard; + /** + * % of fuel ADDED during window + * units: % + * offset 4196 + */ + scaled_channel rpmSoftLimitFuelAdded; + /** + * Hysterisis: if the hard limit is 7200rpm and rpmHardLimitHyst is 200rpm, then when the ECU sees 7200rpm, fuel/ign will cut, and stay cut until 7000rpm (7200-200) is reached + * units: RPM + * offset 4197 + */ + scaled_channel rpmHardLimitHyst; + /** + * Time between bench test pulses + * units: ms + * offset 4198 + */ + scaled_channel benchTestOffTime; + /** + * Hysterisis: if hard cut is 240kpa, and boostCutPressureHyst is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached + * units: kPa (absolute) + * offset 4200 + */ + scaled_channel boostCutPressureHyst; + /** + * Boost duty cycle added by gear + * units: % + * offset 4201 + */ + scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 4211 + */ + uint8_t alignmentFill_at_4211[1]; + /** + * How many test bench pulses do you want + * offset 4212 + */ + uint32_t benchTestCount; + /** + * How long initial IAC adder is held before starting to decay. + * units: seconds + * offset 4216 + */ + scaled_channel iacByTpsHoldTime; + /** + * How long it takes to remove initial IAC adder to return to normal idle. + * units: seconds + * offset 4217 + */ + scaled_channel iacByTpsDecayTime; + /** + * offset 4218 + */ + switch_input_pin_e tcu_rangeInput[RANGE_INPUT_COUNT]; + /** + * offset 4230 + */ + pin_input_mode_e tcu_rangeInputMode[RANGE_INPUT_COUNT]; + /** + * Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead. + * units: ratio + * offset 4236 + */ + scaled_channel canVssScaling; + /** + * need 4 byte alignment + * units: units + * offset 4238 + */ + uint8_t alignmentFill_at_4238[2]; + /** + * offset 4240 + */ + ThermistorConf oilTempSensor; + /** + * offset 4272 + */ + ThermistorConf fuelTempSensor; + /** + * offset 4304 + */ + ThermistorConf ambientTempSensor; + /** + * offset 4336 + */ + ThermistorConf compressorDischargeTemperature; + /** + * Place the sensor before the throttle, but after any turbocharger/supercharger and intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4368 + */ + adc_channel_e throttleInletPressureChannel; + /** + * Place the sensor after the turbocharger/supercharger, but before any intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4369 + */ + adc_channel_e compressorDischargePressureChannel; + /** + * offset 4370 + */ + Gpio dacOutputPins[DAC_OUTPUT_COUNT]; + /** + * offset 4374 + */ + output_pin_e speedometerOutputPin; + /** + * Number of speedometer pulses per kilometer travelled. + * offset 4376 + */ + uint16_t speedometerPulsePerKm; + /** + * offset 4378 + */ + uint8_t simulatorCamPosition[CAM_INPUTS_COUNT]; + /** + * offset 4382 + */ + adc_channel_e ignKeyAdcChannel; + /** + * offset 4383 + */ + pin_mode_e spi6MisoMode; + /** + * units: ratio + * offset 4384 + */ + float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; + /** + * units: ratio + * offset 4400 + */ + float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; + /** + * units: % + * offset 4416 + */ + int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * If injector duty cycle hits this value, instantly cut fuel. + * units: % + * offset 4452 + */ + uint8_t maxInjectorDutyInstant; + /** + * If injector duty cycle hits this value for the specified delay time, cut fuel. + * units: % + * offset 4453 + */ + uint8_t maxInjectorDutySustained; + /** + * Timeout period for duty cycle over the sustained limit to trigger duty cycle protection. + * units: sec + * offset 4454 + */ + scaled_channel maxInjectorDutySustainedTimeout; + /** + * need 4 byte alignment + * units: units + * offset 4455 + */ + uint8_t alignmentFill_at_4455[1]; + /** + * offset 4456 + */ + output_pin_e injectionPinsStage2[MAX_CYLINDER_COUNT]; + /** + * units: Deg + * offset 4480 + */ + int8_t tractionControlTimingDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: % + * offset 4516 + */ + int8_t tractionControlIgnitionSkip[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 4552 + */ + float auxSpeed1Multiplier; + /** + * offset 4556 + */ + float brakeMeanEffectivePressureDifferential; + /** + * offset 4560 + */ + Gpio spi4mosiPin; + /** + * offset 4562 + */ + Gpio spi4misoPin; + /** + * offset 4564 + */ + Gpio spi4sckPin; + /** + * offset 4566 + */ + Gpio spi5mosiPin; + /** + * offset 4568 + */ + Gpio spi5misoPin; + /** + * offset 4570 + */ + Gpio spi5sckPin; + /** + * offset 4572 + */ + Gpio spi6mosiPin; + /** + * offset 4574 + */ + Gpio spi6misoPin; + /** + * offset 4576 + */ + Gpio spi6sckPin; + /** + * offset 4578 + */ + pin_mode_e spi4SckMode; + /** + * offset 4579 + */ + pin_mode_e spi4MosiMode; + /** + * offset 4580 + */ + pin_mode_e spi4MisoMode; + /** + * offset 4581 + */ + pin_mode_e spi5SckMode; + /** + * offset 4582 + */ + pin_mode_e spi5MosiMode; + /** + * offset 4583 + */ + pin_mode_e spi5MisoMode; + /** + * offset 4584 + */ + pin_mode_e spi6SckMode; + /** + * offset 4585 + */ + pin_mode_e spi6MosiMode; + /** + * units: units + * offset 4586 + */ + uint8_t unusedOftenChangesDuringFirmwareUpdate[120]; + /** + * need 4 byte alignment + * units: units + * offset 4706 + */ + uint8_t alignmentFill_at_4706[2]; +}; +static_assert(sizeof(engine_configuration_s) == 4708); + +// start of cyl_trim_s +struct cyl_trim_s { + /** + * offset 0 + */ + scaled_channel table[TRIM_SIZE][TRIM_SIZE]; +}; +static_assert(sizeof(cyl_trim_s) == 16); + +// start of blend_table_s +struct blend_table_s { + /** + * offset 0 + */ + scaled_channel table[8][8]; + /** + * units: Load + * offset 128 + */ + uint16_t loadBins[8]; + /** + * units: RPM + * offset 144 + */ + uint16_t rpmBins[8]; + /** + * offset 160 + */ + gppwm_channel_e blendParameter; + /** + * offset 161 + */ + gppwm_channel_e yAxisOverride; + /** + * offset 162 + */ + scaled_channel blendBins[8]; + /** + * units: % + * offset 178 + */ + scaled_channel blendValues[8]; + /** + * need 4 byte alignment + * units: units + * offset 186 + */ + uint8_t alignmentFill_at_186[2]; +}; +static_assert(sizeof(blend_table_s) == 188); + +// start of persistent_config_s +struct persistent_config_s { + /** + * offset 0 + */ + engine_configuration_s engineConfiguration; + /** + * target TPS value, 0 to 100% + * TODO: use int8 data date once we template interpolation method + * units: target TPS position + * offset 4708 + */ + float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; + /** + * PWM bias, 0 to 100% + * units: ETB duty cycle bias + * offset 4740 + */ + float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; + /** + * units: % + * offset 4772 + */ + scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; + /** + * units: Load + * offset 4836 + */ + uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; + /** + * units: RPM + * offset 4844 + */ + scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; + /** + * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM + * units: RPM + * offset 4852 + */ + uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; + /** + * units: ms + * offset 4868 + */ + scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; + /** + * CLT-based target RPM for automatic idle controller + * units: C + * offset 4884 + */ + scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; + /** + * See idleRpmPid + * units: RPM + * offset 4900 + */ + scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; + /** + * CLT-based timing correction + * units: C + * offset 4916 + */ + float cltTimingBins[CLT_TIMING_CURVE_SIZE]; + /** + * units: degree + * offset 4948 + */ + float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; + /** + * units: x + * offset 4980 + */ + float scriptCurve1Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5044 + */ + float scriptCurve1[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5108 + */ + float scriptCurve2Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5172 + */ + float scriptCurve2[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5236 + */ + float scriptCurve3Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5268 + */ + float scriptCurve3[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5300 + */ + float scriptCurve4Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5332 + */ + float scriptCurve4[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5364 + */ + float scriptCurve5Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5396 + */ + float scriptCurve5[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5428 + */ + float scriptCurve6Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5460 + */ + float scriptCurve6[SCRIPT_CURVE_8]; + /** + * units: kPa + * offset 5492 + */ + float baroCorrPressureBins[BARO_CORR_SIZE]; + /** + * units: RPM + * offset 5508 + */ + float baroCorrRpmBins[BARO_CORR_SIZE]; + /** + * units: ratio + * offset 5524 + */ + float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; + /** + * Cranking fuel correction coefficient based on TPS + * units: Ratio + * offset 5588 + */ + float crankingTpsCoef[CRANKING_CURVE_SIZE]; + /** + * units: % + * offset 5620 + */ + float crankingTpsBins[CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: RPM + * offset 5652 + */ + uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: deg + * offset 5660 + */ + scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: RPM + * offset 5668 + */ + scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: % + * offset 5684 + */ + scaled_channel iacCoasting[CLT_CURVE_SIZE]; + /** + * offset 5700 + */ + warning_message_t warning_message; + /** + * units: C + * offset 5820 + */ + float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: Seconds + * offset 5852 + */ + float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: % + * offset 5884 + */ + float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; + /** + * units: Seconds + * offset 5916 + */ + float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; + /** + * offset 5948 + */ + scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: RPM + * offset 6012 + */ + scaled_channel boostRpmBins[BOOST_RPM_COUNT]; + /** + * offset 6020 + */ + scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: % + * offset 6084 + */ + uint8_t boostTpsBins[BOOST_LOAD_COUNT]; + /** + * units: % + * offset 6092 + */ + uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; + /** + * units: % + * offset 6156 + */ + uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; + /** + * units: RPM + * offset 6164 + */ + scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: C + * offset 6172 + */ + float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: % + * offset 6204 + */ + float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: RPM + * offset 6236 + */ + scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: deg + * offset 6244 + */ + float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; + /** + * units: RPM + * offset 6276 + */ + scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; + /** + * units: load + * offset 6280 + */ + uint8_t idleVeLoadBins[IDLE_VE_SIZE]; + /** + * units: % + * offset 6284 + */ + scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; + /** + * offset 6316 + */ + lua_script_t luaScript; + /** + * units: C + * offset 14316 + */ + float cltFuelCorrBins[CLT_CURVE_SIZE]; + /** + * units: ratio + * offset 14380 + */ + float cltFuelCorr[CLT_CURVE_SIZE]; + /** + * units: C + * offset 14444 + */ + float iatFuelCorrBins[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14508 + */ + float iatFuelCorr[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14572 + */ + float crankingFuelCoef[CRANKING_CURVE_SIZE]; + /** + * units: C + * offset 14604 + */ + float crankingFuelBins[CRANKING_CURVE_SIZE]; + /** + * units: ratio + * offset 14636 + */ + float crankingCycleCoef[CRANKING_CURVE_SIZE]; + /** + * units: counter + * offset 14668 + */ + float crankingCycleBins[CRANKING_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: C + * offset 14700 + */ + float cltIdleCorrBins[CLT_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: ratio + * offset 14764 + */ + float cltIdleCorr[CLT_CURVE_SIZE]; + /** + * Also known as MAF transfer function. + * kg/hour value. + * By the way 2.081989116 kg/h = 1 ft3/m + * units: kg/hour + * offset 14828 + */ + float mafDecoding[MAF_DECODING_COUNT]; + /** + * units: V + * offset 14956 + */ + float mafDecodingBins[MAF_DECODING_COUNT]; + /** + * units: deg + * offset 15084 + */ + scaled_channel ignitionIatCorrTable[8][8]; + /** + * units: C + * offset 15148 + */ + int8_t ignitionIatCorrTempBins[8]; + /** + * units: Load + * offset 15156 + */ + scaled_channel ignitionIatCorrLoadBins[8]; + /** + * units: deg + * offset 15164 + */ + int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: Load + * offset 15676 + */ + uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 15708 + */ + uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; + /** + * units: onoff + * offset 15740 + */ + uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; + /** + * units: kPa + * offset 15800 + */ + scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: % TPS + * offset 16312 + */ + scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 16344 + */ + uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 16376 + */ + int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16440 + */ + uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16456 + */ + uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 16472 + */ + int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16536 + */ + uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16552 + */ + uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: deg + * offset 16568 + */ + scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; + /** + * units: Load + * offset 17080 + */ + uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; + /** + * units: RPM + * offset 17112 + */ + uint16_t ignitionRpmBins[IGN_RPM_COUNT]; + /** + * units: % + * offset 17144 + */ + scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: kPa + * offset 17656 + */ + uint16_t veLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 17688 + */ + uint16_t veRpmBins[FUEL_RPM_COUNT]; + /** + * units: lambda + * offset 17720 + */ + scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * offset 17976 + */ + uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 18008 + */ + uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 18040 + */ + float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; + /** + * units: from + * offset 18296 + */ + float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: to + * offset 18328 + */ + float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: value + * offset 18360 + */ + float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18616 + */ + int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18632 + */ + int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18648 + */ + uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18712 + */ + int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18728 + */ + int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18744 + */ + uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18808 + */ + int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18824 + */ + int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18840 + */ + uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; + /** + * units: L + * offset 18920 + */ + int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18936 + */ + int16_t scriptTable4RpmBins[TABLE_4_RPM]; + /** + * offset 18956 + */ + uint16_t ignTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 18964 + */ + uint16_t ignTrimRpmBins[TRIM_SIZE]; + /** + * offset 18972 + */ + cyl_trim_s ignTrims[12]; + /** + * offset 19164 + */ + uint16_t fuelTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 19172 + */ + uint16_t fuelTrimRpmBins[TRIM_SIZE]; + /** + * offset 19180 + */ + cyl_trim_s fuelTrims[12]; + /** + * units: ratio + * offset 19372 + */ + scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; + /** + * units: Airmass + * offset 19388 + */ + scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19396 + */ + uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19404 + */ + uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19412 + */ + uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19420 + */ + uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19428 + */ + uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19436 + */ + uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19444 + */ + uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19452 + */ + uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19460 + */ + uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19468 + */ + uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19476 + */ + uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19484 + */ + uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; + /** + * units: TPS + * offset 19492 + */ + uint8_t tcu_tccTpsBins[8]; + /** + * units: MPH + * offset 19500 + */ + uint8_t tcu_tccLockSpeed[8]; + /** + * units: MPH + * offset 19508 + */ + uint8_t tcu_tccUnlockSpeed[8]; + /** + * units: KPH + * offset 19516 + */ + uint8_t tcu_32SpeedBins[8]; + /** + * units: % + * offset 19524 + */ + uint8_t tcu_32Vals[8]; + /** + * units: % + * offset 19532 + */ + scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; + /** + * units: % + * offset 19568 + */ + uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; + /** + * units: RPM + * offset 19574 + */ + scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; + /** + * units: deg + * offset 19580 + */ + scaled_channel maxKnockRetardTable[6][6]; + /** + * units: % + * offset 19616 + */ + uint8_t maxKnockRetardLoadBins[6]; + /** + * units: RPM + * offset 19622 + */ + scaled_channel maxKnockRetardRpmBins[6]; + /** + * units: deg + * offset 19628 + */ + scaled_channel ALSTimingRetardTable[4][4]; + /** + * units: TPS + * offset 19660 + */ + uint16_t alsIgnRetardLoadBins[4]; + /** + * units: RPM + * offset 19668 + */ + uint16_t alsIgnRetardrpmBins[4]; + /** + * units: percent + * offset 19676 + */ + scaled_channel ALSFuelAdjustment[4][4]; + /** + * units: TPS + * offset 19708 + */ + uint16_t alsFuelAdjustmentLoadBins[4]; + /** + * units: RPM + * offset 19716 + */ + uint16_t alsFuelAdjustmentrpmBins[4]; + /** + * units: ratio + * offset 19724 + */ + scaled_channel ALSIgnSkipTable[4][4]; + /** + * units: TPS + * offset 19756 + */ + uint16_t alsIgnSkipLoadBins[4]; + /** + * units: RPM + * offset 19764 + */ + uint16_t alsIgnSkiprpmBins[4]; + /** + * offset 19772 + */ + blend_table_s ignBlends[IGN_BLEND_COUNT]; + /** + * offset 20524 + */ + blend_table_s veBlends[VE_BLEND_COUNT]; + /** + * units: % + * offset 21276 + */ + scaled_channel throttleEstimateEffectiveAreaBins[12]; + /** + * In units of g/s normalized to choked flow conditions + * units: g/s + * offset 21300 + */ + scaled_channel throttleEstimateEffectiveAreaValues[12]; + /** + * offset 21324 + */ + blend_table_s boostOpenLoopBlends[BOOST_BLEND_COUNT]; + /** + * offset 21700 + */ + blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; + /** + * units: level + * offset 22076 + */ + uint8_t tcu_rangeP[6]; + /** + * units: level + * offset 22082 + */ + uint8_t tcu_rangeR[6]; + /** + * units: level + * offset 22088 + */ + uint8_t tcu_rangeN[6]; + /** + * units: level + * offset 22094 + */ + uint8_t tcu_rangeD[6]; + /** + * units: level + * offset 22100 + */ + uint8_t tcu_rangeM[6]; + /** + * units: level + * offset 22106 + */ + uint8_t tcu_rangeM3[6]; + /** + * units: level + * offset 22112 + */ + uint8_t tcu_rangeM2[6]; + /** + * units: level + * offset 22118 + */ + uint8_t tcu_rangeM1[6]; + /** + * units: level + * offset 22124 + */ + uint8_t tcu_rangePlus[6]; + /** + * units: level + * offset 22130 + */ + uint8_t tcu_rangeMinus[6]; + /** + * units: level + * offset 22136 + */ + uint8_t tcu_rangeLow[6]; + /** + * units: lambda + * offset 22142 + */ + scaled_channel lambdaMaxDeviationTable[4][4]; + /** + * offset 22158 + */ + uint16_t lambdaMaxDeviationLoadBins[4]; + /** + * units: RPM + * offset 22166 + */ + uint16_t lambdaMaxDeviationRpmBins[4]; + /** + * units: % + * offset 22174 + */ + uint8_t injectorStagingTable[INJ_STAGING_COUNT][INJ_STAGING_COUNT]; + /** + * offset 22210 + */ + uint16_t injectorStagingLoadBins[INJ_STAGING_COUNT]; + /** + * units: RPM + * offset 22222 + */ + uint16_t injectorStagingRpmBins[INJ_STAGING_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 22234 + */ + uint8_t alignmentFill_at_22234[2]; +}; +static_assert(sizeof(persistent_config_s) == 22236); + +// end +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:31 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNA96.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNA96.h new file mode 100644 index 0000000000..a314d644d0 --- /dev/null +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNA96.h @@ -0,0 +1,5637 @@ +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:33 UTC 2024 +// by class com.rusefi.output.CHeaderConsumer +// begin +#pragma once +#include "rusefi_types.h" +// start of stft_cell_cfg_s +struct stft_cell_cfg_s { + /** + * Maximum % that the short term fuel trim can add + * units: % + * offset 0 + */ + int8_t maxAdd; + /** + * Maximum % that the short term fuel trim can remove + * units: % + * offset 1 + */ + int8_t maxRemove; + /** + * 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. + * units: sec + * offset 2 + */ + scaled_channel timeConstant; +}; +static_assert(sizeof(stft_cell_cfg_s) == 4); + +// start of stft_s +struct stft_s { + /** + * Below this RPM, the idle region is active + * units: RPM + * offset 0 + */ + scaled_channel maxIdleRegionRpm; + /** + * Below this engine load, the overrun region is active + * units: load + * offset 1 + */ + uint8_t maxOverrunLoad; + /** + * Above this engine load, the power region is active + * units: load + * offset 2 + */ + uint8_t minPowerLoad; + /** + * 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. + * units: % + * offset 3 + */ + scaled_channel deadband; + /** + * Below this temperature, correction is disabled. + * units: C + * offset 4 + */ + int8_t minClt; + /** + * Below this AFR, correction is paused + * units: afr + * offset 5 + */ + scaled_channel minAfr; + /** + * Above this AFR, correction is paused + * units: afr + * offset 6 + */ + scaled_channel maxAfr; + /** + * Delay after starting the engine before beginning closed loop correction. + * units: seconds + * offset 7 + */ + uint8_t startupDelay; + /** + * offset 8 + */ + stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT]; +}; +static_assert(sizeof(stft_s) == 24); + +// start of pid_s +struct pid_s { + /** + * offset 0 + */ + float pFactor; + /** + * offset 4 + */ + float iFactor; + /** + * offset 8 + */ + float dFactor; + /** + * Linear addition to PID logic + * offset 12 + */ + int16_t offset; + /** + * PID dTime + * units: ms + * offset 14 + */ + int16_t periodMs; + /** + * Output Min Duty Cycle + * offset 16 + */ + int16_t minValue; + /** + * Output Max Duty Cycle + * offset 18 + */ + int16_t maxValue; +}; +static_assert(sizeof(pid_s) == 20); + +// start of cranking_parameters_s +struct cranking_parameters_s { + /** + * 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. + * A reasonable starting point is 60mg per liter per cylinder. + * ex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel. + * units: mg + * offset 0 + */ + 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 + * units: RPM + * offset 4 + */ + int16_t rpm; + /** + * need 4 byte alignment + * units: units + * offset 6 + */ + uint8_t alignmentFill_at_6[2]; +}; +static_assert(sizeof(cranking_parameters_s) == 8); + +// start of gppwm_channel +struct gppwm_channel { + /** + * Select a pin to use for PWM or on-off output. + * offset 0 + */ + output_pin_e pin; + /** + * If an error (with a sensor, etc) is detected, this value is used instead of reading from the table. + * This should be a safe value for whatever hardware is connected to prevent damage. + * units: % + * offset 2 + */ + uint8_t dutyIfError; + /** + * need 4 byte alignment + * units: units + * offset 3 + */ + uint8_t alignmentFill_at_3[1]; + /** + * Select a frequency to run PWM at. + * Set this to 0hz to enable on-off mode. + * units: hz + * offset 4 + */ + uint16_t pwmFrequency; + /** + * Hysteresis: in on-off mode, turn the output on when the table value is above this duty. + * units: % + * offset 6 + */ + uint8_t onAboveDuty; + /** + * Hysteresis: in on-off mode, turn the output off when the table value is below this duty. + * units: % + * offset 7 + */ + uint8_t offBelowDuty; + /** + * Selects the Y axis to use for the table. + * offset 8 + */ + gppwm_channel_e loadAxis; + /** + * Selects the X axis to use for the table. + * offset 9 + */ + gppwm_channel_e rpmAxis; + /** + * units: load + * offset 10 + */ + scaled_channel loadBins[GPPWM_LOAD_COUNT]; + /** + * units: RPM + * offset 26 + */ + int16_t rpmBins[GPPWM_RPM_COUNT]; + /** + * units: duty + * offset 42 + */ + scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 106 + */ + uint8_t alignmentFill_at_106[2]; +}; +static_assert(sizeof(gppwm_channel) == 108); + +// start of air_pressure_sensor_config_s +struct air_pressure_sensor_config_s { + /** + * kPa value at low volts + * units: kpa + * offset 0 + */ + float lowValue; + /** + * kPa value at high volts + * units: kpa + * offset 4 + */ + float highValue; + /** + * offset 8 + */ + air_pressure_sensor_type_e type; + /** + * offset 9 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 10 + */ + uint8_t alignmentFill_at_10[2]; +}; +static_assert(sizeof(air_pressure_sensor_config_s) == 12); + +// start of MAP_sensor_config_s +struct MAP_sensor_config_s { + /** + * offset 0 + */ + float samplingAngleBins[MAP_ANGLE_SIZE]; + /** + * MAP averaging sampling start crank degree angle + * units: deg + * offset 32 + */ + float samplingAngle[MAP_ANGLE_SIZE]; + /** + * offset 64 + */ + float samplingWindowBins[MAP_WINDOW_SIZE]; + /** + * MAP averaging angle crank degree duration + * units: deg + * offset 96 + */ + float samplingWindow[MAP_WINDOW_SIZE]; + /** + * offset 128 + */ + air_pressure_sensor_config_s sensor; +}; +static_assert(sizeof(MAP_sensor_config_s) == 140); + +/** + * @brief Thermistor known values + +*/ +// start of thermistor_conf_s +struct thermistor_conf_s { + /** + * these values are in Celcius + * units: *C + * offset 0 + */ + float tempC_1; + /** + * units: *C + * offset 4 + */ + float tempC_2; + /** + * units: *C + * offset 8 + */ + float tempC_3; + /** + * units: Ohm + * offset 12 + */ + float resistance_1; + /** + * units: Ohm + * offset 16 + */ + float resistance_2; + /** + * units: Ohm + * offset 20 + */ + float resistance_3; + /** + * Pull-up resistor value on your board + * units: Ohm + * offset 24 + */ + float bias_resistor; +}; +static_assert(sizeof(thermistor_conf_s) == 28); + +// start of linear_sensor_s +struct linear_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 1 + */ + uint8_t alignmentFill_at_1[3]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * offset 16 + */ + float value2; +}; +static_assert(sizeof(linear_sensor_s) == 20); + +// start of ThermistorConf +struct ThermistorConf { + /** + * offset 0 + */ + thermistor_conf_s config; + /** + * offset 28 + */ + adc_channel_e adcChannel; + /** + * need 4 byte alignment + * units: units + * offset 29 + */ + uint8_t alignmentFill_at_29[3]; +}; +static_assert(sizeof(ThermistorConf) == 32); + +// start of injector_s +struct injector_s { + /** + * This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute + * By the way, g/s = 0.125997881 * (lb/hr) + * g/s = 0.125997881 * (cc/min)/10.5 + * g/s = 0.0119997981 * cc/min + * units: cm3/min + * offset 0 + */ + float flow; + /** + * units: volts + * offset 4 + */ + float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; + /** + * ms delay between injector open and close dead times + * units: ms + * offset 36 + */ + float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; +}; +static_assert(sizeof(injector_s) == 68); + +// start of trigger_config_s +struct trigger_config_s { + /** + * https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers + * set trigger_type X + * offset 0 + */ + trigger_type_e type; + /** + * units: number + * offset 4 + */ + int customTotalToothCount; + /** + * units: number + * offset 8 + */ + int customSkippedToothCount; +}; +static_assert(sizeof(trigger_config_s) == 12); + +// start of afr_sensor_s +struct afr_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * offset 1 + */ + adc_channel_e hwChannel2; + /** + * need 4 byte alignment + * units: units + * offset 2 + */ + uint8_t alignmentFill_at_2[2]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * units: AFR + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * units: AFR + * offset 16 + */ + float value2; +}; +static_assert(sizeof(afr_sensor_s) == 20); + +// start of idle_hardware_s +struct idle_hardware_s { + /** + * units: Hz + * offset 0 + */ + int solenoidFrequency; + /** + * offset 4 + */ + output_pin_e solenoidPin; + /** + * offset 6 + */ + Gpio stepperDirectionPin; + /** + * offset 8 + */ + Gpio stepperStepPin; + /** + * offset 10 + */ + pin_output_mode_e solenoidPinMode; + /** + * need 4 byte alignment + * units: units + * offset 11 + */ + uint8_t alignmentFill_at_11[1]; +}; +static_assert(sizeof(idle_hardware_s) == 12); + +// start of dc_io +struct dc_io { + /** + * offset 0 + */ + Gpio directionPin1; + /** + * offset 2 + */ + Gpio directionPin2; + /** + * Acts as EN pin in two-wire mode + * offset 4 + */ + Gpio controlPin; + /** + * offset 6 + */ + Gpio disablePin; +}; +static_assert(sizeof(dc_io) == 8); + +// start of vr_threshold_s +struct vr_threshold_s { + /** + * units: rpm + * offset 0 + */ + scaled_channel rpmBins[6]; + /** + * units: volts + * offset 6 + */ + scaled_channel values[6]; + /** + * offset 12 + */ + Gpio pin; + /** + * need 4 byte alignment + * units: units + * offset 14 + */ + uint8_t alignmentFill_at_14[2]; +}; +static_assert(sizeof(vr_threshold_s) == 16); + +// start of engine_configuration_s +struct engine_configuration_s { + /** + * http://rusefi.com/wiki/index.php?title=Manual:Engine_Type + * set engine_type X + * offset 0 + */ + engine_type_e engineType; + /** + * offset 2 + */ + uint16_t startButtonSuppressOnStartUpMs; + /** + * Disable sensor sniffer above this rpm + * units: RPM + * offset 4 + */ + uint16_t sensorSnifferRpmThreshold; + /** + * A secondary Rev limit engaged by the driver to help launch the vehicle faster + * units: rpm + * offset 6 + */ + uint16_t launchRpm; + /** + * set rpm_hard_limit X + * units: rpm + * offset 8 + */ + uint16_t rpmHardLimit; + /** + * Engine sniffer would be disabled above this rpm + * set engineSnifferRpmThreshold X + * units: RPM + * offset 10 + */ + uint16_t engineSnifferRpmThreshold; + /** + * Disable multispark above this engine speed. + * units: rpm + * offset 12 + */ + scaled_channel multisparkMaxRpm; + /** + * Above this RPM, disable AC. Set to 0 to disable check. + * units: rpm + * offset 13 + */ + scaled_channel maxAcRpm; + /** + * Above this TPS, disable AC. Set to 0 to disable check. + * units: % + * offset 14 + */ + uint8_t maxAcTps; + /** + * Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check. + * units: deg C + * offset 15 + */ + uint8_t maxAcClt; + /** + * units: RPM + * offset 16 + */ + uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; + /** + * 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. + * units: deg + * offset 48 + */ + uint8_t multisparkMaxSparkingAngle; + /** + * Configures the maximum number of extra sparks to fire (does not include main spark) + * units: count + * offset 49 + */ + uint8_t multisparkMaxExtraSparkCount; + /** + * need 4 byte alignment + * units: units + * offset 50 + */ + uint8_t alignmentFill_at_50[2]; + /** + * offset 52 + */ + injector_s injector; + /** + * offset 120 + */ + injector_s injectorSecondary; + /** + * Does the vehicle have a turbo or supercharger? + offset 188 bit 0 */ + bool isForcedInduction : 1 {}; + /** + * 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. + offset 188 bit 1 */ + bool useFordRedundantTps : 1 {}; + /** + offset 188 bit 2 */ + bool enableKline : 1 {}; + /** + offset 188 bit 3 */ + bool overrideTriggerGaps : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 4 */ + bool enableFan1WithAc : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 5 */ + bool enableFan2WithAc : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 6 */ + bool disableFan1WhenStopped : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 7 */ + bool disableFan2WhenStopped : 1 {}; + /** + * Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines). + offset 188 bit 8 */ + bool enableTrailingSparks : 1 {}; + /** + * TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. + offset 188 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 188 bit 10 */ + bool isDoubleSolenoidIdle : 1 {}; + /** + offset 188 bit 11 */ + bool useEeprom : 1 {}; + /** + * Switch between Industrial and Cic PID implementation + offset 188 bit 12 */ + bool useCicPidForIdle : 1 {}; + /** + offset 188 bit 13 */ + bool useTLE8888_cranking_hack : 1 {}; + /** + offset 188 bit 14 */ + 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 188 bit 15 */ + bool useSeparateIdleTablesForCrankingTaper : 1 {}; + /** + offset 188 bit 16 */ + bool launchControlEnabled : 1 {}; + /** + * "Detect double trigger edges" + offset 188 bit 17 */ + bool doNotFilterTriggerEdgeNoise : 1 {}; + /** + offset 188 bit 18 */ + bool antiLagEnabled : 1 {}; + /** + * For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table). + offset 188 bit 19 */ + 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 188 bit 20 */ + bool displayLogicLevelsInEngineSniffer : 1 {}; + /** + offset 188 bit 21 */ + bool useTLE8888_stepper : 1 {}; + /** + offset 188 bit 22 */ + bool usescriptTableForCanSniffingFiltering : 1 {}; + /** + * Print incoming and outgoing first bus CAN messages in rusEFI console + offset 188 bit 23 */ + bool verboseCan : 1 {}; + /** + * Experimental setting that will cause a misfire + * DO NOT ENABLE. + offset 188 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 188 bit 25 */ + bool useFordRedundantPps : 1 {}; + /** + offset 188 bit 26 */ + bool cltSensorPulldown : 1 {}; + /** + offset 188 bit 27 */ + bool iatSensorPulldown : 1 {}; + /** + offset 188 bit 28 */ + bool allowIdenticalPps : 1 {}; + /** + offset 188 bit 29 */ + bool overrideVvtTriggerGaps : 1 {}; + /** + * If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages + offset 188 bit 30 */ + bool useSpiImu : 1 {}; + /** + offset 188 bit 31 */ + bool enableStagedInjection : 1 {}; + /** + * Closed throttle, 1 volt = 200 units. + * See also tps1_1AdcChannel + * set tps_min X + * units: ADC + * offset 192 + */ + int16_t tpsMin; + /** + * Full throttle. + * See also tps1_1AdcChannel + * set tps_max X + * units: ADC + * offset 194 + */ + int16_t tpsMax; + /** + * TPS error detection: what throttle % is unrealistically low? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 196 + */ + int16_t tpsErrorDetectionTooLow; + /** + * TPS error detection: what throttle % is unrealistically high? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 198 + */ + int16_t tpsErrorDetectionTooHigh; + /** + * offset 200 + */ + cranking_parameters_s cranking; + /** + * Dwell duration while cranking + * units: ms + * offset 208 + */ + float ignitionDwellForCrankingMs; + /** + * Once engine speed passes this value, start reducing ETB angle. + * units: rpm + * offset 212 + */ + uint16_t etbRevLimitStart; + /** + * 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. + * units: rpm + * offset 214 + */ + uint16_t etbRevLimitRange; + /** + * @see isMapAveragingEnabled + * offset 216 + */ + MAP_sensor_config_s map; + /** + * todo: merge with channel settings, use full-scale Thermistor here! + * offset 356 + */ + ThermistorConf clt; + /** + * offset 388 + */ + ThermistorConf iat; + /** + * units: deg + * offset 420 + */ + int launchTimingRetard; + /** + * value '6' for 8MHz hw osc + * read hip9011 datasheet for details + * todo split into two bit fields + * units: integer + * offset 424 + */ + int hip9011PrescalerAndSDO; + /** + * We calculate knock band based of cylinderBore + * Use this to override - kHz knock band override + * Requires power cycling to effect + * units: kHz + * offset 428 + */ + float knockBandCustom; + /** + * Engine displacement in litres + * units: L + * offset 432 + */ + scaled_channel displacement; + /** + * units: RPM + * offset 434 + */ + uint16_t triggerSimulatorRpm; + /** + * Number of cylinder the engine has. + * offset 436 + */ + uint32_t cylindersCount; + /** + * offset 440 + */ + firing_order_e firingOrder; + /** + * need 4 byte alignment + * units: units + * offset 441 + */ + uint8_t alignmentFill_at_441[1]; + /** + * offset 442 + */ + Gpio communityCommsLedPid; + /** + * Cylinder diameter in mm. + * units: mm + * offset 444 + */ + float cylinderBore; + /** + * This setting controls which fuel quantity control algorithm is used. + * 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 448 + */ + engine_load_mode_e fuelAlgorithm; + /** + * units: % + * offset 449 + */ + uint8_t ALSMaxTPS; + /** + * This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous". + * offset 450 + */ + 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. + * offset 451 + */ + 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 452 + */ + uint16_t boostControlMinRpm; + /** + * Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 454 + */ + uint8_t boostControlMinTps; + /** + * Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 455 + */ + uint8_t boostControlMinMap; + /** + * 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 + * units: deg + * offset 456 + */ + angle_t crankingTimingAngle; + /** + * Single coil = distributor + * 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 460 + */ + ignition_mode_e ignitionMode; + /** + * How many consecutive gap rations have to match expected ranges for sync to happen + * units: count + * offset 461 + */ + int8_t gapTrackingLengthOverride; + /** + * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). + * units: kph + * offset 462 + */ + uint8_t maxIdleVss; + /** + * need 4 byte alignment + * units: units + * offset 463 + */ + uint8_t alignmentFill_at_463[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. + * units: kPa + * offset 464 + */ + 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 466 + */ + timing_mode_e timingMode; + /** + * need 4 byte alignment + * units: units + * offset 467 + */ + uint8_t alignmentFill_at_467[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. + * units: RPM + * offset 468 + */ + angle_t fixedModeTiming; + /** + * Angle between Top Dead Center (TDC) and the first trigger event. + * Positive value in case of synchronization point before TDC and negative in case of synchronization point after TDC + * .Knowing this angle allows us to control timing and other angles in reference to TDC. + * set global_trigger_offset_angle X + * units: deg btdc + * offset 472 + */ + 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. + * units: coef + * offset 476 + */ + 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. + * units: coef + * offset 480 + */ + float vbattDividerCoeff; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 484 + */ + float fanOnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 488 + */ + float fanOffTemperature; + /** + * offset 492 + */ + output_pin_e acrPin; + /** + * need 4 byte alignment + * units: units + * offset 494 + */ + uint8_t alignmentFill_at_494[2]; + /** + * 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. + * units: revs/km + * offset 496 + */ + float driveWheelRevPerKm; + /** + * set can_mode X + * offset 500 + */ + can_nbc_e canNbcType; + /** + * need 4 byte alignment + * units: units + * offset 501 + */ + uint8_t alignmentFill_at_501[3]; + /** + * CANbus thread period in ms + * units: ms + * offset 504 + */ + int canSleepPeriodMs; + /** + * offset 508 + */ + uint8_t camDecoder2jzPrecision; + /** + * offset 509 + */ + uint8_t justATempTest; + /** + * offset 510 + */ + uint8_t unusedHere333; + /** + * offset 511 + */ + uint8_t unusedHere334; + /** + * units: index + * offset 512 + */ + int byFirmwareVersion; + /** + * First throttle body, first sensor. See also pedalPositionAdcChannel + * offset 516 + */ + 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 517 + */ + 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 518 + */ + adc_channel_e fuelLevelSensor; + /** + * Second throttle body position sensor, single channel so far + * set_analog_input_pin tps2 X + * offset 519 + */ + adc_channel_e tps2_1AdcChannel; + /** + * 0.1 is a good default value + * units: x + * offset 520 + */ + float idle_derivativeFilterLoss; + /** + * just a temporary solution + * units: angle + * offset 524 + */ + int trailingSparkAngle; + /** + * offset 528 + */ + trigger_config_s trigger; + /** + * Extra air taper amount + * units: % + * offset 540 + */ + float airByRpmTaper; + /** + * offset 544 + */ + spi_device_e hip9011SpiDevice; + /** + * 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. + * units: % + * offset 545 + */ + uint8_t boostControlSafeDutyCycle; + /** + * offset 546 + */ + adc_channel_e mafAdcChannel; + /** + * offset 547 + */ + uint8_t acrRevolutions; + /** + * offset 548 + */ + float unused4bytesHere; + /** + * units: volts + * offset 552 + */ + float adcVcc; + /** + * units: Deg + * offset 556 + */ + 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 560 + */ + brain_input_pin_e camInputs[CAM_INPUTS_COUNT]; + /** + * offset 568 + */ + 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 588 + */ + adc_channel_e throttlePedalPositionAdcChannel; + /** + * TPS/PPS error threshold + * units: % + * offset 589 + */ + scaled_channel etbSplit; + /** + * offset 590 + */ + Gpio tle6240_cs; + /** + * offset 592 + */ + pin_output_mode_e tle6240_csPinMode; + /** + * offset 593 + */ + pin_output_mode_e mc33810_csPinMode; + /** + * Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata + * offset 594 + */ + switch_input_pin_e throttlePedalUpPin; + /** + * @see hasBaroSensor + * offset 596 + */ + air_pressure_sensor_config_s baroSensor; + /** + * offset 608 + */ + idle_hardware_s idle; + /** + * Value between 0 and 100 used in Manual mode + * units: % + * offset 620 + */ + float manIdlePosition; + /** + * Ignition timing to remove when a knock event occurs. + * units: % + * offset 624 + */ + scaled_channel knockRetardAggression; + /** + * After a knock event, reapply timing at this rate. + * units: deg/s + * offset 625 + */ + 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 626 + */ + engineSyncCam_e engineSyncCam; + /** + * Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response. + * offset 627 + */ + 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. + * units: ratio + * offset 628 + */ + 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. + * units: count + * offset 630 + */ + uint8_t vssToothCount; + /** + * Override the Y axis (load) value used for only the Idle VE table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 631 + */ + ve_override_e idleVeOverrideMode; + /** + * offset 632 + */ + Gpio l9779_cs; + /** + * offset 634 + */ + output_pin_e injectionPins[MAX_CYLINDER_COUNT]; + /** + * offset 658 + */ + output_pin_e ignitionPins[MAX_CYLINDER_COUNT]; + /** + * offset 682 + */ + pin_output_mode_e injectionPinMode; + /** + * offset 683 + */ + pin_output_mode_e ignitionPinMode; + /** + * offset 684 + */ + output_pin_e fuelPumpPin; + /** + * offset 686 + */ + pin_output_mode_e fuelPumpPinMode; + /** + * How many consecutive VVT gap rations have to match expected ranges for sync to happen + * units: count + * offset 687 + */ + int8_t gapVvtTrackingLengthOverride; + /** + * Check engine light, also malfunction indicator light. Always blinks once on boot. + * offset 688 + */ + output_pin_e malfunctionIndicatorPin; + /** + * offset 690 + */ + pin_output_mode_e malfunctionIndicatorPinMode; + /** + * offset 691 + */ + pin_output_mode_e fanPinMode; + /** + * offset 692 + */ + output_pin_e fanPin; + /** + * Some cars have a switch to indicate that clutch pedal is all the way down + * offset 694 + */ + switch_input_pin_e clutchDownPin; + /** + * offset 696 + */ + output_pin_e alternatorControlPin; + /** + * offset 698 + */ + pin_output_mode_e alternatorControlPinMode; + /** + * offset 699 + */ + pin_input_mode_e clutchDownPinMode; + /** + * offset 700 + */ + Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT]; + /** + * offset 708 + */ + pin_output_mode_e electronicThrottlePin1Mode; + /** + * offset 709 + */ + spi_device_e max31855spiDevice; + /** + * offset 710 + */ + Gpio debugTriggerSync; + /** + * Digital Potentiometer is used by stock ECU stimulation code + * offset 712 + */ + spi_device_e digitalPotentiometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 713 + */ + uint8_t alignmentFill_at_713[1]; + /** + * offset 714 + */ + Gpio mc33972_cs; + /** + * offset 716 + */ + pin_output_mode_e mc33972_csPinMode; + /** + * Useful in Research&Development phase + * offset 717 + */ + adc_channel_e auxFastSensor1_adcChannel; + /** + * First throttle body, second sensor. + * offset 718 + */ + adc_channel_e tps1_2AdcChannel; + /** + * Second throttle body, second sensor. + * offset 719 + */ + adc_channel_e tps2_2AdcChannel; + /** + * Electronic throttle pedal position input + * Second channel + * See also tps1_1AdcChannel + * See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage + * offset 720 + */ + adc_channel_e throttlePedalPositionSecondAdcChannel; + /** + * units: % + * offset 721 + */ + uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; + /** + * AFR, WBO, EGO - whatever you like to call it + * offset 729 + */ + ego_sensor_e afr_type; + /** + * offset 730 + */ + Gpio mc33810_cs[C_MC33810_COUNT]; + /** + * 0.1 is a good default value + * units: x + * offset 732 + */ + float idle_antiwindupFreq; + /** + * offset 736 + */ + 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. + * units: us + * offset 740 + */ + uint16_t mc33_t_min_boost; + /** + * offset 742 + */ + pin_output_mode_e hip9011CsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 743 + */ + uint8_t alignmentFill_at_743[1]; + /** + * offset 744 + */ + output_pin_e tachOutputPin; + /** + * offset 746 + */ + pin_output_mode_e tachOutputPinMode; + /** + * need 4 byte alignment + * units: units + * offset 747 + */ + uint8_t alignmentFill_at_747[1]; + /** + * offset 748 + */ + output_pin_e mainRelayPin; + /** + * offset 750 + */ + Gpio sdCardCsPin; + /** + * set_can_tx_pin X + * offset 752 + */ + Gpio canTxPin; + /** + * set_can_rx_pin X + * offset 754 + */ + Gpio canRxPin; + /** + * offset 756 + */ + pin_input_mode_e throttlePedalUpPinMode; + /** + * Additional idle % while A/C is active + * units: % + * offset 757 + */ + uint8_t acIdleExtraOffset; + /** + * Ratio between the wheels and your transmission output. + * units: ratio + * offset 758 + */ + scaled_channel finalGearRatio; + /** + * offset 760 + */ + brain_input_pin_e tcuInputSpeedSensorPin; + /** + * offset 762 + */ + uint8_t tcuInputSpeedSensorTeeth; + /** + * need 4 byte alignment + * units: units + * offset 763 + */ + uint8_t alignmentFill_at_763[1]; + /** + * Voltage when the wastegate is closed. + * You probably don't have one of these! + * units: mv + * offset 764 + */ + uint16_t wastegatePositionMin; + /** + * Voltage when the wastegate is fully open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 766 + */ + uint16_t wastegatePositionMax; + /** + * Voltage when the idle valve is closed. + * You probably don't have one of these! + * units: mv + * offset 768 + */ + uint16_t idlePositionMin; + /** + * Voltage when the idle valve is open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 770 + */ + uint16_t idlePositionMax; + /** + * Secondary TTL channel baud rate + * units: BPs + * offset 772 + */ + uint32_t tunerStudioSerialSpeed; + /** + * Just for reference really, not taken into account by any logic at this point + * units: CR + * offset 776 + */ + 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 780 + */ + Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * units: g/s + * offset 784 + */ + scaled_channel fordInjectorSmallPulseSlope; + /** + * offset 786 + */ + pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * offset 788 + */ + adc_channel_e maf2AdcChannel; + /** + * need 4 byte alignment + * units: units + * offset 789 + */ + uint8_t alignmentFill_at_789[1]; + /** + * On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking. + * offset 790 + */ + output_pin_e o2heaterPin; + /** + * offset 792 + */ + pin_output_mode_e o2heaterPinModeTodO; + /** + * units: RPM + * offset 793 + */ + scaled_channel lambdaProtectionMinRpm; + /** + * units: % + * offset 794 + */ + scaled_channel lambdaProtectionMinLoad; + /** + * need 4 byte alignment + * units: units + * offset 795 + */ + uint8_t alignmentFill_at_795[1]; + /** + offset 796 bit 0 */ + bool is_enabled_spi_1 : 1 {}; + /** + offset 796 bit 1 */ + bool is_enabled_spi_2 : 1 {}; + /** + offset 796 bit 2 */ + bool is_enabled_spi_3 : 1 {}; + /** + * enable sd/disable sd + offset 796 bit 3 */ + bool isSdCardEnabled : 1 {}; + /** + * Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format. + offset 796 bit 4 */ + bool rusefiVerbose29b : 1 {}; + /** + offset 796 bit 5 */ + bool rethrowHardFault : 1 {}; + /** + offset 796 bit 6 */ + bool isHip9011Enabled : 1 {}; + /** + offset 796 bit 7 */ + bool requireFootOnBrakeToCrank : 1 {}; + /** + offset 796 bit 8 */ + bool verboseQuad : 1 {}; + /** + * This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed. + offset 796 bit 9 */ + bool useStepperIdle : 1 {}; + /** + offset 796 bit 10 */ + bool enabledStep1Limiter : 1 {}; + /** + offset 796 bit 11 */ + bool useTpicAdvancedMode : 1 {}; + /** + offset 796 bit 12 */ + bool lambdaProtectionEnable : 1 {}; + /** + offset 796 bit 13 */ + bool verboseTLE8888 : 1 {}; + /** + * CAN broadcast using custom rusEFI protocol + * enable can_broadcast/disable can_broadcast + offset 796 bit 14 */ + bool enableVerboseCanTx : 1 {}; + /** + offset 796 bit 15 */ + bool etb1configured : 1 {}; + /** + offset 796 bit 16 */ + bool etb2configured : 1 {}; + /** + * Useful for individual intakes + offset 796 bit 17 */ + bool measureMapOnlyInOneCylinder : 1 {}; + /** + offset 796 bit 18 */ + 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 796 bit 19 */ + 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 796 bit 20 */ + 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 796 bit 21 */ + bool useIacTableForCoasting : 1 {}; + /** + offset 796 bit 22 */ + bool useNoiselessTriggerDecoder : 1 {}; + /** + offset 796 bit 23 */ + 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 796 bit 24 */ + bool disableEtbWhenEngineStopped : 1 {}; + /** + offset 796 bit 25 */ + 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 796 bit 26 */ + bool pauseEtbControl : 1 {}; + /** + offset 796 bit 27 */ + bool alignEngineSnifferAtTDC : 1 {}; + /** + offset 796 bit 28 */ + bool verboseKLine : 1 {}; + /** + offset 796 bit 29 */ + bool idleIncrementalPidCic : 1 {}; + /** + * AEM X-Series or rusEFI Wideband + offset 796 bit 30 */ + bool enableAemXSeries : 1 {}; + /** + offset 796 bit 31 */ + bool unusedBit_230_31 : 1 {}; + /** + * offset 800 + */ + brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]; + /** + * offset 808 + */ + pin_output_mode_e mainRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 809 + */ + uint8_t alignmentFill_at_809[1]; + /** + * offset 810 + */ + Gpio hip9011CsPin; + /** + * offset 812 + */ + Gpio hip9011IntHoldPin; + /** + * offset 814 + */ + pin_output_mode_e hip9011IntHoldPinMode; + /** + * need 4 byte alignment + * units: units + * offset 815 + */ + uint8_t alignmentFill_at_815[1]; + /** + * offset 816 + */ + uint32_t verboseCanBaseAddress; + /** + * Boost Voltage + * units: v + * offset 820 + */ + uint8_t mc33_hvolt; + /** + * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. + * units: kPa + * offset 821 + */ + uint8_t minimumBoostClosedLoopMap; + /** + * Optional Radiator Fan used with A/C + * offset 822 + */ + output_pin_e acFanPin; + /** + * offset 824 + */ + pin_output_mode_e acFanPinMode; + /** + * offset 825 + */ + spi_device_e l9779spiDevice; + /** + * units: volts + * offset 826 + */ + scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; + /** + * offset 834 + */ + imu_type_e imuType; + /** + * units: multiplier + * offset 835 + */ + scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 843 + */ + uint8_t alignmentFill_at_843[1]; + /** + * units: kg + * offset 844 + */ + uint16_t vehicleWeight; + /** + * How far above idle speed do we consider idling, i.e. coasting detection threshold. + * For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle. + * units: RPM + * offset 846 + */ + int16_t idlePidRpmUpperLimit; + /** + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + * units: ms + * offset 848 + */ + scaled_channel applyNonlinearBelowPulse; + /** + * offset 850 + */ + Gpio lps25BaroSensorScl; + /** + * offset 852 + */ + Gpio lps25BaroSensorSda; + /** + * offset 854 + */ + brain_input_pin_e vehicleSpeedSensorInputPin; + /** + * Some vehicles have a switch to indicate that clutch pedal is all the way up + * offset 856 + */ + switch_input_pin_e clutchUpPin; + /** + * offset 858 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + * offset 859 + */ + pin_input_mode_e clutchUpPinMode; + /** + * offset 860 + */ + Gpio max31855_cs[EGT_CHANNEL_COUNT]; + /** + * Continental/GM flex fuel sensor, 50-150hz type + * offset 876 + */ + brain_input_pin_e flexSensorPin; + /** + * offset 878 + */ + Gpio test557pin; + /** + * offset 880 + */ + pin_output_mode_e stepperDirectionPinMode; + /** + * offset 881 + */ + spi_device_e mc33972spiDevice; + /** + * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 + * units: :1 + * offset 882 + */ + scaled_channel stoichRatioSecondary; + /** + * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. + * units: % + * offset 883 + */ + uint8_t etbMaximumPosition; + /** + * Rate the ECU will log to the SD card, in hz (log lines per second). + * units: hz + * offset 884 + */ + uint16_t sdCardLogFrequency; + /** + * offset 886 + */ + adc_channel_e idlePositionChannel; + /** + * need 4 byte alignment + * units: units + * offset 887 + */ + uint8_t alignmentFill_at_887[1]; + /** + * offset 888 + */ + Gpio debugMapAveraging; + /** + * offset 890 + */ + output_pin_e starterRelayDisablePin; + /** + * On some vehicles we can disable starter once engine is already running + * offset 892 + */ + pin_output_mode_e starterRelayDisablePinMode; + /** + * need 4 byte alignment + * units: units + * offset 893 + */ + uint8_t alignmentFill_at_893[1]; + /** + * Some Subaru and some Mazda use double-solenoid idle air valve + * offset 894 + */ + output_pin_e secondSolenoidPin; + /** + * See also starterControlPin + * offset 896 + */ + switch_input_pin_e startStopButtonPin; + /** + * need 4 byte alignment + * units: units + * offset 898 + */ + uint8_t alignmentFill_at_898[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. + * units: count + * offset 900 + */ + 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%. + * units: % + * offset 904 + */ + int16_t idlePidDeactivationTpsThreshold; + /** + * units: % + * offset 906 + */ + int16_t stepperParkingExtraSteps; + /** + * units: ADC + * offset 908 + */ + uint16_t tps1SecondaryMin; + /** + * units: ADC + * offset 910 + */ + uint16_t tps1SecondaryMax; + /** + * units: rpm + * offset 912 + */ + int16_t antiLagRpmTreshold; + /** + * Maximum time to crank starter when start/stop button is pressed + * units: Seconds + * offset 914 + */ + uint16_t startCrankingDuration; + /** + * This pin is used for debugging - snap a logic analyzer on it and see if it's ever high + * offset 916 + */ + Gpio triggerErrorPin; + /** + * offset 918 + */ + pin_output_mode_e triggerErrorPinMode; + /** + * need 4 byte alignment + * units: units + * offset 919 + */ + uint8_t alignmentFill_at_919[1]; + /** + * offset 920 + */ + output_pin_e acRelayPin; + /** + * units: % + * offset 922 + */ + uint8_t lambdaProtectionMinTps; + /** + * Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed + * units: s + * offset 923 + */ + scaled_channel lambdaProtectionTimeout; + /** + * units: RPM + * offset 924 + */ + scaled_channel lambdaProtectionRestoreRpm; + /** + * offset 925 + */ + pin_output_mode_e acRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 926 + */ + uint8_t alignmentFill_at_926[2]; + /** + * offset 928 + */ + script_setting_t scriptSetting[SCRIPT_SETTING_COUNT]; + /** + * offset 960 + */ + Gpio spi1mosiPin; + /** + * offset 962 + */ + Gpio spi1misoPin; + /** + * offset 964 + */ + Gpio spi1sckPin; + /** + * offset 966 + */ + Gpio spi2mosiPin; + /** + * offset 968 + */ + Gpio spi2misoPin; + /** + * offset 970 + */ + Gpio spi2sckPin; + /** + * offset 972 + */ + Gpio spi3mosiPin; + /** + * offset 974 + */ + Gpio spi3misoPin; + /** + * offset 976 + */ + Gpio spi3sckPin; + /** + * Saab Combustion Detection Module knock signal input pin + * also known as Saab Ion Sensing Module + * offset 978 + */ + Gpio cdmInputPin; + /** + * offset 980 + */ + uart_device_e consoleUartDevice; + /** + * rusEFI console Sensor Sniffer mode + * offset 981 + */ + sensor_chart_e sensorChartMode; + /** + * offset 982 + */ + maf_sensor_type_e mafSensorType; + /** + * need 4 byte alignment + * units: units + * offset 983 + */ + uint8_t alignmentFill_at_983[1]; + /** + offset 984 bit 0 */ + bool clutchUpPinInverted : 1 {}; + /** + offset 984 bit 1 */ + bool clutchDownPinInverted : 1 {}; + /** + * If enabled we use two H-bridges to drive stepper idle air valve + offset 984 bit 2 */ + bool useHbridgesToDriveIdleStepper : 1 {}; + /** + offset 984 bit 3 */ + bool multisparkEnable : 1 {}; + /** + offset 984 bit 4 */ + bool enableLaunchRetard : 1 {}; + /** + offset 984 bit 5 */ + bool canInputBCM : 1 {}; + /** + * This property is useful if using rusEFI as TCM or BCM only + offset 984 bit 6 */ + bool consumeObdSensors : 1 {}; + /** + * Read VSS from OEM CAN bus according to selected CAN vehicle configuration. + offset 984 bit 7 */ + bool enableCanVss : 1 {}; + /** + offset 984 bit 8 */ + bool enableInnovateLC2 : 1 {}; + /** + offset 984 bit 9 */ + 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. + offset 984 bit 10 */ + bool stftIgnoreErrorMagnitude : 1 {}; + /** + offset 984 bit 11 */ + bool vvtBooleanForVerySpecialCases : 1 {}; + /** + offset 984 bit 12 */ + bool enableSoftwareKnock : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable vvt_details + offset 984 bit 13 */ + bool verboseVVTDecoding : 1 {}; + /** + * get invertCamVVTSignal + offset 984 bit 14 */ + bool invertCamVVTSignal : 1 {}; + /** + * In Alpha-N mode, compensate for air temperature. + offset 984 bit 15 */ + bool alphaNUseIat : 1 {}; + /** + offset 984 bit 16 */ + bool knockBankCyl1 : 1 {}; + /** + offset 984 bit 17 */ + bool knockBankCyl2 : 1 {}; + /** + offset 984 bit 18 */ + bool knockBankCyl3 : 1 {}; + /** + offset 984 bit 19 */ + bool knockBankCyl4 : 1 {}; + /** + offset 984 bit 20 */ + bool knockBankCyl5 : 1 {}; + /** + offset 984 bit 21 */ + bool knockBankCyl6 : 1 {}; + /** + offset 984 bit 22 */ + bool knockBankCyl7 : 1 {}; + /** + offset 984 bit 23 */ + bool knockBankCyl8 : 1 {}; + /** + offset 984 bit 24 */ + bool knockBankCyl9 : 1 {}; + /** + offset 984 bit 25 */ + bool knockBankCyl10 : 1 {}; + /** + offset 984 bit 26 */ + bool knockBankCyl11 : 1 {}; + /** + offset 984 bit 27 */ + bool knockBankCyl12 : 1 {}; + /** + offset 984 bit 28 */ + bool tcuEnabled : 1 {}; + /** + offset 984 bit 29 */ + bool canBroadcastUseChannelTwo : 1 {}; + /** + * If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils + offset 984 bit 30 */ + bool useRawOutputToDriveIdleStepper : 1 {}; + /** + * Print incoming and outgoing second bus CAN messages in rusEFI console + offset 984 bit 31 */ + bool verboseCan2 : 1 {}; + /** + * offset 988 + */ + dc_io etbIo[ETB_COUNT]; + /** + * Wastegate control Solenoid + * offset 1004 + */ + output_pin_e boostControlPin; + /** + * offset 1006 + */ + pin_output_mode_e boostControlPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1007 + */ + uint8_t alignmentFill_at_1007[1]; + /** + * offset 1008 + */ + switch_input_pin_e ALSActivatePin; + /** + * offset 1010 + */ + switch_input_pin_e launchActivatePin; + /** + * offset 1012 + */ + pid_s boostPid; + /** + * offset 1032 + */ + boostType_e boostType; + /** + * offset 1033 + */ + pin_input_mode_e ignitionKeyDigitalPinMode; + /** + * offset 1034 + */ + Gpio ignitionKeyDigitalPin; + /** + * units: Hz + * offset 1036 + */ + int boostPwmFrequency; + /** + * offset 1040 + */ + launchActivationMode_e launchActivationMode; + /** + * offset 1041 + */ + antiLagActivationMode_e antiLagActivationMode; + /** + * need 4 byte alignment + * units: units + * offset 1042 + */ + uint8_t alignmentFill_at_1042[2]; + /** + * Launch disabled above this speed if setting is above zero + * units: Kph + * offset 1044 + */ + int launchSpeedThreshold; + /** + * Range from Launch RPM for Timing Retard to activate + * units: RPM + * offset 1048 + */ + int launchTimingRpmRange; + /** + * Spark Skip Transition Target + * units: % + * offset 1052 + */ + int launchSparkSkipPercent; + /** + * Duty Cycle for the Boost Solenoid + * units: % + * offset 1056 + */ + int launchBoostDuty; + /** + * Range from Launch RPM to activate Hard Cut + * units: RPM + * offset 1060 + */ + int hardCutRpmRange; + /** + * offset 1064 + */ + float turbochargerFilter; + /** + * offset 1068 + */ + int launchTpsThreshold; + /** + * offset 1072 + */ + float launchActivateDelay; + /** + * offset 1076 + */ + stft_s stft; + /** + * offset 1100 + */ + dc_io stepperDcIo[DC_PER_STEPPER]; + /** + * For example, BMW, GM or Chevrolet + * REQUIRED for rusEFI Online + * offset 1116 + */ + vehicle_info_t engineMake; + /** + * For example, LS1 or NB2 + * REQUIRED for rusEFI Online + * offset 1148 + */ + vehicle_info_t engineCode; + /** + * For example, Hunchback or Orange Miata + * Vehicle name has to be unique between your vehicles. + * REQUIRED for rusEFI Online + * offset 1180 + */ + vehicle_info_t vehicleName; + /** + * offset 1212 + */ + output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT]; + /** + * offset 1224 + */ + dc_function_e etbFunctions[ETB_COUNT]; + /** + * offset 1226 + */ + spi_device_e drv8860spiDevice; + /** + * need 4 byte alignment + * units: units + * offset 1227 + */ + uint8_t alignmentFill_at_1227[1]; + /** + * offset 1228 + */ + Gpio drv8860_cs; + /** + * offset 1230 + */ + pin_output_mode_e drv8860_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1231 + */ + uint8_t alignmentFill_at_1231[1]; + /** + * offset 1232 + */ + Gpio drv8860_miso; + /** + * units: volt + * offset 1234 + */ + scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; + /** + * offset 1250 + */ + output_pin_e luaOutputPins[LUA_PWM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 1266 + */ + uint8_t alignmentFill_at_1266[2]; + /** + * Angle between cam sensor and VVT zero position + * set vvt_offset X + * units: value + * offset 1268 + */ + float vvtOffsets[CAM_INPUTS_COUNT]; + /** + * offset 1284 + */ + vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT]; + /** + * offset 1316 + */ + gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; + /** + * units: ADC + * offset 1380 + */ + uint16_t tps2SecondaryMin; + /** + * units: ADC + * offset 1382 + */ + uint16_t tps2SecondaryMax; + /** + * Select which bus the wideband controller is attached to. + offset 1384 bit 0 */ + bool widebandOnSecondBus : 1 {}; + /** + * Enables lambda sensor closed loop feedback for fuelling. + offset 1384 bit 1 */ + bool fuelClosedLoopCorrectionEnabled : 1 {}; + /** + * On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines. + offset 1384 bit 2 */ + bool oddFireEngine : 1 {}; + /** + offset 1384 bit 3 */ + bool boardUseTachPullUp : 1 {}; + /** + offset 1384 bit 4 */ + bool boardUseTempPullUp : 1 {}; + /** + offset 1384 bit 5 */ + bool yesUnderstandLocking : 1 {}; + /** + * Sometimes we have a performance issue while printing error + offset 1384 bit 6 */ + bool silentTriggerError : 1 {}; + /** + offset 1384 bit 7 */ + bool useLinearCltSensor : 1 {}; + /** + * enable can_read/disable can_read + offset 1384 bit 8 */ + bool canReadEnabled : 1 {}; + /** + * enable can_write/disable can_write. See also can1ListenMode + offset 1384 bit 9 */ + bool canWriteEnabled : 1 {}; + /** + offset 1384 bit 10 */ + bool useLinearIatSensor : 1 {}; + /** + offset 1384 bit 11 */ + bool boardUse2stepPullDown : 1 {}; + /** + * Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50% + offset 1384 bit 12 */ + bool tachPulseDurationAsDutyCycle : 1 {}; + /** + * This enables smart alternator control and activates the extra alternator settings. + offset 1384 bit 13 */ + bool isAlternatorControlEnabled : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the primary engine speed sensor. + offset 1384 bit 14 */ + bool invertPrimaryTriggerSignal : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the secondary engine speed sensor. + offset 1384 bit 15 */ + bool invertSecondaryTriggerSignal : 1 {}; + /** + offset 1384 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 1384 bit 17 */ + bool cutSparkOnHardLimit : 1 {}; + /** + offset 1384 bit 18 */ + bool launchFuelCutEnable : 1 {}; + /** + * This is the Cut Mode normally used + offset 1384 bit 19 */ + bool launchSparkCutEnable : 1 {}; + /** + offset 1384 bit 20 */ + bool boardUseCrankPullUp : 1 {}; + /** + offset 1384 bit 21 */ + bool boardUseCamPullDown : 1 {}; + /** + offset 1384 bit 22 */ + bool boardUseCamVrPullUp : 1 {}; + /** + offset 1384 bit 23 */ + bool boardUseD2PullDown : 1 {}; + /** + offset 1384 bit 24 */ + bool boardUseD3PullDown : 1 {}; + /** + offset 1384 bit 25 */ + bool boardUseD4PullDown : 1 {}; + /** + offset 1384 bit 26 */ + bool boardUseD5PullDown : 1 {}; + /** + * Are you a developer troubleshooting TS over CAN ISO/TP? + offset 1384 bit 27 */ + bool verboseIsoTp : 1 {}; + /** + offset 1384 bit 28 */ + bool engineSnifferFocusOnInputs : 1 {}; + /** + offset 1384 bit 29 */ + bool launchActivateInverted : 1 {}; + /** + offset 1384 bit 30 */ + bool twoStroke : 1 {}; + /** + * Where is your primary skipped wheel located? + offset 1384 bit 31 */ + bool skippedWheelOnCam : 1 {}; + /** + * offset 1388 + */ + adc_channel_e hipOutputChannel; + /** + * need 4 byte alignment + * units: units + * offset 1389 + */ + uint8_t alignmentFill_at_1389[1]; + /** + * A/C button input + * offset 1390 + */ + switch_input_pin_e acSwitch; + /** + * offset 1392 + */ + adc_channel_e vRefAdcChannel; + /** + * Expected neutral position + * units: % + * offset 1393 + */ + uint8_t etbNeutralPosition; + /** + * See also idleRpmPid + * offset 1394 + */ + idle_mode_e idleMode; + /** + * need 4 byte alignment + * units: units + * offset 1395 + */ + uint8_t alignmentFill_at_1395[1]; + /** + offset 1396 bit 0 */ + bool isInjectionEnabled : 1 {}; + /** + offset 1396 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 1396 bit 2 */ + bool isCylinderCleanupEnabled : 1 {}; + /** + * Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values? + offset 1396 bit 3 */ + bool complexWallModel : 1 {}; + /** + * RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution + offset 1396 bit 4 */ + bool alwaysInstantRpm : 1 {}; + /** + offset 1396 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 1396 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 1396 bit 7 */ + bool useSeparateAdvanceForIdle : 1 {}; + /** + offset 1396 bit 8 */ + bool isWaveAnalyzerEnabled : 1 {}; + /** + * This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling. + offset 1396 bit 9 */ + bool useSeparateVeForIdle : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable trigger_details + offset 1396 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 1396 bit 11 */ + bool isManualSpinningMode : 1 {}; + /** + offset 1396 bit 12 */ + bool cutFuelInAcr : 1 {}; + /** + offset 1396 bit 13 */ + bool hondaK : 1 {}; + /** + * This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark). + offset 1396 bit 14 */ + bool twoWireBatchIgnition : 1 {}; + /** + offset 1396 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 1396 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 1396 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 1396 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 1396 bit 19 */ + bool useIacPidMultTable : 1 {}; + /** + offset 1396 bit 20 */ + bool isBoostControlEnabled : 1 {}; + /** + * Interpolates the Ignition Retard from 0 to 100% within the RPM Range + offset 1396 bit 21 */ + bool launchSmoothRetard : 1 {}; + /** + * Some engines are OK running semi-random sequential while other engine require phase synchronization + offset 1396 bit 22 */ + bool isPhaseSyncRequiredForIgnition : 1 {}; + /** + * If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value. + offset 1396 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 1396 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 1396 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 1396 bit 26 */ + bool invertVvtControlExhaust : 1 {}; + /** + offset 1396 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 1396 bit 28 */ + bool sdTriggerLog : 1 {}; + /** + offset 1396 bit 29 */ + bool ALSActivateInverted : 1 {}; + /** + offset 1396 bit 30 */ + bool stepper_dc_use_two_wires : 1 {}; + /** + offset 1396 bit 31 */ + bool watchOutForLinearTime : 1 {}; + /** + * units: count + * offset 1400 + */ + uint32_t engineChartSize; + /** + * units: mult + * offset 1404 + */ + float turboSpeedSensorMultiplier; + /** + * offset 1408 + */ + Gpio camInputsDebug[CAM_INPUTS_COUNT]; + /** + * Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling. + * units: RPM + * offset 1416 + */ + int16_t acIdleRpmTarget; + /** + * set warningPeriod X + * units: seconds + * offset 1418 + */ + int16_t warningPeriod; + /** + * units: angle + * offset 1420 + */ + float knockDetectionWindowStart; + /** + * units: angle + * offset 1424 + */ + float knockDetectionWindowEnd; + /** + * units: ms + * offset 1428 + */ + float idleStepperReactionTime; + /** + * units: count + * offset 1432 + */ + int idleStepperTotalSteps; + /** + * TODO: finish this #413 + * units: sec + * offset 1436 + */ + 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. + * units: index + * offset 1440 + */ + int mapAveragingSchedulingAtIndex; + /** + * Duration in ms or duty cycle depending on selected mode + * offset 1444 + */ + float tachPulseDuractionMs; + /** + * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. + * units: Seconds + * offset 1448 + */ + float wwaeTau; + /** + * offset 1452 + */ + pid_s alternatorControl; + /** + * offset 1472 + */ + pid_s etb; + /** + * offset 1492 + */ + Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; + /** + * RPM range above upper limit for extra air taper + * units: RPM + * offset 1496 + */ + int16_t airTaperRpmRange; + /** + * offset 1498 + */ + brain_input_pin_e turboSpeedSensorInputPin; + /** + * Closed throttle#2. todo: extract these two fields into a structure + * See also tps2_1AdcChannel + * set tps2_min X + * units: ADC + * offset 1500 + */ + int16_t tps2Min; + /** + * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! + * See also tps1_1AdcChannel + * set tps2_max X + * units: ADC + * offset 1502 + */ + int16_t tps2Max; + /** + * See also startStopButtonPin + * offset 1504 + */ + output_pin_e starterControlPin; + /** + * offset 1506 + */ + pin_input_mode_e startStopButtonMode; + /** + * need 4 byte alignment + * units: units + * offset 1507 + */ + uint8_t alignmentFill_at_1507[1]; + /** + * offset 1508 + */ + Gpio mc33816_flag0; + /** + * units: Pulse + * offset 1510 + */ + uint8_t tachPulsePerRev; + /** + * need 4 byte alignment + * units: units + * offset 1511 + */ + uint8_t alignmentFill_at_1511[1]; + /** + * kPa value which is too low to be true + * units: kPa + * offset 1512 + */ + float mapErrorDetectionTooLow; + /** + * kPa value which is too high to be true + * units: kPa + * offset 1516 + */ + float mapErrorDetectionTooHigh; + /** + * How long to wait for the spark to fire before recharging the coil for another spark. + * units: ms + * offset 1520 + */ + scaled_channel multisparkSparkDuration; + /** + * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. + * units: ms + * offset 1522 + */ + scaled_channel multisparkDwell; + /** + * See cltIdleRpmBins + * offset 1524 + */ + 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. + * units: Fraction + * offset 1544 + */ + float wwaeBeta; + /** + * See also EFI_CONSOLE_RX_BRAIN_PIN + * offset 1548 + */ + Gpio binarySerialTxPin; + /** + * offset 1550 + */ + Gpio binarySerialRxPin; + /** + * offset 1552 + */ + Gpio auxValves[AUX_DIGITAL_VALVE_COUNT]; + /** + * offset 1556 + */ + switch_input_pin_e tcuUpshiftButtonPin; + /** + * offset 1558 + */ + switch_input_pin_e tcuDownshiftButtonPin; + /** + * units: voltage + * offset 1560 + */ + float throttlePedalUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1564 + */ + float throttlePedalWOTVoltage; + /** + * on IGN voltage detection turn fuel pump on to build fuel pressure + * units: seconds + * offset 1568 + */ + int16_t startUpFuelPumpDuration; + /** + * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation + * units: RPM + * offset 1570 + */ + int16_t idlePidRpmDeadZone; + /** + * This is the target battery voltage the alternator PID control will attempt to maintain + * units: Volts + * offset 1572 + */ + float targetVBatt; + /** + * See Over/Undervoltage Shutdown/Retry bit in documentation + offset 1576 bit 0 */ + bool mc33810DisableRecoveryMode : 1 {}; + /** + offset 1576 bit 1 */ + bool mc33810Gpgd0Mode : 1 {}; + /** + offset 1576 bit 2 */ + bool mc33810Gpgd1Mode : 1 {}; + /** + offset 1576 bit 3 */ + bool mc33810Gpgd2Mode : 1 {}; + /** + offset 1576 bit 4 */ + bool mc33810Gpgd3Mode : 1 {}; + /** + offset 1576 bit 5 */ + bool enableExtendedCanBroadcast : 1 {}; + /** + offset 1576 bit 6 */ + bool luaCanRxWorkaround : 1 {}; + /** + offset 1576 bit 7 */ + bool flexSensorInverted : 1 {}; + /** + offset 1576 bit 8 */ + bool useHardSkipInTraction : 1 {}; + /** + offset 1576 bit 9 */ + bool unusedBit_495_9 : 1 {}; + /** + offset 1576 bit 10 */ + bool unusedBit_495_10 : 1 {}; + /** + offset 1576 bit 11 */ + bool useAuxSpeedForSlipRatio : 1 {}; + /** + * VSS and auxSpeed1 or auxSpeed1 with auxSpeed2? + offset 1576 bit 12 */ + bool useVssAsSecondWheelSpeed : 1 {}; + /** + offset 1576 bit 13 */ + bool is_enabled_spi_5 : 1 {}; + /** + offset 1576 bit 14 */ + bool is_enabled_spi_6 : 1 {}; + /** + offset 1576 bit 15 */ + bool unusedBit_503_15 : 1 {}; + /** + offset 1576 bit 16 */ + bool unusedBit_503_16 : 1 {}; + /** + offset 1576 bit 17 */ + bool unusedBit_503_17 : 1 {}; + /** + offset 1576 bit 18 */ + bool unusedBit_511_18 : 1 {}; + /** + offset 1576 bit 19 */ + bool unusedBit_511_19 : 1 {}; + /** + offset 1576 bit 20 */ + bool unusedBit_511_20 : 1 {}; + /** + offset 1576 bit 21 */ + bool unusedBit_511_21 : 1 {}; + /** + offset 1576 bit 22 */ + bool unusedBit_511_22 : 1 {}; + /** + offset 1576 bit 23 */ + bool unusedBit_511_23 : 1 {}; + /** + offset 1576 bit 24 */ + bool unusedBit_511_24 : 1 {}; + /** + offset 1576 bit 25 */ + bool unusedBit_511_25 : 1 {}; + /** + offset 1576 bit 26 */ + bool unusedBit_511_26 : 1 {}; + /** + offset 1576 bit 27 */ + bool unusedBit_511_27 : 1 {}; + /** + offset 1576 bit 28 */ + bool unusedBit_511_28 : 1 {}; + /** + offset 1576 bit 29 */ + bool unusedBit_511_29 : 1 {}; + /** + offset 1576 bit 30 */ + bool unusedBit_511_30 : 1 {}; + /** + offset 1576 bit 31 */ + bool unusedBit_511_31 : 1 {}; + /** + * 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. + * units: cycles + * offset 1580 + */ + int16_t afterCrankingIACtaperDuration; + /** + * IAC Value added when coasting and transitioning into idle. + * units: percent + * offset 1582 + */ + int16_t iacByTpsTaper; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1584 + */ + Gpio auxSerialTxPin; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1586 + */ + Gpio auxSerialRxPin; + /** + * offset 1588 + */ + Gpio accelerometerCsPin; + /** + * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. + * units: sec + * offset 1590 + */ + scaled_channel tpsAccelLookback; + /** + * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1591 + */ + uint8_t coastingFuelCutVssLow; + /** + * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1592 + */ + 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. + * units: sec + * offset 1593 + */ + scaled_channel noFuelTrimAfterDfcoTime; + /** + * need 4 byte alignment + * units: units + * offset 1594 + */ + uint8_t alignmentFill_at_1594[2]; + /** + * 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. + * units: roc + * offset 1596 + */ + float tpsAccelEnrichmentThreshold; + /** + * offset 1600 + */ + brain_input_pin_e auxSpeedSensorInputPin[AUX_SPEED_SENSOR_COUNT]; + /** + * offset 1604 + */ + uint8_t totalGearsCount; + /** + * Sets what part of injection's is controlled by the injection phase table. + * offset 1605 + */ + InjectionTimingMode injectionTimingMode; + /** + * See http://rusefi.com/s/debugmode + * offset 1606 + */ + debug_mode_e debugMode; + /** + * Additional idle % when fan #1 is active + * units: % + * offset 1607 + */ + uint8_t fan1ExtraIdle; + /** + * Band rate for primary TTL + * units: BPs + * offset 1608 + */ + uint32_t uartConsoleSerialSpeed; + /** + * For decel we simply multiply delta of TPS and tFor decel we do not use table?! + * units: roc + * offset 1612 + */ + float tpsDecelEnleanmentThreshold; + /** + * Magic multiplier, we multiply delta of TPS and get fuel squirt duration + * units: coeff + * offset 1616 + */ + float tpsDecelEnleanmentMultiplier; + /** + * units: BPs + * offset 1620 + */ + uint32_t auxSerialSpeed; + /** + * units: voltage + * offset 1624 + */ + float throttlePedalSecondaryUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1628 + */ + float throttlePedalSecondaryWOTVoltage; + /** + * set can_baudrate + * offset 1632 + */ + 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 1633 + */ + ve_override_e veOverrideMode; + /** + * offset 1634 + */ + 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 1635 + */ + load_override_e afrOverrideMode; + /** + * units: A + * offset 1636 + */ + scaled_channel mc33_hpfp_i_peak; + /** + * units: A + * offset 1637 + */ + scaled_channel mc33_hpfp_i_hold; + /** + * How long to deactivate power when hold current is reached before applying power again + * units: us + * offset 1638 + */ + uint8_t mc33_hpfp_i_hold_off; + /** + * Maximum amount of time the solenoid can be active before assuming a programming error + * units: ms + * offset 1639 + */ + uint8_t mc33_hpfp_max_hold; + /** + * Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards) + offset 1640 bit 0 */ + bool stepperDcInvertedPins : 1 {}; + /** + * Allow OpenBLT on Primary CAN + offset 1640 bit 1 */ + bool canOpenBLT : 1 {}; + /** + * Allow OpenBLT on Secondary CAN + offset 1640 bit 2 */ + bool can2OpenBLT : 1 {}; + /** + * Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s). + offset 1640 bit 3 */ + bool injectorFlowAsMassFlow : 1 {}; + /** + offset 1640 bit 4 */ + bool boardUseCanTerminator : 1 {}; + /** + offset 1640 bit 5 */ + bool kLineDoHondaSend : 1 {}; + /** + * ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled + offset 1640 bit 6 */ + bool can1ListenMode : 1 {}; + /** + offset 1640 bit 7 */ + bool can2ListenMode : 1 {}; + /** + offset 1640 bit 8 */ + bool unusedBit_563_8 : 1 {}; + /** + offset 1640 bit 9 */ + bool unusedBit_563_9 : 1 {}; + /** + offset 1640 bit 10 */ + bool unusedBit_563_10 : 1 {}; + /** + offset 1640 bit 11 */ + bool unusedBit_563_11 : 1 {}; + /** + offset 1640 bit 12 */ + bool unusedBit_563_12 : 1 {}; + /** + offset 1640 bit 13 */ + bool unusedBit_563_13 : 1 {}; + /** + offset 1640 bit 14 */ + bool unusedBit_563_14 : 1 {}; + /** + offset 1640 bit 15 */ + bool unusedBit_563_15 : 1 {}; + /** + offset 1640 bit 16 */ + bool unusedBit_563_16 : 1 {}; + /** + offset 1640 bit 17 */ + bool unusedBit_563_17 : 1 {}; + /** + offset 1640 bit 18 */ + bool unusedBit_563_18 : 1 {}; + /** + offset 1640 bit 19 */ + bool unusedBit_563_19 : 1 {}; + /** + offset 1640 bit 20 */ + bool unusedBit_563_20 : 1 {}; + /** + offset 1640 bit 21 */ + bool unusedBit_563_21 : 1 {}; + /** + offset 1640 bit 22 */ + bool unusedBit_563_22 : 1 {}; + /** + offset 1640 bit 23 */ + bool unusedBit_563_23 : 1 {}; + /** + offset 1640 bit 24 */ + bool unusedBit_563_24 : 1 {}; + /** + offset 1640 bit 25 */ + bool unusedBit_563_25 : 1 {}; + /** + offset 1640 bit 26 */ + bool unusedBit_563_26 : 1 {}; + /** + offset 1640 bit 27 */ + bool unusedBit_563_27 : 1 {}; + /** + offset 1640 bit 28 */ + bool unusedBit_563_28 : 1 {}; + /** + offset 1640 bit 29 */ + bool unusedBit_563_29 : 1 {}; + /** + offset 1640 bit 30 */ + bool unusedBit_563_30 : 1 {}; + /** + offset 1640 bit 31 */ + bool unusedBit_563_31 : 1 {}; + /** + * offset 1644 + */ + uint8_t camDecoder2jzPosition; + /** + * offset 1645 + */ + mc33810maxDwellTimer_e mc33810maxDwellTimer; + /** + * Duration of each test pulse + * units: ms + * offset 1646 + */ + scaled_channel benchTestOnTime; + /** + * units: % + * offset 1648 + */ + uint8_t lambdaProtectionRestoreTps; + /** + * units: % + * offset 1649 + */ + scaled_channel lambdaProtectionRestoreLoad; + /** + * offset 1650 + */ + pin_input_mode_e launchActivatePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1651 + */ + uint8_t alignmentFill_at_1651[1]; + /** + * set_can2_tx_pin X + * offset 1652 + */ + Gpio can2TxPin; + /** + * set_can2_rx_pin X + * offset 1654 + */ + Gpio can2RxPin; + /** + * offset 1656 + */ + pin_output_mode_e starterControlPinMode; + /** + * offset 1657 + */ + 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 1658 + */ + load_override_e ignOverrideMode; + /** + * Select which fuel pressure sensor measures the pressure of the fuel at your injectors. + * offset 1659 + */ + injector_pressure_type_e injectorPressureType; + /** + * offset 1660 + */ + output_pin_e hpfpValvePin; + /** + * offset 1662 + */ + pin_output_mode_e hpfpValvePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1663 + */ + uint8_t alignmentFill_at_1663[1]; + /** + * MAP value above which fuel is cut in case of overboost. + * Set to 0 to disable overboost cut. + * units: kPa (absolute) + * offset 1664 + */ + float boostCutPressure; + /** + * units: kg/h + * offset 1668 + */ + scaled_channel tchargeBins[16]; + /** + * units: ratio + * offset 1684 + */ + scaled_channel tchargeValues[16]; + /** + * Fixed timing, useful for TDC testing + * units: deg + * offset 1700 + */ + float fixedTiming; + /** + * MAP voltage for low point + * units: v + * offset 1704 + */ + float mapLowValueVoltage; + /** + * MAP voltage for low point + * units: v + * offset 1708 + */ + float mapHighValueVoltage; + /** + * EGO value correction + * units: value + * offset 1712 + */ + float egoValueShift; + /** + * VVT output solenoid pin for this cam + * offset 1716 + */ + output_pin_e vvtPins[CAM_INPUTS_COUNT]; + /** + * offset 1724 + */ + pin_output_mode_e sdCardCsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1725 + */ + uint8_t alignmentFill_at_1725[3]; + /** + * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. + * units: percent + * offset 1728 + */ + int crankingIACposition; + /** + * offset 1732 + */ + float tChargeMinRpmMinTps; + /** + * offset 1736 + */ + float tChargeMinRpmMaxTps; + /** + * offset 1740 + */ + float tChargeMaxRpmMinTps; + /** + * offset 1744 + */ + float tChargeMaxRpmMaxTps; + /** + * offset 1748 + */ + pwm_freq_t vvtOutputFrequency; + /** + * Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint. + * units: deg BTDC + * offset 1750 + */ + int8_t minimumIgnitionTiming; + /** + * Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC + * units: deg BTDC + * offset 1751 + */ + int8_t maximumIgnitionTiming; + /** + * units: Hz + * offset 1752 + */ + int alternatorPwmFrequency; + /** + * set vvt_mode X + * offset 1756 + */ + vvt_mode_e vvtMode[CAMS_PER_BANK]; + /** + * Additional idle % when fan #2 is active + * units: % + * offset 1758 + */ + uint8_t fan2ExtraIdle; + /** + * Delay to allow fuel pressure to build before firing the priming pulse. + * units: sec + * offset 1759 + */ + scaled_channel primingDelay; + /** + * offset 1760 + */ + adc_channel_e auxAnalogInputs[LUA_ANALOG_INPUT_COUNT]; + /** + * offset 1768 + */ + output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT]; + /** + * offset 1792 + */ + tle8888_mode_e tle8888mode; + /** + * offset 1793 + */ + pin_output_mode_e accelerometerCsPinMode; + /** + * 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 1794 + */ + injector_compensation_mode_e injectorCompensationMode; + /** + * offset 1795 + */ + 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. + * units: kPa + * offset 1796 + */ + float fuelReferencePressure; + /** + * units: mult + * offset 1800 + */ + float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; + /** + * units: count + * offset 1944 + */ + float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; + /** + * units: C + * offset 1968 + */ + float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; + /** + * offset 1992 + */ + ThermistorConf auxTempSensor1; + /** + * offset 2024 + */ + ThermistorConf auxTempSensor2; + /** + * units: Deg + * offset 2056 + */ + int16_t knockSamplingDuration; + /** + * units: Hz + * offset 2058 + */ + int16_t etbFreq; + /** + * offset 2060 + */ + pid_s etbWastegatePid; + /** + * For micro-stepping, make sure that PWM frequency (etbFreq) is high enough + * offset 2080 + */ + stepper_num_micro_steps_e stepperNumMicroSteps; + /** + * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) + * units: % + * offset 2081 + */ + uint8_t stepperMinDutyCycle; + /** + * Use to limit the max.current through the stepper motor (100% = no limit) + * units: % + * offset 2082 + */ + uint8_t stepperMaxDutyCycle; + /** + * offset 2083 + */ + spi_device_e sdCardSpiDevice; + /** + * per-cylinder ignition and fueling timing correction for uneven engines + * units: deg + * offset 2084 + */ + angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; + /** + * units: seconds + * offset 2132 + */ + float idlePidActivationTime; + /** + * offset 2136 + */ + pin_mode_e spi1SckMode; + /** + * Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc. + * offset 2137 + */ + pin_mode_e spi1MosiMode; + /** + * offset 2138 + */ + pin_mode_e spi1MisoMode; + /** + * offset 2139 + */ + pin_mode_e spi2SckMode; + /** + * offset 2140 + */ + pin_mode_e spi2MosiMode; + /** + * offset 2141 + */ + pin_mode_e spi2MisoMode; + /** + * offset 2142 + */ + pin_mode_e spi3SckMode; + /** + * offset 2143 + */ + pin_mode_e spi3MosiMode; + /** + * offset 2144 + */ + pin_mode_e spi3MisoMode; + /** + * offset 2145 + */ + pin_output_mode_e stepperEnablePinMode; + /** + * ResetB + * offset 2146 + */ + Gpio mc33816_rstb; + /** + * offset 2148 + */ + Gpio mc33816_driven; + /** + * Brake pedal switch + * offset 2150 + */ + switch_input_pin_e brakePedalPin; + /** + * offset 2152 + */ + pin_input_mode_e brakePedalPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2153 + */ + uint8_t alignmentFill_at_2153[3]; + /** + * VVT output PID + * TODO: rename to vvtPid + * offset 2156 + */ + pid_s auxPid[CAMS_PER_BANK]; + /** + * offset 2196 + */ + float injectorCorrectionPolynomial[8]; + /** + * units: C + * offset 2228 + */ + int8_t primeBins[PRIME_CURVE_COUNT]; + /** + * offset 2236 + */ + linear_sensor_s oilPressure; + /** + * offset 2256 + */ + spi_device_e accelerometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 2257 + */ + uint8_t alignmentFill_at_2257[1]; + /** + * offset 2258 + */ + output_pin_e fan2Pin; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 2260 + */ + uint8_t fan2OnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 2261 + */ + uint8_t fan2OffTemperature; + /** + * offset 2262 + */ + Gpio stepperEnablePin; + /** + * offset 2264 + */ + Gpio tle8888_cs; + /** + * offset 2266 + */ + pin_output_mode_e tle8888_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2267 + */ + uint8_t alignmentFill_at_2267[1]; + /** + * offset 2268 + */ + Gpio mc33816_cs; + /** + * need 4 byte alignment + * units: units + * offset 2270 + */ + uint8_t alignmentFill_at_2270[2]; + /** + * units: hz + * offset 2272 + */ + float auxFrequencyFilter; + /** + * units: RPM + * offset 2276 + */ + int16_t vvtControlMinRpm; + /** + * offset 2278 + */ + sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; + /** + * units: % + * offset 2280 + */ + int8_t launchFuelAdderPercent; + /** + * Time required to detect a stuck throttle. + * units: sec + * offset 2281 + */ + scaled_channel etbJamTimeout; + /** + * By the way ETB PID runs at 500hz, length in 1/500 of second here. + * offset 2282 + */ + uint16_t etbExpAverageLength; + /** + * offset 2284 + */ + float etbDutyThreshold; + /** + * This sets the RPM above which fuel cut is active. + * units: rpm + * offset 2288 + */ + int16_t coastingFuelCutRpmHigh; + /** + * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle + * units: rpm + * offset 2290 + */ + int16_t coastingFuelCutRpmLow; + /** + * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. + * units: % + * offset 2292 + */ + int16_t coastingFuelCutTps; + /** + * Fuel cutoff is disabled when the engine is cold. + * units: C + * offset 2294 + */ + int16_t coastingFuelCutClt; + /** + * Increases PID reaction for RPM stoichRatioPrimary; + /** + * iTerm max value + * offset 2710 + */ + 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. + * units: % + * offset 2712 + */ + float etbIdleThrottleRange; + /** + * Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor + * offset 2716 + */ + uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; + /** + * units: mg + * offset 2728 + */ + scaled_channel primeValues[PRIME_CURVE_COUNT]; + /** + * Trigger comparator center point voltage + * units: V + * offset 2736 + */ + scaled_channel triggerCompCenterVolt; + /** + * Trigger comparator hysteresis voltage (Min) + * units: V + * offset 2737 + */ + scaled_channel triggerCompHystMin; + /** + * Trigger comparator hysteresis voltage (Max) + * units: V + * offset 2738 + */ + scaled_channel triggerCompHystMax; + /** + * VR-sensor saturation RPM + * units: RPM + * offset 2739 + */ + scaled_channel triggerCompSensorSatRpm; + /** + * units: ratio + * offset 2740 + */ + scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: RPM + * offset 2752 + */ + uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 2758 + */ + int8_t disableFan1AtSpeed; + /** + * offset 2759 + */ + int8_t disableFan2AtSpeed; + /** + * offset 2760 + */ + can_vss_nbc_e canVssNbcType; + /** + * need 4 byte alignment + * units: units + * offset 2762 + */ + uint8_t alignmentFill_at_2762[2]; + /** + * offset 2764 + */ + gppwm_channel gppwm[GPPWM_CHANNELS]; + /** + * Boost Current + * units: mA + * offset 3196 + */ + uint16_t mc33_i_boost; + /** + * Peak Current + * units: mA + * offset 3198 + */ + uint16_t mc33_i_peak; + /** + * Hold Current + * units: mA + * offset 3200 + */ + 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. + * units: us + * offset 3202 + */ + uint16_t mc33_t_max_boost; + /** + * units: us + * offset 3204 + */ + uint16_t mc33_t_peak_off; + /** + * Peak phase duration + * units: us + * offset 3206 + */ + uint16_t mc33_t_peak_tot; + /** + * units: us + * offset 3208 + */ + uint16_t mc33_t_bypass; + /** + * units: us + * offset 3210 + */ + uint16_t mc33_t_hold_off; + /** + * Hold phase duration + * units: us + * offset 3212 + */ + uint16_t mc33_t_hold_tot; + /** + * offset 3214 + */ + pin_input_mode_e tcuUpshiftButtonPinMode; + /** + * offset 3215 + */ + pin_input_mode_e tcuDownshiftButtonPinMode; + /** + * offset 3216 + */ + pin_input_mode_e acSwitchMode; + /** + * offset 3217 + */ + pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; + /** + * Knock sensor output knock detection threshold depending on current RPM. + * units: dB + * offset 3223 + */ + scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 3239 + */ + uint8_t alignmentFill_at_3239[1]; + /** + * units: ratio + * offset 3240 + */ + float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; + /** + * units: ratio + * offset 3312 + */ + 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. + * units: rpm + * offset 3384 + */ + 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... + * units: sec + * offset 3385 + */ + 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. + * units: sec + * offset 3386 + */ + scaled_channel acDelay; + /** + * need 4 byte alignment + * units: units + * offset 3387 + */ + uint8_t alignmentFill_at_3387[1]; + /** + * units: mg + * offset 3388 + */ + scaled_channel fordInjectorSmallPulseBreakPoint; + /** + * units: multiplier + * offset 3390 + */ + scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: % + * offset 3394 + */ + uint8_t etbJamIntegratorLimit; + /** + * units: lobes/cam + * offset 3395 + */ + uint8_t hpfpCamLobes; + /** + * offset 3396 + */ + hpfp_cam_e hpfpCam; + /** + * offset 3397 + */ + uint8_t auxiliarySetting1; + /** + * If the requested activation time is below this angle, don't bother running the pump + * units: deg + * offset 3398 + */ + uint8_t hpfpMinAngle; + /** + * need 4 byte alignment + * units: units + * offset 3399 + */ + uint8_t alignmentFill_at_3399[1]; + /** + * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. + * units: cc + * offset 3400 + */ + 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) + * units: deg + * offset 3402 + */ + uint8_t hpfpActivationAngle; + /** + * offset 3403 + */ + uint8_t issFilterReciprocal; + /** + * units: %/kPa + * offset 3404 + */ + scaled_channel hpfpPidP; + /** + * units: %/kPa/lobe + * offset 3406 + */ + 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. + * units: kPa/s + * offset 3408 + */ + uint16_t hpfpTargetDecay; + /** + * units: % + * offset 3410 + */ + scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: deg + * offset 3426 + */ + scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: volts + * offset 3442 + */ + uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; + /** + * units: ms + * offset 3450 + */ + scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; + /** + * units: kPa + * offset 3466 + */ + uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; + /** + * units: load + * offset 3666 + */ + scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; + /** + * units: RPM + * offset 3686 + */ + scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; + /** + * units: % + * offset 3696 + */ + int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; + /** + * units: cc/lobe + * offset 3796 + */ + scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; + /** + * units: RPM + * offset 3816 + */ + scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; + /** + * offset 3826 + */ + output_pin_e stepper_raw_output[4]; + /** + * units: ratio + * offset 3834 + */ + scaled_channel gearRatio[TCU_GEAR_COUNT]; + /** + * We need to give engine time to build oil pressure without diverting it to VVT + * units: ms + * offset 3854 + */ + uint16_t vvtActivationDelayMs; + /** + * units: deg C + * offset 3856 + */ + int8_t wwCltBins[WWAE_TABLE_SIZE]; + /** + * offset 3864 + */ + scaled_channel wwTauCltValues[WWAE_TABLE_SIZE]; + /** + * offset 3872 + */ + scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; + /** + * units: kPa + * offset 3880 + */ + int8_t wwMapBins[WWAE_TABLE_SIZE]; + /** + * offset 3888 + */ + scaled_channel wwTauMapValues[WWAE_TABLE_SIZE]; + /** + * offset 3896 + */ + scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; + /** + * units: Nm + * offset 3904 + */ + scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; + /** + * units: RPM + * offset 3940 + */ + uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; + /** + * units: Load + * offset 3952 + */ + uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; + /** + * offset 3964 + */ + GearControllerMode gearControllerMode; + /** + * offset 3965 + */ + TransmissionControllerMode transmissionControllerMode; + /** + * units: deg + * offset 3966 + */ + uint16_t acrDisablePhase; + /** + * offset 3968 + */ + linear_sensor_s auxLinear1; + /** + * offset 3988 + */ + linear_sensor_s auxLinear2; + /** + * offset 4008 + */ + output_pin_e tcu_tcc_onoff_solenoid; + /** + * offset 4010 + */ + pin_output_mode_e tcu_tcc_onoff_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4011 + */ + uint8_t alignmentFill_at_4011[1]; + /** + * offset 4012 + */ + output_pin_e tcu_tcc_pwm_solenoid; + /** + * offset 4014 + */ + pin_output_mode_e tcu_tcc_pwm_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4015 + */ + uint8_t alignmentFill_at_4015[1]; + /** + * offset 4016 + */ + pwm_freq_t tcu_tcc_pwm_solenoid_freq; + /** + * offset 4018 + */ + output_pin_e tcu_pc_solenoid_pin; + /** + * offset 4020 + */ + pin_output_mode_e tcu_pc_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4021 + */ + uint8_t alignmentFill_at_4021[1]; + /** + * offset 4022 + */ + pwm_freq_t tcu_pc_solenoid_freq; + /** + * offset 4024 + */ + output_pin_e tcu_32_solenoid_pin; + /** + * offset 4026 + */ + pin_output_mode_e tcu_32_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4027 + */ + uint8_t alignmentFill_at_4027[1]; + /** + * offset 4028 + */ + pwm_freq_t tcu_32_solenoid_freq; + /** + * offset 4030 + */ + output_pin_e acrPin2; + /** + * units: % + * offset 4032 + */ + float etbMinimumPosition; + /** + * offset 4036 + */ + uint16_t tuneHidingKey; + /** + * offset 4038 + */ + vin_number_t vinNumber; + /** + * need 4 byte alignment + * units: units + * offset 4055 + */ + uint8_t alignmentFill_at_4055[1]; + /** + * offset 4056 + */ + uint16_t highSpeedOffsets[HIGH_SPEED_COUNT]; + /** + * offset 4120 + */ + float etbDutyShutdownThreshold; + /** + * offset 4124 + */ + fuel_pressure_sensor_mode_e fuelPressureSensorMode; + /** + * need 4 byte alignment + * units: units + * offset 4125 + */ + uint8_t alignmentFill_at_4125[1]; + /** + * offset 4126 + */ + switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; + /** + * units: RPM + * offset 4142 + */ + scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: rpm + * offset 4146 + */ + int16_t ALSMinRPM; + /** + * units: rpm + * offset 4148 + */ + int16_t ALSMaxRPM; + /** + * units: sec + * offset 4150 + */ + int16_t ALSMaxDuration; + /** + * units: C + * offset 4152 + */ + int8_t ALSMinCLT; + /** + * units: C + * offset 4153 + */ + int8_t ALSMaxCLT; + /** + * offset 4154 + */ + uint8_t alsMinTimeBetween; + /** + * offset 4155 + */ + uint8_t alsEtbPosition; + /** + * units: % + * offset 4156 + */ + uint8_t acRelayAlternatorDutyAdder; + /** + * offset 4157 + */ + SentEtbType sentEtbType; + /** + * offset 4158 + */ + uint16_t customSentTpsMin; + /** + * units: % + * offset 4160 + */ + int ALSIdleAdd; + /** + * units: % + * offset 4164 + */ + int ALSEtbAdd; + /** + * offset 4168 + */ + float ALSSkipRatio; + /** + * units: % + * offset 4172 + */ + uint8_t ALSMaxDriverThrottleIntent; + /** + * offset 4173 + */ + pin_input_mode_e ALSActivatePinMode; + /** + * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% + * units: % + * offset 4174 + */ + scaled_channel tpsSecondaryMaximum; + /** + * For Toyota ETCS-i, use ~69% + * units: % + * offset 4175 + */ + scaled_channel ppsSecondaryMaximum; + /** + * offset 4176 + */ + pin_input_mode_e luaDigitalInputPinModes[LUA_DIGITAL_INPUT_COUNT]; + /** + * offset 4184 + */ + uint16_t customSentTpsMax; + /** + * offset 4186 + */ + uint16_t kLineBaudRate; + /** + * offset 4188 + */ + CanGpioType canGpioType; + /** + * offset 4189 + */ + UiMode uiMode; + /** + * Crank angle ATDC of first lobe peak + * units: deg + * offset 4190 + */ + int16_t hpfpPeakPos; + /** + * units: us + * offset 4192 + */ + int16_t kLinePeriodUs; + /** + * Window that the correction will be added throughout (example, if rpm limit is 7000, and rpmSoftLimitWindowSize is 200, the corrections activate at 6800RPM, creating a 200rpm window) + * units: RPM + * offset 4194 + */ + scaled_channel rpmSoftLimitWindowSize; + /** + * Degrees of timing REMOVED from actual timing during soft RPM limit window + * units: deg + * offset 4195 + */ + scaled_channel rpmSoftLimitTimingRetard; + /** + * % of fuel ADDED during window + * units: % + * offset 4196 + */ + scaled_channel rpmSoftLimitFuelAdded; + /** + * Hysterisis: if the hard limit is 7200rpm and rpmHardLimitHyst is 200rpm, then when the ECU sees 7200rpm, fuel/ign will cut, and stay cut until 7000rpm (7200-200) is reached + * units: RPM + * offset 4197 + */ + scaled_channel rpmHardLimitHyst; + /** + * Time between bench test pulses + * units: ms + * offset 4198 + */ + scaled_channel benchTestOffTime; + /** + * Hysterisis: if hard cut is 240kpa, and boostCutPressureHyst is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached + * units: kPa (absolute) + * offset 4200 + */ + scaled_channel boostCutPressureHyst; + /** + * Boost duty cycle added by gear + * units: % + * offset 4201 + */ + scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 4211 + */ + uint8_t alignmentFill_at_4211[1]; + /** + * How many test bench pulses do you want + * offset 4212 + */ + uint32_t benchTestCount; + /** + * How long initial IAC adder is held before starting to decay. + * units: seconds + * offset 4216 + */ + scaled_channel iacByTpsHoldTime; + /** + * How long it takes to remove initial IAC adder to return to normal idle. + * units: seconds + * offset 4217 + */ + scaled_channel iacByTpsDecayTime; + /** + * offset 4218 + */ + switch_input_pin_e tcu_rangeInput[RANGE_INPUT_COUNT]; + /** + * offset 4230 + */ + pin_input_mode_e tcu_rangeInputMode[RANGE_INPUT_COUNT]; + /** + * Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead. + * units: ratio + * offset 4236 + */ + scaled_channel canVssScaling; + /** + * need 4 byte alignment + * units: units + * offset 4238 + */ + uint8_t alignmentFill_at_4238[2]; + /** + * offset 4240 + */ + ThermistorConf oilTempSensor; + /** + * offset 4272 + */ + ThermistorConf fuelTempSensor; + /** + * offset 4304 + */ + ThermistorConf ambientTempSensor; + /** + * offset 4336 + */ + ThermistorConf compressorDischargeTemperature; + /** + * Place the sensor before the throttle, but after any turbocharger/supercharger and intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4368 + */ + adc_channel_e throttleInletPressureChannel; + /** + * Place the sensor after the turbocharger/supercharger, but before any intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4369 + */ + adc_channel_e compressorDischargePressureChannel; + /** + * offset 4370 + */ + Gpio dacOutputPins[DAC_OUTPUT_COUNT]; + /** + * offset 4374 + */ + output_pin_e speedometerOutputPin; + /** + * Number of speedometer pulses per kilometer travelled. + * offset 4376 + */ + uint16_t speedometerPulsePerKm; + /** + * offset 4378 + */ + uint8_t simulatorCamPosition[CAM_INPUTS_COUNT]; + /** + * offset 4382 + */ + adc_channel_e ignKeyAdcChannel; + /** + * offset 4383 + */ + pin_mode_e spi6MisoMode; + /** + * units: ratio + * offset 4384 + */ + float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; + /** + * units: ratio + * offset 4400 + */ + float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; + /** + * units: % + * offset 4416 + */ + int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * If injector duty cycle hits this value, instantly cut fuel. + * units: % + * offset 4452 + */ + uint8_t maxInjectorDutyInstant; + /** + * If injector duty cycle hits this value for the specified delay time, cut fuel. + * units: % + * offset 4453 + */ + uint8_t maxInjectorDutySustained; + /** + * Timeout period for duty cycle over the sustained limit to trigger duty cycle protection. + * units: sec + * offset 4454 + */ + scaled_channel maxInjectorDutySustainedTimeout; + /** + * need 4 byte alignment + * units: units + * offset 4455 + */ + uint8_t alignmentFill_at_4455[1]; + /** + * offset 4456 + */ + output_pin_e injectionPinsStage2[MAX_CYLINDER_COUNT]; + /** + * units: Deg + * offset 4480 + */ + int8_t tractionControlTimingDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: % + * offset 4516 + */ + int8_t tractionControlIgnitionSkip[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 4552 + */ + float auxSpeed1Multiplier; + /** + * offset 4556 + */ + float brakeMeanEffectivePressureDifferential; + /** + * offset 4560 + */ + Gpio spi4mosiPin; + /** + * offset 4562 + */ + Gpio spi4misoPin; + /** + * offset 4564 + */ + Gpio spi4sckPin; + /** + * offset 4566 + */ + Gpio spi5mosiPin; + /** + * offset 4568 + */ + Gpio spi5misoPin; + /** + * offset 4570 + */ + Gpio spi5sckPin; + /** + * offset 4572 + */ + Gpio spi6mosiPin; + /** + * offset 4574 + */ + Gpio spi6misoPin; + /** + * offset 4576 + */ + Gpio spi6sckPin; + /** + * offset 4578 + */ + pin_mode_e spi4SckMode; + /** + * offset 4579 + */ + pin_mode_e spi4MosiMode; + /** + * offset 4580 + */ + pin_mode_e spi4MisoMode; + /** + * offset 4581 + */ + pin_mode_e spi5SckMode; + /** + * offset 4582 + */ + pin_mode_e spi5MosiMode; + /** + * offset 4583 + */ + pin_mode_e spi5MisoMode; + /** + * offset 4584 + */ + pin_mode_e spi6SckMode; + /** + * offset 4585 + */ + pin_mode_e spi6MosiMode; + /** + * units: units + * offset 4586 + */ + uint8_t unusedOftenChangesDuringFirmwareUpdate[120]; + /** + * need 4 byte alignment + * units: units + * offset 4706 + */ + uint8_t alignmentFill_at_4706[2]; +}; +static_assert(sizeof(engine_configuration_s) == 4708); + +// start of cyl_trim_s +struct cyl_trim_s { + /** + * offset 0 + */ + scaled_channel table[TRIM_SIZE][TRIM_SIZE]; +}; +static_assert(sizeof(cyl_trim_s) == 16); + +// start of blend_table_s +struct blend_table_s { + /** + * offset 0 + */ + scaled_channel table[8][8]; + /** + * units: Load + * offset 128 + */ + uint16_t loadBins[8]; + /** + * units: RPM + * offset 144 + */ + uint16_t rpmBins[8]; + /** + * offset 160 + */ + gppwm_channel_e blendParameter; + /** + * offset 161 + */ + gppwm_channel_e yAxisOverride; + /** + * offset 162 + */ + scaled_channel blendBins[8]; + /** + * units: % + * offset 178 + */ + scaled_channel blendValues[8]; + /** + * need 4 byte alignment + * units: units + * offset 186 + */ + uint8_t alignmentFill_at_186[2]; +}; +static_assert(sizeof(blend_table_s) == 188); + +// start of persistent_config_s +struct persistent_config_s { + /** + * offset 0 + */ + engine_configuration_s engineConfiguration; + /** + * target TPS value, 0 to 100% + * TODO: use int8 data date once we template interpolation method + * units: target TPS position + * offset 4708 + */ + float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; + /** + * PWM bias, 0 to 100% + * units: ETB duty cycle bias + * offset 4740 + */ + float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; + /** + * units: % + * offset 4772 + */ + scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; + /** + * units: Load + * offset 4836 + */ + uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; + /** + * units: RPM + * offset 4844 + */ + scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; + /** + * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM + * units: RPM + * offset 4852 + */ + uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; + /** + * units: ms + * offset 4868 + */ + scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; + /** + * CLT-based target RPM for automatic idle controller + * units: C + * offset 4884 + */ + scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; + /** + * See idleRpmPid + * units: RPM + * offset 4900 + */ + scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; + /** + * CLT-based timing correction + * units: C + * offset 4916 + */ + float cltTimingBins[CLT_TIMING_CURVE_SIZE]; + /** + * units: degree + * offset 4948 + */ + float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; + /** + * units: x + * offset 4980 + */ + float scriptCurve1Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5044 + */ + float scriptCurve1[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5108 + */ + float scriptCurve2Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5172 + */ + float scriptCurve2[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5236 + */ + float scriptCurve3Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5268 + */ + float scriptCurve3[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5300 + */ + float scriptCurve4Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5332 + */ + float scriptCurve4[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5364 + */ + float scriptCurve5Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5396 + */ + float scriptCurve5[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5428 + */ + float scriptCurve6Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5460 + */ + float scriptCurve6[SCRIPT_CURVE_8]; + /** + * units: kPa + * offset 5492 + */ + float baroCorrPressureBins[BARO_CORR_SIZE]; + /** + * units: RPM + * offset 5508 + */ + float baroCorrRpmBins[BARO_CORR_SIZE]; + /** + * units: ratio + * offset 5524 + */ + float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; + /** + * Cranking fuel correction coefficient based on TPS + * units: Ratio + * offset 5588 + */ + float crankingTpsCoef[CRANKING_CURVE_SIZE]; + /** + * units: % + * offset 5620 + */ + float crankingTpsBins[CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: RPM + * offset 5652 + */ + uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: deg + * offset 5660 + */ + scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: RPM + * offset 5668 + */ + scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: % + * offset 5684 + */ + scaled_channel iacCoasting[CLT_CURVE_SIZE]; + /** + * offset 5700 + */ + warning_message_t warning_message; + /** + * units: C + * offset 5820 + */ + float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: Seconds + * offset 5852 + */ + float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: % + * offset 5884 + */ + float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; + /** + * units: Seconds + * offset 5916 + */ + float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; + /** + * offset 5948 + */ + scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: RPM + * offset 6012 + */ + scaled_channel boostRpmBins[BOOST_RPM_COUNT]; + /** + * offset 6020 + */ + scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: % + * offset 6084 + */ + uint8_t boostTpsBins[BOOST_LOAD_COUNT]; + /** + * units: % + * offset 6092 + */ + uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; + /** + * units: % + * offset 6156 + */ + uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; + /** + * units: RPM + * offset 6164 + */ + scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: C + * offset 6172 + */ + float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: % + * offset 6204 + */ + float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: RPM + * offset 6236 + */ + scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: deg + * offset 6244 + */ + float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; + /** + * units: RPM + * offset 6276 + */ + scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; + /** + * units: load + * offset 6280 + */ + uint8_t idleVeLoadBins[IDLE_VE_SIZE]; + /** + * units: % + * offset 6284 + */ + scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; + /** + * offset 6316 + */ + lua_script_t luaScript; + /** + * units: C + * offset 14316 + */ + float cltFuelCorrBins[CLT_CURVE_SIZE]; + /** + * units: ratio + * offset 14380 + */ + float cltFuelCorr[CLT_CURVE_SIZE]; + /** + * units: C + * offset 14444 + */ + float iatFuelCorrBins[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14508 + */ + float iatFuelCorr[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14572 + */ + float crankingFuelCoef[CRANKING_CURVE_SIZE]; + /** + * units: C + * offset 14604 + */ + float crankingFuelBins[CRANKING_CURVE_SIZE]; + /** + * units: ratio + * offset 14636 + */ + float crankingCycleCoef[CRANKING_CURVE_SIZE]; + /** + * units: counter + * offset 14668 + */ + float crankingCycleBins[CRANKING_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: C + * offset 14700 + */ + float cltIdleCorrBins[CLT_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: ratio + * offset 14764 + */ + float cltIdleCorr[CLT_CURVE_SIZE]; + /** + * Also known as MAF transfer function. + * kg/hour value. + * By the way 2.081989116 kg/h = 1 ft3/m + * units: kg/hour + * offset 14828 + */ + float mafDecoding[MAF_DECODING_COUNT]; + /** + * units: V + * offset 14956 + */ + float mafDecodingBins[MAF_DECODING_COUNT]; + /** + * units: deg + * offset 15084 + */ + scaled_channel ignitionIatCorrTable[8][8]; + /** + * units: C + * offset 15148 + */ + int8_t ignitionIatCorrTempBins[8]; + /** + * units: Load + * offset 15156 + */ + scaled_channel ignitionIatCorrLoadBins[8]; + /** + * units: deg + * offset 15164 + */ + int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: Load + * offset 15676 + */ + uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 15708 + */ + uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; + /** + * units: onoff + * offset 15740 + */ + uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; + /** + * units: kPa + * offset 15800 + */ + scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: % TPS + * offset 16312 + */ + scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 16344 + */ + uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 16376 + */ + int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16440 + */ + uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16456 + */ + uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 16472 + */ + int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16536 + */ + uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16552 + */ + uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: deg + * offset 16568 + */ + scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; + /** + * units: Load + * offset 17080 + */ + uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; + /** + * units: RPM + * offset 17112 + */ + uint16_t ignitionRpmBins[IGN_RPM_COUNT]; + /** + * units: % + * offset 17144 + */ + scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: kPa + * offset 17656 + */ + uint16_t veLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 17688 + */ + uint16_t veRpmBins[FUEL_RPM_COUNT]; + /** + * units: lambda + * offset 17720 + */ + scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * offset 17976 + */ + uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 18008 + */ + uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 18040 + */ + float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; + /** + * units: from + * offset 18296 + */ + float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: to + * offset 18328 + */ + float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: value + * offset 18360 + */ + float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18616 + */ + int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18632 + */ + int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18648 + */ + uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18712 + */ + int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18728 + */ + int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18744 + */ + uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18808 + */ + int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18824 + */ + int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18840 + */ + uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; + /** + * units: L + * offset 18920 + */ + int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18936 + */ + int16_t scriptTable4RpmBins[TABLE_4_RPM]; + /** + * offset 18956 + */ + uint16_t ignTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 18964 + */ + uint16_t ignTrimRpmBins[TRIM_SIZE]; + /** + * offset 18972 + */ + cyl_trim_s ignTrims[12]; + /** + * offset 19164 + */ + uint16_t fuelTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 19172 + */ + uint16_t fuelTrimRpmBins[TRIM_SIZE]; + /** + * offset 19180 + */ + cyl_trim_s fuelTrims[12]; + /** + * units: ratio + * offset 19372 + */ + scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; + /** + * units: Airmass + * offset 19388 + */ + scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19396 + */ + uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19404 + */ + uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19412 + */ + uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19420 + */ + uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19428 + */ + uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19436 + */ + uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19444 + */ + uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19452 + */ + uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19460 + */ + uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19468 + */ + uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19476 + */ + uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19484 + */ + uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; + /** + * units: TPS + * offset 19492 + */ + uint8_t tcu_tccTpsBins[8]; + /** + * units: MPH + * offset 19500 + */ + uint8_t tcu_tccLockSpeed[8]; + /** + * units: MPH + * offset 19508 + */ + uint8_t tcu_tccUnlockSpeed[8]; + /** + * units: KPH + * offset 19516 + */ + uint8_t tcu_32SpeedBins[8]; + /** + * units: % + * offset 19524 + */ + uint8_t tcu_32Vals[8]; + /** + * units: % + * offset 19532 + */ + scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; + /** + * units: % + * offset 19568 + */ + uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; + /** + * units: RPM + * offset 19574 + */ + scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; + /** + * units: deg + * offset 19580 + */ + scaled_channel maxKnockRetardTable[6][6]; + /** + * units: % + * offset 19616 + */ + uint8_t maxKnockRetardLoadBins[6]; + /** + * units: RPM + * offset 19622 + */ + scaled_channel maxKnockRetardRpmBins[6]; + /** + * units: deg + * offset 19628 + */ + scaled_channel ALSTimingRetardTable[4][4]; + /** + * units: TPS + * offset 19660 + */ + uint16_t alsIgnRetardLoadBins[4]; + /** + * units: RPM + * offset 19668 + */ + uint16_t alsIgnRetardrpmBins[4]; + /** + * units: percent + * offset 19676 + */ + scaled_channel ALSFuelAdjustment[4][4]; + /** + * units: TPS + * offset 19708 + */ + uint16_t alsFuelAdjustmentLoadBins[4]; + /** + * units: RPM + * offset 19716 + */ + uint16_t alsFuelAdjustmentrpmBins[4]; + /** + * units: ratio + * offset 19724 + */ + scaled_channel ALSIgnSkipTable[4][4]; + /** + * units: TPS + * offset 19756 + */ + uint16_t alsIgnSkipLoadBins[4]; + /** + * units: RPM + * offset 19764 + */ + uint16_t alsIgnSkiprpmBins[4]; + /** + * offset 19772 + */ + blend_table_s ignBlends[IGN_BLEND_COUNT]; + /** + * offset 20524 + */ + blend_table_s veBlends[VE_BLEND_COUNT]; + /** + * units: % + * offset 21276 + */ + scaled_channel throttleEstimateEffectiveAreaBins[12]; + /** + * In units of g/s normalized to choked flow conditions + * units: g/s + * offset 21300 + */ + scaled_channel throttleEstimateEffectiveAreaValues[12]; + /** + * offset 21324 + */ + blend_table_s boostOpenLoopBlends[BOOST_BLEND_COUNT]; + /** + * offset 21700 + */ + blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; + /** + * units: level + * offset 22076 + */ + uint8_t tcu_rangeP[6]; + /** + * units: level + * offset 22082 + */ + uint8_t tcu_rangeR[6]; + /** + * units: level + * offset 22088 + */ + uint8_t tcu_rangeN[6]; + /** + * units: level + * offset 22094 + */ + uint8_t tcu_rangeD[6]; + /** + * units: level + * offset 22100 + */ + uint8_t tcu_rangeM[6]; + /** + * units: level + * offset 22106 + */ + uint8_t tcu_rangeM3[6]; + /** + * units: level + * offset 22112 + */ + uint8_t tcu_rangeM2[6]; + /** + * units: level + * offset 22118 + */ + uint8_t tcu_rangeM1[6]; + /** + * units: level + * offset 22124 + */ + uint8_t tcu_rangePlus[6]; + /** + * units: level + * offset 22130 + */ + uint8_t tcu_rangeMinus[6]; + /** + * units: level + * offset 22136 + */ + uint8_t tcu_rangeLow[6]; + /** + * units: lambda + * offset 22142 + */ + scaled_channel lambdaMaxDeviationTable[4][4]; + /** + * offset 22158 + */ + uint16_t lambdaMaxDeviationLoadBins[4]; + /** + * units: RPM + * offset 22166 + */ + uint16_t lambdaMaxDeviationRpmBins[4]; + /** + * units: % + * offset 22174 + */ + uint8_t injectorStagingTable[INJ_STAGING_COUNT][INJ_STAGING_COUNT]; + /** + * offset 22210 + */ + uint16_t injectorStagingLoadBins[INJ_STAGING_COUNT]; + /** + * units: RPM + * offset 22222 + */ + uint16_t injectorStagingRpmBins[INJ_STAGING_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 22234 + */ + uint8_t alignmentFill_at_22234[2]; +}; +static_assert(sizeof(persistent_config_s) == 22236); + +// end +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:33 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNB1.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNB1.h new file mode 100644 index 0000000000..d07c3b4175 --- /dev/null +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNB1.h @@ -0,0 +1,5637 @@ +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:34 UTC 2024 +// by class com.rusefi.output.CHeaderConsumer +// begin +#pragma once +#include "rusefi_types.h" +// start of stft_cell_cfg_s +struct stft_cell_cfg_s { + /** + * Maximum % that the short term fuel trim can add + * units: % + * offset 0 + */ + int8_t maxAdd; + /** + * Maximum % that the short term fuel trim can remove + * units: % + * offset 1 + */ + int8_t maxRemove; + /** + * 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. + * units: sec + * offset 2 + */ + scaled_channel timeConstant; +}; +static_assert(sizeof(stft_cell_cfg_s) == 4); + +// start of stft_s +struct stft_s { + /** + * Below this RPM, the idle region is active + * units: RPM + * offset 0 + */ + scaled_channel maxIdleRegionRpm; + /** + * Below this engine load, the overrun region is active + * units: load + * offset 1 + */ + uint8_t maxOverrunLoad; + /** + * Above this engine load, the power region is active + * units: load + * offset 2 + */ + uint8_t minPowerLoad; + /** + * 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. + * units: % + * offset 3 + */ + scaled_channel deadband; + /** + * Below this temperature, correction is disabled. + * units: C + * offset 4 + */ + int8_t minClt; + /** + * Below this AFR, correction is paused + * units: afr + * offset 5 + */ + scaled_channel minAfr; + /** + * Above this AFR, correction is paused + * units: afr + * offset 6 + */ + scaled_channel maxAfr; + /** + * Delay after starting the engine before beginning closed loop correction. + * units: seconds + * offset 7 + */ + uint8_t startupDelay; + /** + * offset 8 + */ + stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT]; +}; +static_assert(sizeof(stft_s) == 24); + +// start of pid_s +struct pid_s { + /** + * offset 0 + */ + float pFactor; + /** + * offset 4 + */ + float iFactor; + /** + * offset 8 + */ + float dFactor; + /** + * Linear addition to PID logic + * offset 12 + */ + int16_t offset; + /** + * PID dTime + * units: ms + * offset 14 + */ + int16_t periodMs; + /** + * Output Min Duty Cycle + * offset 16 + */ + int16_t minValue; + /** + * Output Max Duty Cycle + * offset 18 + */ + int16_t maxValue; +}; +static_assert(sizeof(pid_s) == 20); + +// start of cranking_parameters_s +struct cranking_parameters_s { + /** + * 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. + * A reasonable starting point is 60mg per liter per cylinder. + * ex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel. + * units: mg + * offset 0 + */ + 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 + * units: RPM + * offset 4 + */ + int16_t rpm; + /** + * need 4 byte alignment + * units: units + * offset 6 + */ + uint8_t alignmentFill_at_6[2]; +}; +static_assert(sizeof(cranking_parameters_s) == 8); + +// start of gppwm_channel +struct gppwm_channel { + /** + * Select a pin to use for PWM or on-off output. + * offset 0 + */ + output_pin_e pin; + /** + * If an error (with a sensor, etc) is detected, this value is used instead of reading from the table. + * This should be a safe value for whatever hardware is connected to prevent damage. + * units: % + * offset 2 + */ + uint8_t dutyIfError; + /** + * need 4 byte alignment + * units: units + * offset 3 + */ + uint8_t alignmentFill_at_3[1]; + /** + * Select a frequency to run PWM at. + * Set this to 0hz to enable on-off mode. + * units: hz + * offset 4 + */ + uint16_t pwmFrequency; + /** + * Hysteresis: in on-off mode, turn the output on when the table value is above this duty. + * units: % + * offset 6 + */ + uint8_t onAboveDuty; + /** + * Hysteresis: in on-off mode, turn the output off when the table value is below this duty. + * units: % + * offset 7 + */ + uint8_t offBelowDuty; + /** + * Selects the Y axis to use for the table. + * offset 8 + */ + gppwm_channel_e loadAxis; + /** + * Selects the X axis to use for the table. + * offset 9 + */ + gppwm_channel_e rpmAxis; + /** + * units: load + * offset 10 + */ + scaled_channel loadBins[GPPWM_LOAD_COUNT]; + /** + * units: RPM + * offset 26 + */ + int16_t rpmBins[GPPWM_RPM_COUNT]; + /** + * units: duty + * offset 42 + */ + scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 106 + */ + uint8_t alignmentFill_at_106[2]; +}; +static_assert(sizeof(gppwm_channel) == 108); + +// start of air_pressure_sensor_config_s +struct air_pressure_sensor_config_s { + /** + * kPa value at low volts + * units: kpa + * offset 0 + */ + float lowValue; + /** + * kPa value at high volts + * units: kpa + * offset 4 + */ + float highValue; + /** + * offset 8 + */ + air_pressure_sensor_type_e type; + /** + * offset 9 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 10 + */ + uint8_t alignmentFill_at_10[2]; +}; +static_assert(sizeof(air_pressure_sensor_config_s) == 12); + +// start of MAP_sensor_config_s +struct MAP_sensor_config_s { + /** + * offset 0 + */ + float samplingAngleBins[MAP_ANGLE_SIZE]; + /** + * MAP averaging sampling start crank degree angle + * units: deg + * offset 32 + */ + float samplingAngle[MAP_ANGLE_SIZE]; + /** + * offset 64 + */ + float samplingWindowBins[MAP_WINDOW_SIZE]; + /** + * MAP averaging angle crank degree duration + * units: deg + * offset 96 + */ + float samplingWindow[MAP_WINDOW_SIZE]; + /** + * offset 128 + */ + air_pressure_sensor_config_s sensor; +}; +static_assert(sizeof(MAP_sensor_config_s) == 140); + +/** + * @brief Thermistor known values + +*/ +// start of thermistor_conf_s +struct thermistor_conf_s { + /** + * these values are in Celcius + * units: *C + * offset 0 + */ + float tempC_1; + /** + * units: *C + * offset 4 + */ + float tempC_2; + /** + * units: *C + * offset 8 + */ + float tempC_3; + /** + * units: Ohm + * offset 12 + */ + float resistance_1; + /** + * units: Ohm + * offset 16 + */ + float resistance_2; + /** + * units: Ohm + * offset 20 + */ + float resistance_3; + /** + * Pull-up resistor value on your board + * units: Ohm + * offset 24 + */ + float bias_resistor; +}; +static_assert(sizeof(thermistor_conf_s) == 28); + +// start of linear_sensor_s +struct linear_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 1 + */ + uint8_t alignmentFill_at_1[3]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * offset 16 + */ + float value2; +}; +static_assert(sizeof(linear_sensor_s) == 20); + +// start of ThermistorConf +struct ThermistorConf { + /** + * offset 0 + */ + thermistor_conf_s config; + /** + * offset 28 + */ + adc_channel_e adcChannel; + /** + * need 4 byte alignment + * units: units + * offset 29 + */ + uint8_t alignmentFill_at_29[3]; +}; +static_assert(sizeof(ThermistorConf) == 32); + +// start of injector_s +struct injector_s { + /** + * This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute + * By the way, g/s = 0.125997881 * (lb/hr) + * g/s = 0.125997881 * (cc/min)/10.5 + * g/s = 0.0119997981 * cc/min + * units: cm3/min + * offset 0 + */ + float flow; + /** + * units: volts + * offset 4 + */ + float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; + /** + * ms delay between injector open and close dead times + * units: ms + * offset 36 + */ + float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; +}; +static_assert(sizeof(injector_s) == 68); + +// start of trigger_config_s +struct trigger_config_s { + /** + * https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers + * set trigger_type X + * offset 0 + */ + trigger_type_e type; + /** + * units: number + * offset 4 + */ + int customTotalToothCount; + /** + * units: number + * offset 8 + */ + int customSkippedToothCount; +}; +static_assert(sizeof(trigger_config_s) == 12); + +// start of afr_sensor_s +struct afr_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * offset 1 + */ + adc_channel_e hwChannel2; + /** + * need 4 byte alignment + * units: units + * offset 2 + */ + uint8_t alignmentFill_at_2[2]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * units: AFR + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * units: AFR + * offset 16 + */ + float value2; +}; +static_assert(sizeof(afr_sensor_s) == 20); + +// start of idle_hardware_s +struct idle_hardware_s { + /** + * units: Hz + * offset 0 + */ + int solenoidFrequency; + /** + * offset 4 + */ + output_pin_e solenoidPin; + /** + * offset 6 + */ + Gpio stepperDirectionPin; + /** + * offset 8 + */ + Gpio stepperStepPin; + /** + * offset 10 + */ + pin_output_mode_e solenoidPinMode; + /** + * need 4 byte alignment + * units: units + * offset 11 + */ + uint8_t alignmentFill_at_11[1]; +}; +static_assert(sizeof(idle_hardware_s) == 12); + +// start of dc_io +struct dc_io { + /** + * offset 0 + */ + Gpio directionPin1; + /** + * offset 2 + */ + Gpio directionPin2; + /** + * Acts as EN pin in two-wire mode + * offset 4 + */ + Gpio controlPin; + /** + * offset 6 + */ + Gpio disablePin; +}; +static_assert(sizeof(dc_io) == 8); + +// start of vr_threshold_s +struct vr_threshold_s { + /** + * units: rpm + * offset 0 + */ + scaled_channel rpmBins[6]; + /** + * units: volts + * offset 6 + */ + scaled_channel values[6]; + /** + * offset 12 + */ + Gpio pin; + /** + * need 4 byte alignment + * units: units + * offset 14 + */ + uint8_t alignmentFill_at_14[2]; +}; +static_assert(sizeof(vr_threshold_s) == 16); + +// start of engine_configuration_s +struct engine_configuration_s { + /** + * http://rusefi.com/wiki/index.php?title=Manual:Engine_Type + * set engine_type X + * offset 0 + */ + engine_type_e engineType; + /** + * offset 2 + */ + uint16_t startButtonSuppressOnStartUpMs; + /** + * Disable sensor sniffer above this rpm + * units: RPM + * offset 4 + */ + uint16_t sensorSnifferRpmThreshold; + /** + * A secondary Rev limit engaged by the driver to help launch the vehicle faster + * units: rpm + * offset 6 + */ + uint16_t launchRpm; + /** + * set rpm_hard_limit X + * units: rpm + * offset 8 + */ + uint16_t rpmHardLimit; + /** + * Engine sniffer would be disabled above this rpm + * set engineSnifferRpmThreshold X + * units: RPM + * offset 10 + */ + uint16_t engineSnifferRpmThreshold; + /** + * Disable multispark above this engine speed. + * units: rpm + * offset 12 + */ + scaled_channel multisparkMaxRpm; + /** + * Above this RPM, disable AC. Set to 0 to disable check. + * units: rpm + * offset 13 + */ + scaled_channel maxAcRpm; + /** + * Above this TPS, disable AC. Set to 0 to disable check. + * units: % + * offset 14 + */ + uint8_t maxAcTps; + /** + * Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check. + * units: deg C + * offset 15 + */ + uint8_t maxAcClt; + /** + * units: RPM + * offset 16 + */ + uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; + /** + * 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. + * units: deg + * offset 48 + */ + uint8_t multisparkMaxSparkingAngle; + /** + * Configures the maximum number of extra sparks to fire (does not include main spark) + * units: count + * offset 49 + */ + uint8_t multisparkMaxExtraSparkCount; + /** + * need 4 byte alignment + * units: units + * offset 50 + */ + uint8_t alignmentFill_at_50[2]; + /** + * offset 52 + */ + injector_s injector; + /** + * offset 120 + */ + injector_s injectorSecondary; + /** + * Does the vehicle have a turbo or supercharger? + offset 188 bit 0 */ + bool isForcedInduction : 1 {}; + /** + * 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. + offset 188 bit 1 */ + bool useFordRedundantTps : 1 {}; + /** + offset 188 bit 2 */ + bool enableKline : 1 {}; + /** + offset 188 bit 3 */ + bool overrideTriggerGaps : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 4 */ + bool enableFan1WithAc : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 5 */ + bool enableFan2WithAc : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 6 */ + bool disableFan1WhenStopped : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 7 */ + bool disableFan2WhenStopped : 1 {}; + /** + * Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines). + offset 188 bit 8 */ + bool enableTrailingSparks : 1 {}; + /** + * TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. + offset 188 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 188 bit 10 */ + bool isDoubleSolenoidIdle : 1 {}; + /** + offset 188 bit 11 */ + bool useEeprom : 1 {}; + /** + * Switch between Industrial and Cic PID implementation + offset 188 bit 12 */ + bool useCicPidForIdle : 1 {}; + /** + offset 188 bit 13 */ + bool useTLE8888_cranking_hack : 1 {}; + /** + offset 188 bit 14 */ + 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 188 bit 15 */ + bool useSeparateIdleTablesForCrankingTaper : 1 {}; + /** + offset 188 bit 16 */ + bool launchControlEnabled : 1 {}; + /** + * "Detect double trigger edges" + offset 188 bit 17 */ + bool doNotFilterTriggerEdgeNoise : 1 {}; + /** + offset 188 bit 18 */ + bool antiLagEnabled : 1 {}; + /** + * For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table). + offset 188 bit 19 */ + 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 188 bit 20 */ + bool displayLogicLevelsInEngineSniffer : 1 {}; + /** + offset 188 bit 21 */ + bool useTLE8888_stepper : 1 {}; + /** + offset 188 bit 22 */ + bool usescriptTableForCanSniffingFiltering : 1 {}; + /** + * Print incoming and outgoing first bus CAN messages in rusEFI console + offset 188 bit 23 */ + bool verboseCan : 1 {}; + /** + * Experimental setting that will cause a misfire + * DO NOT ENABLE. + offset 188 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 188 bit 25 */ + bool useFordRedundantPps : 1 {}; + /** + offset 188 bit 26 */ + bool cltSensorPulldown : 1 {}; + /** + offset 188 bit 27 */ + bool iatSensorPulldown : 1 {}; + /** + offset 188 bit 28 */ + bool allowIdenticalPps : 1 {}; + /** + offset 188 bit 29 */ + bool overrideVvtTriggerGaps : 1 {}; + /** + * If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages + offset 188 bit 30 */ + bool useSpiImu : 1 {}; + /** + offset 188 bit 31 */ + bool enableStagedInjection : 1 {}; + /** + * Closed throttle, 1 volt = 200 units. + * See also tps1_1AdcChannel + * set tps_min X + * units: ADC + * offset 192 + */ + int16_t tpsMin; + /** + * Full throttle. + * See also tps1_1AdcChannel + * set tps_max X + * units: ADC + * offset 194 + */ + int16_t tpsMax; + /** + * TPS error detection: what throttle % is unrealistically low? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 196 + */ + int16_t tpsErrorDetectionTooLow; + /** + * TPS error detection: what throttle % is unrealistically high? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 198 + */ + int16_t tpsErrorDetectionTooHigh; + /** + * offset 200 + */ + cranking_parameters_s cranking; + /** + * Dwell duration while cranking + * units: ms + * offset 208 + */ + float ignitionDwellForCrankingMs; + /** + * Once engine speed passes this value, start reducing ETB angle. + * units: rpm + * offset 212 + */ + uint16_t etbRevLimitStart; + /** + * 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. + * units: rpm + * offset 214 + */ + uint16_t etbRevLimitRange; + /** + * @see isMapAveragingEnabled + * offset 216 + */ + MAP_sensor_config_s map; + /** + * todo: merge with channel settings, use full-scale Thermistor here! + * offset 356 + */ + ThermistorConf clt; + /** + * offset 388 + */ + ThermistorConf iat; + /** + * units: deg + * offset 420 + */ + int launchTimingRetard; + /** + * value '6' for 8MHz hw osc + * read hip9011 datasheet for details + * todo split into two bit fields + * units: integer + * offset 424 + */ + int hip9011PrescalerAndSDO; + /** + * We calculate knock band based of cylinderBore + * Use this to override - kHz knock band override + * Requires power cycling to effect + * units: kHz + * offset 428 + */ + float knockBandCustom; + /** + * Engine displacement in litres + * units: L + * offset 432 + */ + scaled_channel displacement; + /** + * units: RPM + * offset 434 + */ + uint16_t triggerSimulatorRpm; + /** + * Number of cylinder the engine has. + * offset 436 + */ + uint32_t cylindersCount; + /** + * offset 440 + */ + firing_order_e firingOrder; + /** + * need 4 byte alignment + * units: units + * offset 441 + */ + uint8_t alignmentFill_at_441[1]; + /** + * offset 442 + */ + Gpio communityCommsLedPid; + /** + * Cylinder diameter in mm. + * units: mm + * offset 444 + */ + float cylinderBore; + /** + * This setting controls which fuel quantity control algorithm is used. + * 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 448 + */ + engine_load_mode_e fuelAlgorithm; + /** + * units: % + * offset 449 + */ + uint8_t ALSMaxTPS; + /** + * This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous". + * offset 450 + */ + 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. + * offset 451 + */ + 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 452 + */ + uint16_t boostControlMinRpm; + /** + * Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 454 + */ + uint8_t boostControlMinTps; + /** + * Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 455 + */ + uint8_t boostControlMinMap; + /** + * 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 + * units: deg + * offset 456 + */ + angle_t crankingTimingAngle; + /** + * Single coil = distributor + * 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 460 + */ + ignition_mode_e ignitionMode; + /** + * How many consecutive gap rations have to match expected ranges for sync to happen + * units: count + * offset 461 + */ + int8_t gapTrackingLengthOverride; + /** + * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). + * units: kph + * offset 462 + */ + uint8_t maxIdleVss; + /** + * need 4 byte alignment + * units: units + * offset 463 + */ + uint8_t alignmentFill_at_463[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. + * units: kPa + * offset 464 + */ + 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 466 + */ + timing_mode_e timingMode; + /** + * need 4 byte alignment + * units: units + * offset 467 + */ + uint8_t alignmentFill_at_467[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. + * units: RPM + * offset 468 + */ + angle_t fixedModeTiming; + /** + * Angle between Top Dead Center (TDC) and the first trigger event. + * Positive value in case of synchronization point before TDC and negative in case of synchronization point after TDC + * .Knowing this angle allows us to control timing and other angles in reference to TDC. + * set global_trigger_offset_angle X + * units: deg btdc + * offset 472 + */ + 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. + * units: coef + * offset 476 + */ + 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. + * units: coef + * offset 480 + */ + float vbattDividerCoeff; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 484 + */ + float fanOnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 488 + */ + float fanOffTemperature; + /** + * offset 492 + */ + output_pin_e acrPin; + /** + * need 4 byte alignment + * units: units + * offset 494 + */ + uint8_t alignmentFill_at_494[2]; + /** + * 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. + * units: revs/km + * offset 496 + */ + float driveWheelRevPerKm; + /** + * set can_mode X + * offset 500 + */ + can_nbc_e canNbcType; + /** + * need 4 byte alignment + * units: units + * offset 501 + */ + uint8_t alignmentFill_at_501[3]; + /** + * CANbus thread period in ms + * units: ms + * offset 504 + */ + int canSleepPeriodMs; + /** + * offset 508 + */ + uint8_t camDecoder2jzPrecision; + /** + * offset 509 + */ + uint8_t justATempTest; + /** + * offset 510 + */ + uint8_t unusedHere333; + /** + * offset 511 + */ + uint8_t unusedHere334; + /** + * units: index + * offset 512 + */ + int byFirmwareVersion; + /** + * First throttle body, first sensor. See also pedalPositionAdcChannel + * offset 516 + */ + 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 517 + */ + 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 518 + */ + adc_channel_e fuelLevelSensor; + /** + * Second throttle body position sensor, single channel so far + * set_analog_input_pin tps2 X + * offset 519 + */ + adc_channel_e tps2_1AdcChannel; + /** + * 0.1 is a good default value + * units: x + * offset 520 + */ + float idle_derivativeFilterLoss; + /** + * just a temporary solution + * units: angle + * offset 524 + */ + int trailingSparkAngle; + /** + * offset 528 + */ + trigger_config_s trigger; + /** + * Extra air taper amount + * units: % + * offset 540 + */ + float airByRpmTaper; + /** + * offset 544 + */ + spi_device_e hip9011SpiDevice; + /** + * 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. + * units: % + * offset 545 + */ + uint8_t boostControlSafeDutyCycle; + /** + * offset 546 + */ + adc_channel_e mafAdcChannel; + /** + * offset 547 + */ + uint8_t acrRevolutions; + /** + * offset 548 + */ + float unused4bytesHere; + /** + * units: volts + * offset 552 + */ + float adcVcc; + /** + * units: Deg + * offset 556 + */ + 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 560 + */ + brain_input_pin_e camInputs[CAM_INPUTS_COUNT]; + /** + * offset 568 + */ + 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 588 + */ + adc_channel_e throttlePedalPositionAdcChannel; + /** + * TPS/PPS error threshold + * units: % + * offset 589 + */ + scaled_channel etbSplit; + /** + * offset 590 + */ + Gpio tle6240_cs; + /** + * offset 592 + */ + pin_output_mode_e tle6240_csPinMode; + /** + * offset 593 + */ + pin_output_mode_e mc33810_csPinMode; + /** + * Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata + * offset 594 + */ + switch_input_pin_e throttlePedalUpPin; + /** + * @see hasBaroSensor + * offset 596 + */ + air_pressure_sensor_config_s baroSensor; + /** + * offset 608 + */ + idle_hardware_s idle; + /** + * Value between 0 and 100 used in Manual mode + * units: % + * offset 620 + */ + float manIdlePosition; + /** + * Ignition timing to remove when a knock event occurs. + * units: % + * offset 624 + */ + scaled_channel knockRetardAggression; + /** + * After a knock event, reapply timing at this rate. + * units: deg/s + * offset 625 + */ + 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 626 + */ + engineSyncCam_e engineSyncCam; + /** + * Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response. + * offset 627 + */ + 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. + * units: ratio + * offset 628 + */ + 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. + * units: count + * offset 630 + */ + uint8_t vssToothCount; + /** + * Override the Y axis (load) value used for only the Idle VE table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 631 + */ + ve_override_e idleVeOverrideMode; + /** + * offset 632 + */ + Gpio l9779_cs; + /** + * offset 634 + */ + output_pin_e injectionPins[MAX_CYLINDER_COUNT]; + /** + * offset 658 + */ + output_pin_e ignitionPins[MAX_CYLINDER_COUNT]; + /** + * offset 682 + */ + pin_output_mode_e injectionPinMode; + /** + * offset 683 + */ + pin_output_mode_e ignitionPinMode; + /** + * offset 684 + */ + output_pin_e fuelPumpPin; + /** + * offset 686 + */ + pin_output_mode_e fuelPumpPinMode; + /** + * How many consecutive VVT gap rations have to match expected ranges for sync to happen + * units: count + * offset 687 + */ + int8_t gapVvtTrackingLengthOverride; + /** + * Check engine light, also malfunction indicator light. Always blinks once on boot. + * offset 688 + */ + output_pin_e malfunctionIndicatorPin; + /** + * offset 690 + */ + pin_output_mode_e malfunctionIndicatorPinMode; + /** + * offset 691 + */ + pin_output_mode_e fanPinMode; + /** + * offset 692 + */ + output_pin_e fanPin; + /** + * Some cars have a switch to indicate that clutch pedal is all the way down + * offset 694 + */ + switch_input_pin_e clutchDownPin; + /** + * offset 696 + */ + output_pin_e alternatorControlPin; + /** + * offset 698 + */ + pin_output_mode_e alternatorControlPinMode; + /** + * offset 699 + */ + pin_input_mode_e clutchDownPinMode; + /** + * offset 700 + */ + Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT]; + /** + * offset 708 + */ + pin_output_mode_e electronicThrottlePin1Mode; + /** + * offset 709 + */ + spi_device_e max31855spiDevice; + /** + * offset 710 + */ + Gpio debugTriggerSync; + /** + * Digital Potentiometer is used by stock ECU stimulation code + * offset 712 + */ + spi_device_e digitalPotentiometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 713 + */ + uint8_t alignmentFill_at_713[1]; + /** + * offset 714 + */ + Gpio mc33972_cs; + /** + * offset 716 + */ + pin_output_mode_e mc33972_csPinMode; + /** + * Useful in Research&Development phase + * offset 717 + */ + adc_channel_e auxFastSensor1_adcChannel; + /** + * First throttle body, second sensor. + * offset 718 + */ + adc_channel_e tps1_2AdcChannel; + /** + * Second throttle body, second sensor. + * offset 719 + */ + adc_channel_e tps2_2AdcChannel; + /** + * Electronic throttle pedal position input + * Second channel + * See also tps1_1AdcChannel + * See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage + * offset 720 + */ + adc_channel_e throttlePedalPositionSecondAdcChannel; + /** + * units: % + * offset 721 + */ + uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; + /** + * AFR, WBO, EGO - whatever you like to call it + * offset 729 + */ + ego_sensor_e afr_type; + /** + * offset 730 + */ + Gpio mc33810_cs[C_MC33810_COUNT]; + /** + * 0.1 is a good default value + * units: x + * offset 732 + */ + float idle_antiwindupFreq; + /** + * offset 736 + */ + 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. + * units: us + * offset 740 + */ + uint16_t mc33_t_min_boost; + /** + * offset 742 + */ + pin_output_mode_e hip9011CsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 743 + */ + uint8_t alignmentFill_at_743[1]; + /** + * offset 744 + */ + output_pin_e tachOutputPin; + /** + * offset 746 + */ + pin_output_mode_e tachOutputPinMode; + /** + * need 4 byte alignment + * units: units + * offset 747 + */ + uint8_t alignmentFill_at_747[1]; + /** + * offset 748 + */ + output_pin_e mainRelayPin; + /** + * offset 750 + */ + Gpio sdCardCsPin; + /** + * set_can_tx_pin X + * offset 752 + */ + Gpio canTxPin; + /** + * set_can_rx_pin X + * offset 754 + */ + Gpio canRxPin; + /** + * offset 756 + */ + pin_input_mode_e throttlePedalUpPinMode; + /** + * Additional idle % while A/C is active + * units: % + * offset 757 + */ + uint8_t acIdleExtraOffset; + /** + * Ratio between the wheels and your transmission output. + * units: ratio + * offset 758 + */ + scaled_channel finalGearRatio; + /** + * offset 760 + */ + brain_input_pin_e tcuInputSpeedSensorPin; + /** + * offset 762 + */ + uint8_t tcuInputSpeedSensorTeeth; + /** + * need 4 byte alignment + * units: units + * offset 763 + */ + uint8_t alignmentFill_at_763[1]; + /** + * Voltage when the wastegate is closed. + * You probably don't have one of these! + * units: mv + * offset 764 + */ + uint16_t wastegatePositionMin; + /** + * Voltage when the wastegate is fully open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 766 + */ + uint16_t wastegatePositionMax; + /** + * Voltage when the idle valve is closed. + * You probably don't have one of these! + * units: mv + * offset 768 + */ + uint16_t idlePositionMin; + /** + * Voltage when the idle valve is open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 770 + */ + uint16_t idlePositionMax; + /** + * Secondary TTL channel baud rate + * units: BPs + * offset 772 + */ + uint32_t tunerStudioSerialSpeed; + /** + * Just for reference really, not taken into account by any logic at this point + * units: CR + * offset 776 + */ + 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 780 + */ + Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * units: g/s + * offset 784 + */ + scaled_channel fordInjectorSmallPulseSlope; + /** + * offset 786 + */ + pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * offset 788 + */ + adc_channel_e maf2AdcChannel; + /** + * need 4 byte alignment + * units: units + * offset 789 + */ + uint8_t alignmentFill_at_789[1]; + /** + * On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking. + * offset 790 + */ + output_pin_e o2heaterPin; + /** + * offset 792 + */ + pin_output_mode_e o2heaterPinModeTodO; + /** + * units: RPM + * offset 793 + */ + scaled_channel lambdaProtectionMinRpm; + /** + * units: % + * offset 794 + */ + scaled_channel lambdaProtectionMinLoad; + /** + * need 4 byte alignment + * units: units + * offset 795 + */ + uint8_t alignmentFill_at_795[1]; + /** + offset 796 bit 0 */ + bool is_enabled_spi_1 : 1 {}; + /** + offset 796 bit 1 */ + bool is_enabled_spi_2 : 1 {}; + /** + offset 796 bit 2 */ + bool is_enabled_spi_3 : 1 {}; + /** + * enable sd/disable sd + offset 796 bit 3 */ + bool isSdCardEnabled : 1 {}; + /** + * Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format. + offset 796 bit 4 */ + bool rusefiVerbose29b : 1 {}; + /** + offset 796 bit 5 */ + bool rethrowHardFault : 1 {}; + /** + offset 796 bit 6 */ + bool isHip9011Enabled : 1 {}; + /** + offset 796 bit 7 */ + bool requireFootOnBrakeToCrank : 1 {}; + /** + offset 796 bit 8 */ + bool verboseQuad : 1 {}; + /** + * This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed. + offset 796 bit 9 */ + bool useStepperIdle : 1 {}; + /** + offset 796 bit 10 */ + bool enabledStep1Limiter : 1 {}; + /** + offset 796 bit 11 */ + bool useTpicAdvancedMode : 1 {}; + /** + offset 796 bit 12 */ + bool lambdaProtectionEnable : 1 {}; + /** + offset 796 bit 13 */ + bool verboseTLE8888 : 1 {}; + /** + * CAN broadcast using custom rusEFI protocol + * enable can_broadcast/disable can_broadcast + offset 796 bit 14 */ + bool enableVerboseCanTx : 1 {}; + /** + offset 796 bit 15 */ + bool etb1configured : 1 {}; + /** + offset 796 bit 16 */ + bool etb2configured : 1 {}; + /** + * Useful for individual intakes + offset 796 bit 17 */ + bool measureMapOnlyInOneCylinder : 1 {}; + /** + offset 796 bit 18 */ + 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 796 bit 19 */ + 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 796 bit 20 */ + 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 796 bit 21 */ + bool useIacTableForCoasting : 1 {}; + /** + offset 796 bit 22 */ + bool useNoiselessTriggerDecoder : 1 {}; + /** + offset 796 bit 23 */ + 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 796 bit 24 */ + bool disableEtbWhenEngineStopped : 1 {}; + /** + offset 796 bit 25 */ + 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 796 bit 26 */ + bool pauseEtbControl : 1 {}; + /** + offset 796 bit 27 */ + bool alignEngineSnifferAtTDC : 1 {}; + /** + offset 796 bit 28 */ + bool verboseKLine : 1 {}; + /** + offset 796 bit 29 */ + bool idleIncrementalPidCic : 1 {}; + /** + * AEM X-Series or rusEFI Wideband + offset 796 bit 30 */ + bool enableAemXSeries : 1 {}; + /** + offset 796 bit 31 */ + bool unusedBit_230_31 : 1 {}; + /** + * offset 800 + */ + brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]; + /** + * offset 808 + */ + pin_output_mode_e mainRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 809 + */ + uint8_t alignmentFill_at_809[1]; + /** + * offset 810 + */ + Gpio hip9011CsPin; + /** + * offset 812 + */ + Gpio hip9011IntHoldPin; + /** + * offset 814 + */ + pin_output_mode_e hip9011IntHoldPinMode; + /** + * need 4 byte alignment + * units: units + * offset 815 + */ + uint8_t alignmentFill_at_815[1]; + /** + * offset 816 + */ + uint32_t verboseCanBaseAddress; + /** + * Boost Voltage + * units: v + * offset 820 + */ + uint8_t mc33_hvolt; + /** + * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. + * units: kPa + * offset 821 + */ + uint8_t minimumBoostClosedLoopMap; + /** + * Optional Radiator Fan used with A/C + * offset 822 + */ + output_pin_e acFanPin; + /** + * offset 824 + */ + pin_output_mode_e acFanPinMode; + /** + * offset 825 + */ + spi_device_e l9779spiDevice; + /** + * units: volts + * offset 826 + */ + scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; + /** + * offset 834 + */ + imu_type_e imuType; + /** + * units: multiplier + * offset 835 + */ + scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 843 + */ + uint8_t alignmentFill_at_843[1]; + /** + * units: kg + * offset 844 + */ + uint16_t vehicleWeight; + /** + * How far above idle speed do we consider idling, i.e. coasting detection threshold. + * For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle. + * units: RPM + * offset 846 + */ + int16_t idlePidRpmUpperLimit; + /** + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + * units: ms + * offset 848 + */ + scaled_channel applyNonlinearBelowPulse; + /** + * offset 850 + */ + Gpio lps25BaroSensorScl; + /** + * offset 852 + */ + Gpio lps25BaroSensorSda; + /** + * offset 854 + */ + brain_input_pin_e vehicleSpeedSensorInputPin; + /** + * Some vehicles have a switch to indicate that clutch pedal is all the way up + * offset 856 + */ + switch_input_pin_e clutchUpPin; + /** + * offset 858 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + * offset 859 + */ + pin_input_mode_e clutchUpPinMode; + /** + * offset 860 + */ + Gpio max31855_cs[EGT_CHANNEL_COUNT]; + /** + * Continental/GM flex fuel sensor, 50-150hz type + * offset 876 + */ + brain_input_pin_e flexSensorPin; + /** + * offset 878 + */ + Gpio test557pin; + /** + * offset 880 + */ + pin_output_mode_e stepperDirectionPinMode; + /** + * offset 881 + */ + spi_device_e mc33972spiDevice; + /** + * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 + * units: :1 + * offset 882 + */ + scaled_channel stoichRatioSecondary; + /** + * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. + * units: % + * offset 883 + */ + uint8_t etbMaximumPosition; + /** + * Rate the ECU will log to the SD card, in hz (log lines per second). + * units: hz + * offset 884 + */ + uint16_t sdCardLogFrequency; + /** + * offset 886 + */ + adc_channel_e idlePositionChannel; + /** + * need 4 byte alignment + * units: units + * offset 887 + */ + uint8_t alignmentFill_at_887[1]; + /** + * offset 888 + */ + Gpio debugMapAveraging; + /** + * offset 890 + */ + output_pin_e starterRelayDisablePin; + /** + * On some vehicles we can disable starter once engine is already running + * offset 892 + */ + pin_output_mode_e starterRelayDisablePinMode; + /** + * need 4 byte alignment + * units: units + * offset 893 + */ + uint8_t alignmentFill_at_893[1]; + /** + * Some Subaru and some Mazda use double-solenoid idle air valve + * offset 894 + */ + output_pin_e secondSolenoidPin; + /** + * See also starterControlPin + * offset 896 + */ + switch_input_pin_e startStopButtonPin; + /** + * need 4 byte alignment + * units: units + * offset 898 + */ + uint8_t alignmentFill_at_898[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. + * units: count + * offset 900 + */ + 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%. + * units: % + * offset 904 + */ + int16_t idlePidDeactivationTpsThreshold; + /** + * units: % + * offset 906 + */ + int16_t stepperParkingExtraSteps; + /** + * units: ADC + * offset 908 + */ + uint16_t tps1SecondaryMin; + /** + * units: ADC + * offset 910 + */ + uint16_t tps1SecondaryMax; + /** + * units: rpm + * offset 912 + */ + int16_t antiLagRpmTreshold; + /** + * Maximum time to crank starter when start/stop button is pressed + * units: Seconds + * offset 914 + */ + uint16_t startCrankingDuration; + /** + * This pin is used for debugging - snap a logic analyzer on it and see if it's ever high + * offset 916 + */ + Gpio triggerErrorPin; + /** + * offset 918 + */ + pin_output_mode_e triggerErrorPinMode; + /** + * need 4 byte alignment + * units: units + * offset 919 + */ + uint8_t alignmentFill_at_919[1]; + /** + * offset 920 + */ + output_pin_e acRelayPin; + /** + * units: % + * offset 922 + */ + uint8_t lambdaProtectionMinTps; + /** + * Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed + * units: s + * offset 923 + */ + scaled_channel lambdaProtectionTimeout; + /** + * units: RPM + * offset 924 + */ + scaled_channel lambdaProtectionRestoreRpm; + /** + * offset 925 + */ + pin_output_mode_e acRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 926 + */ + uint8_t alignmentFill_at_926[2]; + /** + * offset 928 + */ + script_setting_t scriptSetting[SCRIPT_SETTING_COUNT]; + /** + * offset 960 + */ + Gpio spi1mosiPin; + /** + * offset 962 + */ + Gpio spi1misoPin; + /** + * offset 964 + */ + Gpio spi1sckPin; + /** + * offset 966 + */ + Gpio spi2mosiPin; + /** + * offset 968 + */ + Gpio spi2misoPin; + /** + * offset 970 + */ + Gpio spi2sckPin; + /** + * offset 972 + */ + Gpio spi3mosiPin; + /** + * offset 974 + */ + Gpio spi3misoPin; + /** + * offset 976 + */ + Gpio spi3sckPin; + /** + * Saab Combustion Detection Module knock signal input pin + * also known as Saab Ion Sensing Module + * offset 978 + */ + Gpio cdmInputPin; + /** + * offset 980 + */ + uart_device_e consoleUartDevice; + /** + * rusEFI console Sensor Sniffer mode + * offset 981 + */ + sensor_chart_e sensorChartMode; + /** + * offset 982 + */ + maf_sensor_type_e mafSensorType; + /** + * need 4 byte alignment + * units: units + * offset 983 + */ + uint8_t alignmentFill_at_983[1]; + /** + offset 984 bit 0 */ + bool clutchUpPinInverted : 1 {}; + /** + offset 984 bit 1 */ + bool clutchDownPinInverted : 1 {}; + /** + * If enabled we use two H-bridges to drive stepper idle air valve + offset 984 bit 2 */ + bool useHbridgesToDriveIdleStepper : 1 {}; + /** + offset 984 bit 3 */ + bool multisparkEnable : 1 {}; + /** + offset 984 bit 4 */ + bool enableLaunchRetard : 1 {}; + /** + offset 984 bit 5 */ + bool canInputBCM : 1 {}; + /** + * This property is useful if using rusEFI as TCM or BCM only + offset 984 bit 6 */ + bool consumeObdSensors : 1 {}; + /** + * Read VSS from OEM CAN bus according to selected CAN vehicle configuration. + offset 984 bit 7 */ + bool enableCanVss : 1 {}; + /** + offset 984 bit 8 */ + bool enableInnovateLC2 : 1 {}; + /** + offset 984 bit 9 */ + 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. + offset 984 bit 10 */ + bool stftIgnoreErrorMagnitude : 1 {}; + /** + offset 984 bit 11 */ + bool vvtBooleanForVerySpecialCases : 1 {}; + /** + offset 984 bit 12 */ + bool enableSoftwareKnock : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable vvt_details + offset 984 bit 13 */ + bool verboseVVTDecoding : 1 {}; + /** + * get invertCamVVTSignal + offset 984 bit 14 */ + bool invertCamVVTSignal : 1 {}; + /** + * In Alpha-N mode, compensate for air temperature. + offset 984 bit 15 */ + bool alphaNUseIat : 1 {}; + /** + offset 984 bit 16 */ + bool knockBankCyl1 : 1 {}; + /** + offset 984 bit 17 */ + bool knockBankCyl2 : 1 {}; + /** + offset 984 bit 18 */ + bool knockBankCyl3 : 1 {}; + /** + offset 984 bit 19 */ + bool knockBankCyl4 : 1 {}; + /** + offset 984 bit 20 */ + bool knockBankCyl5 : 1 {}; + /** + offset 984 bit 21 */ + bool knockBankCyl6 : 1 {}; + /** + offset 984 bit 22 */ + bool knockBankCyl7 : 1 {}; + /** + offset 984 bit 23 */ + bool knockBankCyl8 : 1 {}; + /** + offset 984 bit 24 */ + bool knockBankCyl9 : 1 {}; + /** + offset 984 bit 25 */ + bool knockBankCyl10 : 1 {}; + /** + offset 984 bit 26 */ + bool knockBankCyl11 : 1 {}; + /** + offset 984 bit 27 */ + bool knockBankCyl12 : 1 {}; + /** + offset 984 bit 28 */ + bool tcuEnabled : 1 {}; + /** + offset 984 bit 29 */ + bool canBroadcastUseChannelTwo : 1 {}; + /** + * If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils + offset 984 bit 30 */ + bool useRawOutputToDriveIdleStepper : 1 {}; + /** + * Print incoming and outgoing second bus CAN messages in rusEFI console + offset 984 bit 31 */ + bool verboseCan2 : 1 {}; + /** + * offset 988 + */ + dc_io etbIo[ETB_COUNT]; + /** + * Wastegate control Solenoid + * offset 1004 + */ + output_pin_e boostControlPin; + /** + * offset 1006 + */ + pin_output_mode_e boostControlPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1007 + */ + uint8_t alignmentFill_at_1007[1]; + /** + * offset 1008 + */ + switch_input_pin_e ALSActivatePin; + /** + * offset 1010 + */ + switch_input_pin_e launchActivatePin; + /** + * offset 1012 + */ + pid_s boostPid; + /** + * offset 1032 + */ + boostType_e boostType; + /** + * offset 1033 + */ + pin_input_mode_e ignitionKeyDigitalPinMode; + /** + * offset 1034 + */ + Gpio ignitionKeyDigitalPin; + /** + * units: Hz + * offset 1036 + */ + int boostPwmFrequency; + /** + * offset 1040 + */ + launchActivationMode_e launchActivationMode; + /** + * offset 1041 + */ + antiLagActivationMode_e antiLagActivationMode; + /** + * need 4 byte alignment + * units: units + * offset 1042 + */ + uint8_t alignmentFill_at_1042[2]; + /** + * Launch disabled above this speed if setting is above zero + * units: Kph + * offset 1044 + */ + int launchSpeedThreshold; + /** + * Range from Launch RPM for Timing Retard to activate + * units: RPM + * offset 1048 + */ + int launchTimingRpmRange; + /** + * Spark Skip Transition Target + * units: % + * offset 1052 + */ + int launchSparkSkipPercent; + /** + * Duty Cycle for the Boost Solenoid + * units: % + * offset 1056 + */ + int launchBoostDuty; + /** + * Range from Launch RPM to activate Hard Cut + * units: RPM + * offset 1060 + */ + int hardCutRpmRange; + /** + * offset 1064 + */ + float turbochargerFilter; + /** + * offset 1068 + */ + int launchTpsThreshold; + /** + * offset 1072 + */ + float launchActivateDelay; + /** + * offset 1076 + */ + stft_s stft; + /** + * offset 1100 + */ + dc_io stepperDcIo[DC_PER_STEPPER]; + /** + * For example, BMW, GM or Chevrolet + * REQUIRED for rusEFI Online + * offset 1116 + */ + vehicle_info_t engineMake; + /** + * For example, LS1 or NB2 + * REQUIRED for rusEFI Online + * offset 1148 + */ + vehicle_info_t engineCode; + /** + * For example, Hunchback or Orange Miata + * Vehicle name has to be unique between your vehicles. + * REQUIRED for rusEFI Online + * offset 1180 + */ + vehicle_info_t vehicleName; + /** + * offset 1212 + */ + output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT]; + /** + * offset 1224 + */ + dc_function_e etbFunctions[ETB_COUNT]; + /** + * offset 1226 + */ + spi_device_e drv8860spiDevice; + /** + * need 4 byte alignment + * units: units + * offset 1227 + */ + uint8_t alignmentFill_at_1227[1]; + /** + * offset 1228 + */ + Gpio drv8860_cs; + /** + * offset 1230 + */ + pin_output_mode_e drv8860_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1231 + */ + uint8_t alignmentFill_at_1231[1]; + /** + * offset 1232 + */ + Gpio drv8860_miso; + /** + * units: volt + * offset 1234 + */ + scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; + /** + * offset 1250 + */ + output_pin_e luaOutputPins[LUA_PWM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 1266 + */ + uint8_t alignmentFill_at_1266[2]; + /** + * Angle between cam sensor and VVT zero position + * set vvt_offset X + * units: value + * offset 1268 + */ + float vvtOffsets[CAM_INPUTS_COUNT]; + /** + * offset 1284 + */ + vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT]; + /** + * offset 1316 + */ + gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; + /** + * units: ADC + * offset 1380 + */ + uint16_t tps2SecondaryMin; + /** + * units: ADC + * offset 1382 + */ + uint16_t tps2SecondaryMax; + /** + * Select which bus the wideband controller is attached to. + offset 1384 bit 0 */ + bool widebandOnSecondBus : 1 {}; + /** + * Enables lambda sensor closed loop feedback for fuelling. + offset 1384 bit 1 */ + bool fuelClosedLoopCorrectionEnabled : 1 {}; + /** + * On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines. + offset 1384 bit 2 */ + bool oddFireEngine : 1 {}; + /** + offset 1384 bit 3 */ + bool boardUseTachPullUp : 1 {}; + /** + offset 1384 bit 4 */ + bool boardUseTempPullUp : 1 {}; + /** + offset 1384 bit 5 */ + bool yesUnderstandLocking : 1 {}; + /** + * Sometimes we have a performance issue while printing error + offset 1384 bit 6 */ + bool silentTriggerError : 1 {}; + /** + offset 1384 bit 7 */ + bool useLinearCltSensor : 1 {}; + /** + * enable can_read/disable can_read + offset 1384 bit 8 */ + bool canReadEnabled : 1 {}; + /** + * enable can_write/disable can_write. See also can1ListenMode + offset 1384 bit 9 */ + bool canWriteEnabled : 1 {}; + /** + offset 1384 bit 10 */ + bool useLinearIatSensor : 1 {}; + /** + offset 1384 bit 11 */ + bool boardUse2stepPullDown : 1 {}; + /** + * Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50% + offset 1384 bit 12 */ + bool tachPulseDurationAsDutyCycle : 1 {}; + /** + * This enables smart alternator control and activates the extra alternator settings. + offset 1384 bit 13 */ + bool isAlternatorControlEnabled : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the primary engine speed sensor. + offset 1384 bit 14 */ + bool invertPrimaryTriggerSignal : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the secondary engine speed sensor. + offset 1384 bit 15 */ + bool invertSecondaryTriggerSignal : 1 {}; + /** + offset 1384 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 1384 bit 17 */ + bool cutSparkOnHardLimit : 1 {}; + /** + offset 1384 bit 18 */ + bool launchFuelCutEnable : 1 {}; + /** + * This is the Cut Mode normally used + offset 1384 bit 19 */ + bool launchSparkCutEnable : 1 {}; + /** + offset 1384 bit 20 */ + bool boardUseCrankPullUp : 1 {}; + /** + offset 1384 bit 21 */ + bool boardUseCamPullDown : 1 {}; + /** + offset 1384 bit 22 */ + bool boardUseCamVrPullUp : 1 {}; + /** + offset 1384 bit 23 */ + bool boardUseD2PullDown : 1 {}; + /** + offset 1384 bit 24 */ + bool boardUseD3PullDown : 1 {}; + /** + offset 1384 bit 25 */ + bool boardUseD4PullDown : 1 {}; + /** + offset 1384 bit 26 */ + bool boardUseD5PullDown : 1 {}; + /** + * Are you a developer troubleshooting TS over CAN ISO/TP? + offset 1384 bit 27 */ + bool verboseIsoTp : 1 {}; + /** + offset 1384 bit 28 */ + bool engineSnifferFocusOnInputs : 1 {}; + /** + offset 1384 bit 29 */ + bool launchActivateInverted : 1 {}; + /** + offset 1384 bit 30 */ + bool twoStroke : 1 {}; + /** + * Where is your primary skipped wheel located? + offset 1384 bit 31 */ + bool skippedWheelOnCam : 1 {}; + /** + * offset 1388 + */ + adc_channel_e hipOutputChannel; + /** + * need 4 byte alignment + * units: units + * offset 1389 + */ + uint8_t alignmentFill_at_1389[1]; + /** + * A/C button input + * offset 1390 + */ + switch_input_pin_e acSwitch; + /** + * offset 1392 + */ + adc_channel_e vRefAdcChannel; + /** + * Expected neutral position + * units: % + * offset 1393 + */ + uint8_t etbNeutralPosition; + /** + * See also idleRpmPid + * offset 1394 + */ + idle_mode_e idleMode; + /** + * need 4 byte alignment + * units: units + * offset 1395 + */ + uint8_t alignmentFill_at_1395[1]; + /** + offset 1396 bit 0 */ + bool isInjectionEnabled : 1 {}; + /** + offset 1396 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 1396 bit 2 */ + bool isCylinderCleanupEnabled : 1 {}; + /** + * Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values? + offset 1396 bit 3 */ + bool complexWallModel : 1 {}; + /** + * RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution + offset 1396 bit 4 */ + bool alwaysInstantRpm : 1 {}; + /** + offset 1396 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 1396 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 1396 bit 7 */ + bool useSeparateAdvanceForIdle : 1 {}; + /** + offset 1396 bit 8 */ + bool isWaveAnalyzerEnabled : 1 {}; + /** + * This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling. + offset 1396 bit 9 */ + bool useSeparateVeForIdle : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable trigger_details + offset 1396 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 1396 bit 11 */ + bool isManualSpinningMode : 1 {}; + /** + offset 1396 bit 12 */ + bool cutFuelInAcr : 1 {}; + /** + offset 1396 bit 13 */ + bool hondaK : 1 {}; + /** + * This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark). + offset 1396 bit 14 */ + bool twoWireBatchIgnition : 1 {}; + /** + offset 1396 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 1396 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 1396 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 1396 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 1396 bit 19 */ + bool useIacPidMultTable : 1 {}; + /** + offset 1396 bit 20 */ + bool isBoostControlEnabled : 1 {}; + /** + * Interpolates the Ignition Retard from 0 to 100% within the RPM Range + offset 1396 bit 21 */ + bool launchSmoothRetard : 1 {}; + /** + * Some engines are OK running semi-random sequential while other engine require phase synchronization + offset 1396 bit 22 */ + bool isPhaseSyncRequiredForIgnition : 1 {}; + /** + * If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value. + offset 1396 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 1396 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 1396 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 1396 bit 26 */ + bool invertVvtControlExhaust : 1 {}; + /** + offset 1396 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 1396 bit 28 */ + bool sdTriggerLog : 1 {}; + /** + offset 1396 bit 29 */ + bool ALSActivateInverted : 1 {}; + /** + offset 1396 bit 30 */ + bool stepper_dc_use_two_wires : 1 {}; + /** + offset 1396 bit 31 */ + bool watchOutForLinearTime : 1 {}; + /** + * units: count + * offset 1400 + */ + uint32_t engineChartSize; + /** + * units: mult + * offset 1404 + */ + float turboSpeedSensorMultiplier; + /** + * offset 1408 + */ + Gpio camInputsDebug[CAM_INPUTS_COUNT]; + /** + * Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling. + * units: RPM + * offset 1416 + */ + int16_t acIdleRpmTarget; + /** + * set warningPeriod X + * units: seconds + * offset 1418 + */ + int16_t warningPeriod; + /** + * units: angle + * offset 1420 + */ + float knockDetectionWindowStart; + /** + * units: angle + * offset 1424 + */ + float knockDetectionWindowEnd; + /** + * units: ms + * offset 1428 + */ + float idleStepperReactionTime; + /** + * units: count + * offset 1432 + */ + int idleStepperTotalSteps; + /** + * TODO: finish this #413 + * units: sec + * offset 1436 + */ + 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. + * units: index + * offset 1440 + */ + int mapAveragingSchedulingAtIndex; + /** + * Duration in ms or duty cycle depending on selected mode + * offset 1444 + */ + float tachPulseDuractionMs; + /** + * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. + * units: Seconds + * offset 1448 + */ + float wwaeTau; + /** + * offset 1452 + */ + pid_s alternatorControl; + /** + * offset 1472 + */ + pid_s etb; + /** + * offset 1492 + */ + Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; + /** + * RPM range above upper limit for extra air taper + * units: RPM + * offset 1496 + */ + int16_t airTaperRpmRange; + /** + * offset 1498 + */ + brain_input_pin_e turboSpeedSensorInputPin; + /** + * Closed throttle#2. todo: extract these two fields into a structure + * See also tps2_1AdcChannel + * set tps2_min X + * units: ADC + * offset 1500 + */ + int16_t tps2Min; + /** + * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! + * See also tps1_1AdcChannel + * set tps2_max X + * units: ADC + * offset 1502 + */ + int16_t tps2Max; + /** + * See also startStopButtonPin + * offset 1504 + */ + output_pin_e starterControlPin; + /** + * offset 1506 + */ + pin_input_mode_e startStopButtonMode; + /** + * need 4 byte alignment + * units: units + * offset 1507 + */ + uint8_t alignmentFill_at_1507[1]; + /** + * offset 1508 + */ + Gpio mc33816_flag0; + /** + * units: Pulse + * offset 1510 + */ + uint8_t tachPulsePerRev; + /** + * need 4 byte alignment + * units: units + * offset 1511 + */ + uint8_t alignmentFill_at_1511[1]; + /** + * kPa value which is too low to be true + * units: kPa + * offset 1512 + */ + float mapErrorDetectionTooLow; + /** + * kPa value which is too high to be true + * units: kPa + * offset 1516 + */ + float mapErrorDetectionTooHigh; + /** + * How long to wait for the spark to fire before recharging the coil for another spark. + * units: ms + * offset 1520 + */ + scaled_channel multisparkSparkDuration; + /** + * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. + * units: ms + * offset 1522 + */ + scaled_channel multisparkDwell; + /** + * See cltIdleRpmBins + * offset 1524 + */ + 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. + * units: Fraction + * offset 1544 + */ + float wwaeBeta; + /** + * See also EFI_CONSOLE_RX_BRAIN_PIN + * offset 1548 + */ + Gpio binarySerialTxPin; + /** + * offset 1550 + */ + Gpio binarySerialRxPin; + /** + * offset 1552 + */ + Gpio auxValves[AUX_DIGITAL_VALVE_COUNT]; + /** + * offset 1556 + */ + switch_input_pin_e tcuUpshiftButtonPin; + /** + * offset 1558 + */ + switch_input_pin_e tcuDownshiftButtonPin; + /** + * units: voltage + * offset 1560 + */ + float throttlePedalUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1564 + */ + float throttlePedalWOTVoltage; + /** + * on IGN voltage detection turn fuel pump on to build fuel pressure + * units: seconds + * offset 1568 + */ + int16_t startUpFuelPumpDuration; + /** + * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation + * units: RPM + * offset 1570 + */ + int16_t idlePidRpmDeadZone; + /** + * This is the target battery voltage the alternator PID control will attempt to maintain + * units: Volts + * offset 1572 + */ + float targetVBatt; + /** + * See Over/Undervoltage Shutdown/Retry bit in documentation + offset 1576 bit 0 */ + bool mc33810DisableRecoveryMode : 1 {}; + /** + offset 1576 bit 1 */ + bool mc33810Gpgd0Mode : 1 {}; + /** + offset 1576 bit 2 */ + bool mc33810Gpgd1Mode : 1 {}; + /** + offset 1576 bit 3 */ + bool mc33810Gpgd2Mode : 1 {}; + /** + offset 1576 bit 4 */ + bool mc33810Gpgd3Mode : 1 {}; + /** + offset 1576 bit 5 */ + bool enableExtendedCanBroadcast : 1 {}; + /** + offset 1576 bit 6 */ + bool luaCanRxWorkaround : 1 {}; + /** + offset 1576 bit 7 */ + bool flexSensorInverted : 1 {}; + /** + offset 1576 bit 8 */ + bool useHardSkipInTraction : 1 {}; + /** + offset 1576 bit 9 */ + bool unusedBit_495_9 : 1 {}; + /** + offset 1576 bit 10 */ + bool unusedBit_495_10 : 1 {}; + /** + offset 1576 bit 11 */ + bool useAuxSpeedForSlipRatio : 1 {}; + /** + * VSS and auxSpeed1 or auxSpeed1 with auxSpeed2? + offset 1576 bit 12 */ + bool useVssAsSecondWheelSpeed : 1 {}; + /** + offset 1576 bit 13 */ + bool is_enabled_spi_5 : 1 {}; + /** + offset 1576 bit 14 */ + bool is_enabled_spi_6 : 1 {}; + /** + offset 1576 bit 15 */ + bool unusedBit_503_15 : 1 {}; + /** + offset 1576 bit 16 */ + bool unusedBit_503_16 : 1 {}; + /** + offset 1576 bit 17 */ + bool unusedBit_503_17 : 1 {}; + /** + offset 1576 bit 18 */ + bool unusedBit_511_18 : 1 {}; + /** + offset 1576 bit 19 */ + bool unusedBit_511_19 : 1 {}; + /** + offset 1576 bit 20 */ + bool unusedBit_511_20 : 1 {}; + /** + offset 1576 bit 21 */ + bool unusedBit_511_21 : 1 {}; + /** + offset 1576 bit 22 */ + bool unusedBit_511_22 : 1 {}; + /** + offset 1576 bit 23 */ + bool unusedBit_511_23 : 1 {}; + /** + offset 1576 bit 24 */ + bool unusedBit_511_24 : 1 {}; + /** + offset 1576 bit 25 */ + bool unusedBit_511_25 : 1 {}; + /** + offset 1576 bit 26 */ + bool unusedBit_511_26 : 1 {}; + /** + offset 1576 bit 27 */ + bool unusedBit_511_27 : 1 {}; + /** + offset 1576 bit 28 */ + bool unusedBit_511_28 : 1 {}; + /** + offset 1576 bit 29 */ + bool unusedBit_511_29 : 1 {}; + /** + offset 1576 bit 30 */ + bool unusedBit_511_30 : 1 {}; + /** + offset 1576 bit 31 */ + bool unusedBit_511_31 : 1 {}; + /** + * 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. + * units: cycles + * offset 1580 + */ + int16_t afterCrankingIACtaperDuration; + /** + * IAC Value added when coasting and transitioning into idle. + * units: percent + * offset 1582 + */ + int16_t iacByTpsTaper; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1584 + */ + Gpio auxSerialTxPin; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1586 + */ + Gpio auxSerialRxPin; + /** + * offset 1588 + */ + Gpio accelerometerCsPin; + /** + * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. + * units: sec + * offset 1590 + */ + scaled_channel tpsAccelLookback; + /** + * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1591 + */ + uint8_t coastingFuelCutVssLow; + /** + * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1592 + */ + 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. + * units: sec + * offset 1593 + */ + scaled_channel noFuelTrimAfterDfcoTime; + /** + * need 4 byte alignment + * units: units + * offset 1594 + */ + uint8_t alignmentFill_at_1594[2]; + /** + * 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. + * units: roc + * offset 1596 + */ + float tpsAccelEnrichmentThreshold; + /** + * offset 1600 + */ + brain_input_pin_e auxSpeedSensorInputPin[AUX_SPEED_SENSOR_COUNT]; + /** + * offset 1604 + */ + uint8_t totalGearsCount; + /** + * Sets what part of injection's is controlled by the injection phase table. + * offset 1605 + */ + InjectionTimingMode injectionTimingMode; + /** + * See http://rusefi.com/s/debugmode + * offset 1606 + */ + debug_mode_e debugMode; + /** + * Additional idle % when fan #1 is active + * units: % + * offset 1607 + */ + uint8_t fan1ExtraIdle; + /** + * Band rate for primary TTL + * units: BPs + * offset 1608 + */ + uint32_t uartConsoleSerialSpeed; + /** + * For decel we simply multiply delta of TPS and tFor decel we do not use table?! + * units: roc + * offset 1612 + */ + float tpsDecelEnleanmentThreshold; + /** + * Magic multiplier, we multiply delta of TPS and get fuel squirt duration + * units: coeff + * offset 1616 + */ + float tpsDecelEnleanmentMultiplier; + /** + * units: BPs + * offset 1620 + */ + uint32_t auxSerialSpeed; + /** + * units: voltage + * offset 1624 + */ + float throttlePedalSecondaryUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1628 + */ + float throttlePedalSecondaryWOTVoltage; + /** + * set can_baudrate + * offset 1632 + */ + 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 1633 + */ + ve_override_e veOverrideMode; + /** + * offset 1634 + */ + 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 1635 + */ + load_override_e afrOverrideMode; + /** + * units: A + * offset 1636 + */ + scaled_channel mc33_hpfp_i_peak; + /** + * units: A + * offset 1637 + */ + scaled_channel mc33_hpfp_i_hold; + /** + * How long to deactivate power when hold current is reached before applying power again + * units: us + * offset 1638 + */ + uint8_t mc33_hpfp_i_hold_off; + /** + * Maximum amount of time the solenoid can be active before assuming a programming error + * units: ms + * offset 1639 + */ + uint8_t mc33_hpfp_max_hold; + /** + * Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards) + offset 1640 bit 0 */ + bool stepperDcInvertedPins : 1 {}; + /** + * Allow OpenBLT on Primary CAN + offset 1640 bit 1 */ + bool canOpenBLT : 1 {}; + /** + * Allow OpenBLT on Secondary CAN + offset 1640 bit 2 */ + bool can2OpenBLT : 1 {}; + /** + * Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s). + offset 1640 bit 3 */ + bool injectorFlowAsMassFlow : 1 {}; + /** + offset 1640 bit 4 */ + bool boardUseCanTerminator : 1 {}; + /** + offset 1640 bit 5 */ + bool kLineDoHondaSend : 1 {}; + /** + * ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled + offset 1640 bit 6 */ + bool can1ListenMode : 1 {}; + /** + offset 1640 bit 7 */ + bool can2ListenMode : 1 {}; + /** + offset 1640 bit 8 */ + bool unusedBit_563_8 : 1 {}; + /** + offset 1640 bit 9 */ + bool unusedBit_563_9 : 1 {}; + /** + offset 1640 bit 10 */ + bool unusedBit_563_10 : 1 {}; + /** + offset 1640 bit 11 */ + bool unusedBit_563_11 : 1 {}; + /** + offset 1640 bit 12 */ + bool unusedBit_563_12 : 1 {}; + /** + offset 1640 bit 13 */ + bool unusedBit_563_13 : 1 {}; + /** + offset 1640 bit 14 */ + bool unusedBit_563_14 : 1 {}; + /** + offset 1640 bit 15 */ + bool unusedBit_563_15 : 1 {}; + /** + offset 1640 bit 16 */ + bool unusedBit_563_16 : 1 {}; + /** + offset 1640 bit 17 */ + bool unusedBit_563_17 : 1 {}; + /** + offset 1640 bit 18 */ + bool unusedBit_563_18 : 1 {}; + /** + offset 1640 bit 19 */ + bool unusedBit_563_19 : 1 {}; + /** + offset 1640 bit 20 */ + bool unusedBit_563_20 : 1 {}; + /** + offset 1640 bit 21 */ + bool unusedBit_563_21 : 1 {}; + /** + offset 1640 bit 22 */ + bool unusedBit_563_22 : 1 {}; + /** + offset 1640 bit 23 */ + bool unusedBit_563_23 : 1 {}; + /** + offset 1640 bit 24 */ + bool unusedBit_563_24 : 1 {}; + /** + offset 1640 bit 25 */ + bool unusedBit_563_25 : 1 {}; + /** + offset 1640 bit 26 */ + bool unusedBit_563_26 : 1 {}; + /** + offset 1640 bit 27 */ + bool unusedBit_563_27 : 1 {}; + /** + offset 1640 bit 28 */ + bool unusedBit_563_28 : 1 {}; + /** + offset 1640 bit 29 */ + bool unusedBit_563_29 : 1 {}; + /** + offset 1640 bit 30 */ + bool unusedBit_563_30 : 1 {}; + /** + offset 1640 bit 31 */ + bool unusedBit_563_31 : 1 {}; + /** + * offset 1644 + */ + uint8_t camDecoder2jzPosition; + /** + * offset 1645 + */ + mc33810maxDwellTimer_e mc33810maxDwellTimer; + /** + * Duration of each test pulse + * units: ms + * offset 1646 + */ + scaled_channel benchTestOnTime; + /** + * units: % + * offset 1648 + */ + uint8_t lambdaProtectionRestoreTps; + /** + * units: % + * offset 1649 + */ + scaled_channel lambdaProtectionRestoreLoad; + /** + * offset 1650 + */ + pin_input_mode_e launchActivatePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1651 + */ + uint8_t alignmentFill_at_1651[1]; + /** + * set_can2_tx_pin X + * offset 1652 + */ + Gpio can2TxPin; + /** + * set_can2_rx_pin X + * offset 1654 + */ + Gpio can2RxPin; + /** + * offset 1656 + */ + pin_output_mode_e starterControlPinMode; + /** + * offset 1657 + */ + 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 1658 + */ + load_override_e ignOverrideMode; + /** + * Select which fuel pressure sensor measures the pressure of the fuel at your injectors. + * offset 1659 + */ + injector_pressure_type_e injectorPressureType; + /** + * offset 1660 + */ + output_pin_e hpfpValvePin; + /** + * offset 1662 + */ + pin_output_mode_e hpfpValvePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1663 + */ + uint8_t alignmentFill_at_1663[1]; + /** + * MAP value above which fuel is cut in case of overboost. + * Set to 0 to disable overboost cut. + * units: kPa (absolute) + * offset 1664 + */ + float boostCutPressure; + /** + * units: kg/h + * offset 1668 + */ + scaled_channel tchargeBins[16]; + /** + * units: ratio + * offset 1684 + */ + scaled_channel tchargeValues[16]; + /** + * Fixed timing, useful for TDC testing + * units: deg + * offset 1700 + */ + float fixedTiming; + /** + * MAP voltage for low point + * units: v + * offset 1704 + */ + float mapLowValueVoltage; + /** + * MAP voltage for low point + * units: v + * offset 1708 + */ + float mapHighValueVoltage; + /** + * EGO value correction + * units: value + * offset 1712 + */ + float egoValueShift; + /** + * VVT output solenoid pin for this cam + * offset 1716 + */ + output_pin_e vvtPins[CAM_INPUTS_COUNT]; + /** + * offset 1724 + */ + pin_output_mode_e sdCardCsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1725 + */ + uint8_t alignmentFill_at_1725[3]; + /** + * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. + * units: percent + * offset 1728 + */ + int crankingIACposition; + /** + * offset 1732 + */ + float tChargeMinRpmMinTps; + /** + * offset 1736 + */ + float tChargeMinRpmMaxTps; + /** + * offset 1740 + */ + float tChargeMaxRpmMinTps; + /** + * offset 1744 + */ + float tChargeMaxRpmMaxTps; + /** + * offset 1748 + */ + pwm_freq_t vvtOutputFrequency; + /** + * Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint. + * units: deg BTDC + * offset 1750 + */ + int8_t minimumIgnitionTiming; + /** + * Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC + * units: deg BTDC + * offset 1751 + */ + int8_t maximumIgnitionTiming; + /** + * units: Hz + * offset 1752 + */ + int alternatorPwmFrequency; + /** + * set vvt_mode X + * offset 1756 + */ + vvt_mode_e vvtMode[CAMS_PER_BANK]; + /** + * Additional idle % when fan #2 is active + * units: % + * offset 1758 + */ + uint8_t fan2ExtraIdle; + /** + * Delay to allow fuel pressure to build before firing the priming pulse. + * units: sec + * offset 1759 + */ + scaled_channel primingDelay; + /** + * offset 1760 + */ + adc_channel_e auxAnalogInputs[LUA_ANALOG_INPUT_COUNT]; + /** + * offset 1768 + */ + output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT]; + /** + * offset 1792 + */ + tle8888_mode_e tle8888mode; + /** + * offset 1793 + */ + pin_output_mode_e accelerometerCsPinMode; + /** + * 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 1794 + */ + injector_compensation_mode_e injectorCompensationMode; + /** + * offset 1795 + */ + 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. + * units: kPa + * offset 1796 + */ + float fuelReferencePressure; + /** + * units: mult + * offset 1800 + */ + float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; + /** + * units: count + * offset 1944 + */ + float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; + /** + * units: C + * offset 1968 + */ + float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; + /** + * offset 1992 + */ + ThermistorConf auxTempSensor1; + /** + * offset 2024 + */ + ThermistorConf auxTempSensor2; + /** + * units: Deg + * offset 2056 + */ + int16_t knockSamplingDuration; + /** + * units: Hz + * offset 2058 + */ + int16_t etbFreq; + /** + * offset 2060 + */ + pid_s etbWastegatePid; + /** + * For micro-stepping, make sure that PWM frequency (etbFreq) is high enough + * offset 2080 + */ + stepper_num_micro_steps_e stepperNumMicroSteps; + /** + * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) + * units: % + * offset 2081 + */ + uint8_t stepperMinDutyCycle; + /** + * Use to limit the max.current through the stepper motor (100% = no limit) + * units: % + * offset 2082 + */ + uint8_t stepperMaxDutyCycle; + /** + * offset 2083 + */ + spi_device_e sdCardSpiDevice; + /** + * per-cylinder ignition and fueling timing correction for uneven engines + * units: deg + * offset 2084 + */ + angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; + /** + * units: seconds + * offset 2132 + */ + float idlePidActivationTime; + /** + * offset 2136 + */ + pin_mode_e spi1SckMode; + /** + * Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc. + * offset 2137 + */ + pin_mode_e spi1MosiMode; + /** + * offset 2138 + */ + pin_mode_e spi1MisoMode; + /** + * offset 2139 + */ + pin_mode_e spi2SckMode; + /** + * offset 2140 + */ + pin_mode_e spi2MosiMode; + /** + * offset 2141 + */ + pin_mode_e spi2MisoMode; + /** + * offset 2142 + */ + pin_mode_e spi3SckMode; + /** + * offset 2143 + */ + pin_mode_e spi3MosiMode; + /** + * offset 2144 + */ + pin_mode_e spi3MisoMode; + /** + * offset 2145 + */ + pin_output_mode_e stepperEnablePinMode; + /** + * ResetB + * offset 2146 + */ + Gpio mc33816_rstb; + /** + * offset 2148 + */ + Gpio mc33816_driven; + /** + * Brake pedal switch + * offset 2150 + */ + switch_input_pin_e brakePedalPin; + /** + * offset 2152 + */ + pin_input_mode_e brakePedalPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2153 + */ + uint8_t alignmentFill_at_2153[3]; + /** + * VVT output PID + * TODO: rename to vvtPid + * offset 2156 + */ + pid_s auxPid[CAMS_PER_BANK]; + /** + * offset 2196 + */ + float injectorCorrectionPolynomial[8]; + /** + * units: C + * offset 2228 + */ + int8_t primeBins[PRIME_CURVE_COUNT]; + /** + * offset 2236 + */ + linear_sensor_s oilPressure; + /** + * offset 2256 + */ + spi_device_e accelerometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 2257 + */ + uint8_t alignmentFill_at_2257[1]; + /** + * offset 2258 + */ + output_pin_e fan2Pin; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 2260 + */ + uint8_t fan2OnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 2261 + */ + uint8_t fan2OffTemperature; + /** + * offset 2262 + */ + Gpio stepperEnablePin; + /** + * offset 2264 + */ + Gpio tle8888_cs; + /** + * offset 2266 + */ + pin_output_mode_e tle8888_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2267 + */ + uint8_t alignmentFill_at_2267[1]; + /** + * offset 2268 + */ + Gpio mc33816_cs; + /** + * need 4 byte alignment + * units: units + * offset 2270 + */ + uint8_t alignmentFill_at_2270[2]; + /** + * units: hz + * offset 2272 + */ + float auxFrequencyFilter; + /** + * units: RPM + * offset 2276 + */ + int16_t vvtControlMinRpm; + /** + * offset 2278 + */ + sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; + /** + * units: % + * offset 2280 + */ + int8_t launchFuelAdderPercent; + /** + * Time required to detect a stuck throttle. + * units: sec + * offset 2281 + */ + scaled_channel etbJamTimeout; + /** + * By the way ETB PID runs at 500hz, length in 1/500 of second here. + * offset 2282 + */ + uint16_t etbExpAverageLength; + /** + * offset 2284 + */ + float etbDutyThreshold; + /** + * This sets the RPM above which fuel cut is active. + * units: rpm + * offset 2288 + */ + int16_t coastingFuelCutRpmHigh; + /** + * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle + * units: rpm + * offset 2290 + */ + int16_t coastingFuelCutRpmLow; + /** + * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. + * units: % + * offset 2292 + */ + int16_t coastingFuelCutTps; + /** + * Fuel cutoff is disabled when the engine is cold. + * units: C + * offset 2294 + */ + int16_t coastingFuelCutClt; + /** + * Increases PID reaction for RPM stoichRatioPrimary; + /** + * iTerm max value + * offset 2710 + */ + 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. + * units: % + * offset 2712 + */ + float etbIdleThrottleRange; + /** + * Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor + * offset 2716 + */ + uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; + /** + * units: mg + * offset 2728 + */ + scaled_channel primeValues[PRIME_CURVE_COUNT]; + /** + * Trigger comparator center point voltage + * units: V + * offset 2736 + */ + scaled_channel triggerCompCenterVolt; + /** + * Trigger comparator hysteresis voltage (Min) + * units: V + * offset 2737 + */ + scaled_channel triggerCompHystMin; + /** + * Trigger comparator hysteresis voltage (Max) + * units: V + * offset 2738 + */ + scaled_channel triggerCompHystMax; + /** + * VR-sensor saturation RPM + * units: RPM + * offset 2739 + */ + scaled_channel triggerCompSensorSatRpm; + /** + * units: ratio + * offset 2740 + */ + scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: RPM + * offset 2752 + */ + uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 2758 + */ + int8_t disableFan1AtSpeed; + /** + * offset 2759 + */ + int8_t disableFan2AtSpeed; + /** + * offset 2760 + */ + can_vss_nbc_e canVssNbcType; + /** + * need 4 byte alignment + * units: units + * offset 2762 + */ + uint8_t alignmentFill_at_2762[2]; + /** + * offset 2764 + */ + gppwm_channel gppwm[GPPWM_CHANNELS]; + /** + * Boost Current + * units: mA + * offset 3196 + */ + uint16_t mc33_i_boost; + /** + * Peak Current + * units: mA + * offset 3198 + */ + uint16_t mc33_i_peak; + /** + * Hold Current + * units: mA + * offset 3200 + */ + 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. + * units: us + * offset 3202 + */ + uint16_t mc33_t_max_boost; + /** + * units: us + * offset 3204 + */ + uint16_t mc33_t_peak_off; + /** + * Peak phase duration + * units: us + * offset 3206 + */ + uint16_t mc33_t_peak_tot; + /** + * units: us + * offset 3208 + */ + uint16_t mc33_t_bypass; + /** + * units: us + * offset 3210 + */ + uint16_t mc33_t_hold_off; + /** + * Hold phase duration + * units: us + * offset 3212 + */ + uint16_t mc33_t_hold_tot; + /** + * offset 3214 + */ + pin_input_mode_e tcuUpshiftButtonPinMode; + /** + * offset 3215 + */ + pin_input_mode_e tcuDownshiftButtonPinMode; + /** + * offset 3216 + */ + pin_input_mode_e acSwitchMode; + /** + * offset 3217 + */ + pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; + /** + * Knock sensor output knock detection threshold depending on current RPM. + * units: dB + * offset 3223 + */ + scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 3239 + */ + uint8_t alignmentFill_at_3239[1]; + /** + * units: ratio + * offset 3240 + */ + float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; + /** + * units: ratio + * offset 3312 + */ + 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. + * units: rpm + * offset 3384 + */ + 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... + * units: sec + * offset 3385 + */ + 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. + * units: sec + * offset 3386 + */ + scaled_channel acDelay; + /** + * need 4 byte alignment + * units: units + * offset 3387 + */ + uint8_t alignmentFill_at_3387[1]; + /** + * units: mg + * offset 3388 + */ + scaled_channel fordInjectorSmallPulseBreakPoint; + /** + * units: multiplier + * offset 3390 + */ + scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: % + * offset 3394 + */ + uint8_t etbJamIntegratorLimit; + /** + * units: lobes/cam + * offset 3395 + */ + uint8_t hpfpCamLobes; + /** + * offset 3396 + */ + hpfp_cam_e hpfpCam; + /** + * offset 3397 + */ + uint8_t auxiliarySetting1; + /** + * If the requested activation time is below this angle, don't bother running the pump + * units: deg + * offset 3398 + */ + uint8_t hpfpMinAngle; + /** + * need 4 byte alignment + * units: units + * offset 3399 + */ + uint8_t alignmentFill_at_3399[1]; + /** + * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. + * units: cc + * offset 3400 + */ + 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) + * units: deg + * offset 3402 + */ + uint8_t hpfpActivationAngle; + /** + * offset 3403 + */ + uint8_t issFilterReciprocal; + /** + * units: %/kPa + * offset 3404 + */ + scaled_channel hpfpPidP; + /** + * units: %/kPa/lobe + * offset 3406 + */ + 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. + * units: kPa/s + * offset 3408 + */ + uint16_t hpfpTargetDecay; + /** + * units: % + * offset 3410 + */ + scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: deg + * offset 3426 + */ + scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: volts + * offset 3442 + */ + uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; + /** + * units: ms + * offset 3450 + */ + scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; + /** + * units: kPa + * offset 3466 + */ + uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; + /** + * units: load + * offset 3666 + */ + scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; + /** + * units: RPM + * offset 3686 + */ + scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; + /** + * units: % + * offset 3696 + */ + int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; + /** + * units: cc/lobe + * offset 3796 + */ + scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; + /** + * units: RPM + * offset 3816 + */ + scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; + /** + * offset 3826 + */ + output_pin_e stepper_raw_output[4]; + /** + * units: ratio + * offset 3834 + */ + scaled_channel gearRatio[TCU_GEAR_COUNT]; + /** + * We need to give engine time to build oil pressure without diverting it to VVT + * units: ms + * offset 3854 + */ + uint16_t vvtActivationDelayMs; + /** + * units: deg C + * offset 3856 + */ + int8_t wwCltBins[WWAE_TABLE_SIZE]; + /** + * offset 3864 + */ + scaled_channel wwTauCltValues[WWAE_TABLE_SIZE]; + /** + * offset 3872 + */ + scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; + /** + * units: kPa + * offset 3880 + */ + int8_t wwMapBins[WWAE_TABLE_SIZE]; + /** + * offset 3888 + */ + scaled_channel wwTauMapValues[WWAE_TABLE_SIZE]; + /** + * offset 3896 + */ + scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; + /** + * units: Nm + * offset 3904 + */ + scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; + /** + * units: RPM + * offset 3940 + */ + uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; + /** + * units: Load + * offset 3952 + */ + uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; + /** + * offset 3964 + */ + GearControllerMode gearControllerMode; + /** + * offset 3965 + */ + TransmissionControllerMode transmissionControllerMode; + /** + * units: deg + * offset 3966 + */ + uint16_t acrDisablePhase; + /** + * offset 3968 + */ + linear_sensor_s auxLinear1; + /** + * offset 3988 + */ + linear_sensor_s auxLinear2; + /** + * offset 4008 + */ + output_pin_e tcu_tcc_onoff_solenoid; + /** + * offset 4010 + */ + pin_output_mode_e tcu_tcc_onoff_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4011 + */ + uint8_t alignmentFill_at_4011[1]; + /** + * offset 4012 + */ + output_pin_e tcu_tcc_pwm_solenoid; + /** + * offset 4014 + */ + pin_output_mode_e tcu_tcc_pwm_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4015 + */ + uint8_t alignmentFill_at_4015[1]; + /** + * offset 4016 + */ + pwm_freq_t tcu_tcc_pwm_solenoid_freq; + /** + * offset 4018 + */ + output_pin_e tcu_pc_solenoid_pin; + /** + * offset 4020 + */ + pin_output_mode_e tcu_pc_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4021 + */ + uint8_t alignmentFill_at_4021[1]; + /** + * offset 4022 + */ + pwm_freq_t tcu_pc_solenoid_freq; + /** + * offset 4024 + */ + output_pin_e tcu_32_solenoid_pin; + /** + * offset 4026 + */ + pin_output_mode_e tcu_32_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4027 + */ + uint8_t alignmentFill_at_4027[1]; + /** + * offset 4028 + */ + pwm_freq_t tcu_32_solenoid_freq; + /** + * offset 4030 + */ + output_pin_e acrPin2; + /** + * units: % + * offset 4032 + */ + float etbMinimumPosition; + /** + * offset 4036 + */ + uint16_t tuneHidingKey; + /** + * offset 4038 + */ + vin_number_t vinNumber; + /** + * need 4 byte alignment + * units: units + * offset 4055 + */ + uint8_t alignmentFill_at_4055[1]; + /** + * offset 4056 + */ + uint16_t highSpeedOffsets[HIGH_SPEED_COUNT]; + /** + * offset 4120 + */ + float etbDutyShutdownThreshold; + /** + * offset 4124 + */ + fuel_pressure_sensor_mode_e fuelPressureSensorMode; + /** + * need 4 byte alignment + * units: units + * offset 4125 + */ + uint8_t alignmentFill_at_4125[1]; + /** + * offset 4126 + */ + switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; + /** + * units: RPM + * offset 4142 + */ + scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: rpm + * offset 4146 + */ + int16_t ALSMinRPM; + /** + * units: rpm + * offset 4148 + */ + int16_t ALSMaxRPM; + /** + * units: sec + * offset 4150 + */ + int16_t ALSMaxDuration; + /** + * units: C + * offset 4152 + */ + int8_t ALSMinCLT; + /** + * units: C + * offset 4153 + */ + int8_t ALSMaxCLT; + /** + * offset 4154 + */ + uint8_t alsMinTimeBetween; + /** + * offset 4155 + */ + uint8_t alsEtbPosition; + /** + * units: % + * offset 4156 + */ + uint8_t acRelayAlternatorDutyAdder; + /** + * offset 4157 + */ + SentEtbType sentEtbType; + /** + * offset 4158 + */ + uint16_t customSentTpsMin; + /** + * units: % + * offset 4160 + */ + int ALSIdleAdd; + /** + * units: % + * offset 4164 + */ + int ALSEtbAdd; + /** + * offset 4168 + */ + float ALSSkipRatio; + /** + * units: % + * offset 4172 + */ + uint8_t ALSMaxDriverThrottleIntent; + /** + * offset 4173 + */ + pin_input_mode_e ALSActivatePinMode; + /** + * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% + * units: % + * offset 4174 + */ + scaled_channel tpsSecondaryMaximum; + /** + * For Toyota ETCS-i, use ~69% + * units: % + * offset 4175 + */ + scaled_channel ppsSecondaryMaximum; + /** + * offset 4176 + */ + pin_input_mode_e luaDigitalInputPinModes[LUA_DIGITAL_INPUT_COUNT]; + /** + * offset 4184 + */ + uint16_t customSentTpsMax; + /** + * offset 4186 + */ + uint16_t kLineBaudRate; + /** + * offset 4188 + */ + CanGpioType canGpioType; + /** + * offset 4189 + */ + UiMode uiMode; + /** + * Crank angle ATDC of first lobe peak + * units: deg + * offset 4190 + */ + int16_t hpfpPeakPos; + /** + * units: us + * offset 4192 + */ + int16_t kLinePeriodUs; + /** + * Window that the correction will be added throughout (example, if rpm limit is 7000, and rpmSoftLimitWindowSize is 200, the corrections activate at 6800RPM, creating a 200rpm window) + * units: RPM + * offset 4194 + */ + scaled_channel rpmSoftLimitWindowSize; + /** + * Degrees of timing REMOVED from actual timing during soft RPM limit window + * units: deg + * offset 4195 + */ + scaled_channel rpmSoftLimitTimingRetard; + /** + * % of fuel ADDED during window + * units: % + * offset 4196 + */ + scaled_channel rpmSoftLimitFuelAdded; + /** + * Hysterisis: if the hard limit is 7200rpm and rpmHardLimitHyst is 200rpm, then when the ECU sees 7200rpm, fuel/ign will cut, and stay cut until 7000rpm (7200-200) is reached + * units: RPM + * offset 4197 + */ + scaled_channel rpmHardLimitHyst; + /** + * Time between bench test pulses + * units: ms + * offset 4198 + */ + scaled_channel benchTestOffTime; + /** + * Hysterisis: if hard cut is 240kpa, and boostCutPressureHyst is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached + * units: kPa (absolute) + * offset 4200 + */ + scaled_channel boostCutPressureHyst; + /** + * Boost duty cycle added by gear + * units: % + * offset 4201 + */ + scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 4211 + */ + uint8_t alignmentFill_at_4211[1]; + /** + * How many test bench pulses do you want + * offset 4212 + */ + uint32_t benchTestCount; + /** + * How long initial IAC adder is held before starting to decay. + * units: seconds + * offset 4216 + */ + scaled_channel iacByTpsHoldTime; + /** + * How long it takes to remove initial IAC adder to return to normal idle. + * units: seconds + * offset 4217 + */ + scaled_channel iacByTpsDecayTime; + /** + * offset 4218 + */ + switch_input_pin_e tcu_rangeInput[RANGE_INPUT_COUNT]; + /** + * offset 4230 + */ + pin_input_mode_e tcu_rangeInputMode[RANGE_INPUT_COUNT]; + /** + * Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead. + * units: ratio + * offset 4236 + */ + scaled_channel canVssScaling; + /** + * need 4 byte alignment + * units: units + * offset 4238 + */ + uint8_t alignmentFill_at_4238[2]; + /** + * offset 4240 + */ + ThermistorConf oilTempSensor; + /** + * offset 4272 + */ + ThermistorConf fuelTempSensor; + /** + * offset 4304 + */ + ThermistorConf ambientTempSensor; + /** + * offset 4336 + */ + ThermistorConf compressorDischargeTemperature; + /** + * Place the sensor before the throttle, but after any turbocharger/supercharger and intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4368 + */ + adc_channel_e throttleInletPressureChannel; + /** + * Place the sensor after the turbocharger/supercharger, but before any intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4369 + */ + adc_channel_e compressorDischargePressureChannel; + /** + * offset 4370 + */ + Gpio dacOutputPins[DAC_OUTPUT_COUNT]; + /** + * offset 4374 + */ + output_pin_e speedometerOutputPin; + /** + * Number of speedometer pulses per kilometer travelled. + * offset 4376 + */ + uint16_t speedometerPulsePerKm; + /** + * offset 4378 + */ + uint8_t simulatorCamPosition[CAM_INPUTS_COUNT]; + /** + * offset 4382 + */ + adc_channel_e ignKeyAdcChannel; + /** + * offset 4383 + */ + pin_mode_e spi6MisoMode; + /** + * units: ratio + * offset 4384 + */ + float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; + /** + * units: ratio + * offset 4400 + */ + float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; + /** + * units: % + * offset 4416 + */ + int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * If injector duty cycle hits this value, instantly cut fuel. + * units: % + * offset 4452 + */ + uint8_t maxInjectorDutyInstant; + /** + * If injector duty cycle hits this value for the specified delay time, cut fuel. + * units: % + * offset 4453 + */ + uint8_t maxInjectorDutySustained; + /** + * Timeout period for duty cycle over the sustained limit to trigger duty cycle protection. + * units: sec + * offset 4454 + */ + scaled_channel maxInjectorDutySustainedTimeout; + /** + * need 4 byte alignment + * units: units + * offset 4455 + */ + uint8_t alignmentFill_at_4455[1]; + /** + * offset 4456 + */ + output_pin_e injectionPinsStage2[MAX_CYLINDER_COUNT]; + /** + * units: Deg + * offset 4480 + */ + int8_t tractionControlTimingDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: % + * offset 4516 + */ + int8_t tractionControlIgnitionSkip[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 4552 + */ + float auxSpeed1Multiplier; + /** + * offset 4556 + */ + float brakeMeanEffectivePressureDifferential; + /** + * offset 4560 + */ + Gpio spi4mosiPin; + /** + * offset 4562 + */ + Gpio spi4misoPin; + /** + * offset 4564 + */ + Gpio spi4sckPin; + /** + * offset 4566 + */ + Gpio spi5mosiPin; + /** + * offset 4568 + */ + Gpio spi5misoPin; + /** + * offset 4570 + */ + Gpio spi5sckPin; + /** + * offset 4572 + */ + Gpio spi6mosiPin; + /** + * offset 4574 + */ + Gpio spi6misoPin; + /** + * offset 4576 + */ + Gpio spi6sckPin; + /** + * offset 4578 + */ + pin_mode_e spi4SckMode; + /** + * offset 4579 + */ + pin_mode_e spi4MosiMode; + /** + * offset 4580 + */ + pin_mode_e spi4MisoMode; + /** + * offset 4581 + */ + pin_mode_e spi5SckMode; + /** + * offset 4582 + */ + pin_mode_e spi5MosiMode; + /** + * offset 4583 + */ + pin_mode_e spi5MisoMode; + /** + * offset 4584 + */ + pin_mode_e spi6SckMode; + /** + * offset 4585 + */ + pin_mode_e spi6MosiMode; + /** + * units: units + * offset 4586 + */ + uint8_t unusedOftenChangesDuringFirmwareUpdate[120]; + /** + * need 4 byte alignment + * units: units + * offset 4706 + */ + uint8_t alignmentFill_at_4706[2]; +}; +static_assert(sizeof(engine_configuration_s) == 4708); + +// start of cyl_trim_s +struct cyl_trim_s { + /** + * offset 0 + */ + scaled_channel table[TRIM_SIZE][TRIM_SIZE]; +}; +static_assert(sizeof(cyl_trim_s) == 16); + +// start of blend_table_s +struct blend_table_s { + /** + * offset 0 + */ + scaled_channel table[8][8]; + /** + * units: Load + * offset 128 + */ + uint16_t loadBins[8]; + /** + * units: RPM + * offset 144 + */ + uint16_t rpmBins[8]; + /** + * offset 160 + */ + gppwm_channel_e blendParameter; + /** + * offset 161 + */ + gppwm_channel_e yAxisOverride; + /** + * offset 162 + */ + scaled_channel blendBins[8]; + /** + * units: % + * offset 178 + */ + scaled_channel blendValues[8]; + /** + * need 4 byte alignment + * units: units + * offset 186 + */ + uint8_t alignmentFill_at_186[2]; +}; +static_assert(sizeof(blend_table_s) == 188); + +// start of persistent_config_s +struct persistent_config_s { + /** + * offset 0 + */ + engine_configuration_s engineConfiguration; + /** + * target TPS value, 0 to 100% + * TODO: use int8 data date once we template interpolation method + * units: target TPS position + * offset 4708 + */ + float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; + /** + * PWM bias, 0 to 100% + * units: ETB duty cycle bias + * offset 4740 + */ + float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; + /** + * units: % + * offset 4772 + */ + scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; + /** + * units: Load + * offset 4836 + */ + uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; + /** + * units: RPM + * offset 4844 + */ + scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; + /** + * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM + * units: RPM + * offset 4852 + */ + uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; + /** + * units: ms + * offset 4868 + */ + scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; + /** + * CLT-based target RPM for automatic idle controller + * units: C + * offset 4884 + */ + scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; + /** + * See idleRpmPid + * units: RPM + * offset 4900 + */ + scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; + /** + * CLT-based timing correction + * units: C + * offset 4916 + */ + float cltTimingBins[CLT_TIMING_CURVE_SIZE]; + /** + * units: degree + * offset 4948 + */ + float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; + /** + * units: x + * offset 4980 + */ + float scriptCurve1Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5044 + */ + float scriptCurve1[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5108 + */ + float scriptCurve2Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5172 + */ + float scriptCurve2[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5236 + */ + float scriptCurve3Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5268 + */ + float scriptCurve3[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5300 + */ + float scriptCurve4Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5332 + */ + float scriptCurve4[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5364 + */ + float scriptCurve5Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5396 + */ + float scriptCurve5[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5428 + */ + float scriptCurve6Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5460 + */ + float scriptCurve6[SCRIPT_CURVE_8]; + /** + * units: kPa + * offset 5492 + */ + float baroCorrPressureBins[BARO_CORR_SIZE]; + /** + * units: RPM + * offset 5508 + */ + float baroCorrRpmBins[BARO_CORR_SIZE]; + /** + * units: ratio + * offset 5524 + */ + float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; + /** + * Cranking fuel correction coefficient based on TPS + * units: Ratio + * offset 5588 + */ + float crankingTpsCoef[CRANKING_CURVE_SIZE]; + /** + * units: % + * offset 5620 + */ + float crankingTpsBins[CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: RPM + * offset 5652 + */ + uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: deg + * offset 5660 + */ + scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: RPM + * offset 5668 + */ + scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: % + * offset 5684 + */ + scaled_channel iacCoasting[CLT_CURVE_SIZE]; + /** + * offset 5700 + */ + warning_message_t warning_message; + /** + * units: C + * offset 5820 + */ + float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: Seconds + * offset 5852 + */ + float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: % + * offset 5884 + */ + float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; + /** + * units: Seconds + * offset 5916 + */ + float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; + /** + * offset 5948 + */ + scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: RPM + * offset 6012 + */ + scaled_channel boostRpmBins[BOOST_RPM_COUNT]; + /** + * offset 6020 + */ + scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: % + * offset 6084 + */ + uint8_t boostTpsBins[BOOST_LOAD_COUNT]; + /** + * units: % + * offset 6092 + */ + uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; + /** + * units: % + * offset 6156 + */ + uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; + /** + * units: RPM + * offset 6164 + */ + scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: C + * offset 6172 + */ + float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: % + * offset 6204 + */ + float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: RPM + * offset 6236 + */ + scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: deg + * offset 6244 + */ + float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; + /** + * units: RPM + * offset 6276 + */ + scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; + /** + * units: load + * offset 6280 + */ + uint8_t idleVeLoadBins[IDLE_VE_SIZE]; + /** + * units: % + * offset 6284 + */ + scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; + /** + * offset 6316 + */ + lua_script_t luaScript; + /** + * units: C + * offset 14316 + */ + float cltFuelCorrBins[CLT_CURVE_SIZE]; + /** + * units: ratio + * offset 14380 + */ + float cltFuelCorr[CLT_CURVE_SIZE]; + /** + * units: C + * offset 14444 + */ + float iatFuelCorrBins[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14508 + */ + float iatFuelCorr[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14572 + */ + float crankingFuelCoef[CRANKING_CURVE_SIZE]; + /** + * units: C + * offset 14604 + */ + float crankingFuelBins[CRANKING_CURVE_SIZE]; + /** + * units: ratio + * offset 14636 + */ + float crankingCycleCoef[CRANKING_CURVE_SIZE]; + /** + * units: counter + * offset 14668 + */ + float crankingCycleBins[CRANKING_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: C + * offset 14700 + */ + float cltIdleCorrBins[CLT_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: ratio + * offset 14764 + */ + float cltIdleCorr[CLT_CURVE_SIZE]; + /** + * Also known as MAF transfer function. + * kg/hour value. + * By the way 2.081989116 kg/h = 1 ft3/m + * units: kg/hour + * offset 14828 + */ + float mafDecoding[MAF_DECODING_COUNT]; + /** + * units: V + * offset 14956 + */ + float mafDecodingBins[MAF_DECODING_COUNT]; + /** + * units: deg + * offset 15084 + */ + scaled_channel ignitionIatCorrTable[8][8]; + /** + * units: C + * offset 15148 + */ + int8_t ignitionIatCorrTempBins[8]; + /** + * units: Load + * offset 15156 + */ + scaled_channel ignitionIatCorrLoadBins[8]; + /** + * units: deg + * offset 15164 + */ + int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: Load + * offset 15676 + */ + uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 15708 + */ + uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; + /** + * units: onoff + * offset 15740 + */ + uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; + /** + * units: kPa + * offset 15800 + */ + scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: % TPS + * offset 16312 + */ + scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 16344 + */ + uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 16376 + */ + int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16440 + */ + uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16456 + */ + uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 16472 + */ + int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16536 + */ + uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16552 + */ + uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: deg + * offset 16568 + */ + scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; + /** + * units: Load + * offset 17080 + */ + uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; + /** + * units: RPM + * offset 17112 + */ + uint16_t ignitionRpmBins[IGN_RPM_COUNT]; + /** + * units: % + * offset 17144 + */ + scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: kPa + * offset 17656 + */ + uint16_t veLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 17688 + */ + uint16_t veRpmBins[FUEL_RPM_COUNT]; + /** + * units: lambda + * offset 17720 + */ + scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * offset 17976 + */ + uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 18008 + */ + uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 18040 + */ + float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; + /** + * units: from + * offset 18296 + */ + float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: to + * offset 18328 + */ + float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: value + * offset 18360 + */ + float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18616 + */ + int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18632 + */ + int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18648 + */ + uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18712 + */ + int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18728 + */ + int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18744 + */ + uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18808 + */ + int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18824 + */ + int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18840 + */ + uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; + /** + * units: L + * offset 18920 + */ + int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18936 + */ + int16_t scriptTable4RpmBins[TABLE_4_RPM]; + /** + * offset 18956 + */ + uint16_t ignTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 18964 + */ + uint16_t ignTrimRpmBins[TRIM_SIZE]; + /** + * offset 18972 + */ + cyl_trim_s ignTrims[12]; + /** + * offset 19164 + */ + uint16_t fuelTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 19172 + */ + uint16_t fuelTrimRpmBins[TRIM_SIZE]; + /** + * offset 19180 + */ + cyl_trim_s fuelTrims[12]; + /** + * units: ratio + * offset 19372 + */ + scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; + /** + * units: Airmass + * offset 19388 + */ + scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19396 + */ + uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19404 + */ + uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19412 + */ + uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19420 + */ + uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19428 + */ + uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19436 + */ + uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19444 + */ + uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19452 + */ + uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19460 + */ + uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19468 + */ + uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19476 + */ + uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19484 + */ + uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; + /** + * units: TPS + * offset 19492 + */ + uint8_t tcu_tccTpsBins[8]; + /** + * units: MPH + * offset 19500 + */ + uint8_t tcu_tccLockSpeed[8]; + /** + * units: MPH + * offset 19508 + */ + uint8_t tcu_tccUnlockSpeed[8]; + /** + * units: KPH + * offset 19516 + */ + uint8_t tcu_32SpeedBins[8]; + /** + * units: % + * offset 19524 + */ + uint8_t tcu_32Vals[8]; + /** + * units: % + * offset 19532 + */ + scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; + /** + * units: % + * offset 19568 + */ + uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; + /** + * units: RPM + * offset 19574 + */ + scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; + /** + * units: deg + * offset 19580 + */ + scaled_channel maxKnockRetardTable[6][6]; + /** + * units: % + * offset 19616 + */ + uint8_t maxKnockRetardLoadBins[6]; + /** + * units: RPM + * offset 19622 + */ + scaled_channel maxKnockRetardRpmBins[6]; + /** + * units: deg + * offset 19628 + */ + scaled_channel ALSTimingRetardTable[4][4]; + /** + * units: TPS + * offset 19660 + */ + uint16_t alsIgnRetardLoadBins[4]; + /** + * units: RPM + * offset 19668 + */ + uint16_t alsIgnRetardrpmBins[4]; + /** + * units: percent + * offset 19676 + */ + scaled_channel ALSFuelAdjustment[4][4]; + /** + * units: TPS + * offset 19708 + */ + uint16_t alsFuelAdjustmentLoadBins[4]; + /** + * units: RPM + * offset 19716 + */ + uint16_t alsFuelAdjustmentrpmBins[4]; + /** + * units: ratio + * offset 19724 + */ + scaled_channel ALSIgnSkipTable[4][4]; + /** + * units: TPS + * offset 19756 + */ + uint16_t alsIgnSkipLoadBins[4]; + /** + * units: RPM + * offset 19764 + */ + uint16_t alsIgnSkiprpmBins[4]; + /** + * offset 19772 + */ + blend_table_s ignBlends[IGN_BLEND_COUNT]; + /** + * offset 20524 + */ + blend_table_s veBlends[VE_BLEND_COUNT]; + /** + * units: % + * offset 21276 + */ + scaled_channel throttleEstimateEffectiveAreaBins[12]; + /** + * In units of g/s normalized to choked flow conditions + * units: g/s + * offset 21300 + */ + scaled_channel throttleEstimateEffectiveAreaValues[12]; + /** + * offset 21324 + */ + blend_table_s boostOpenLoopBlends[BOOST_BLEND_COUNT]; + /** + * offset 21700 + */ + blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; + /** + * units: level + * offset 22076 + */ + uint8_t tcu_rangeP[6]; + /** + * units: level + * offset 22082 + */ + uint8_t tcu_rangeR[6]; + /** + * units: level + * offset 22088 + */ + uint8_t tcu_rangeN[6]; + /** + * units: level + * offset 22094 + */ + uint8_t tcu_rangeD[6]; + /** + * units: level + * offset 22100 + */ + uint8_t tcu_rangeM[6]; + /** + * units: level + * offset 22106 + */ + uint8_t tcu_rangeM3[6]; + /** + * units: level + * offset 22112 + */ + uint8_t tcu_rangeM2[6]; + /** + * units: level + * offset 22118 + */ + uint8_t tcu_rangeM1[6]; + /** + * units: level + * offset 22124 + */ + uint8_t tcu_rangePlus[6]; + /** + * units: level + * offset 22130 + */ + uint8_t tcu_rangeMinus[6]; + /** + * units: level + * offset 22136 + */ + uint8_t tcu_rangeLow[6]; + /** + * units: lambda + * offset 22142 + */ + scaled_channel lambdaMaxDeviationTable[4][4]; + /** + * offset 22158 + */ + uint16_t lambdaMaxDeviationLoadBins[4]; + /** + * units: RPM + * offset 22166 + */ + uint16_t lambdaMaxDeviationRpmBins[4]; + /** + * units: % + * offset 22174 + */ + uint8_t injectorStagingTable[INJ_STAGING_COUNT][INJ_STAGING_COUNT]; + /** + * offset 22210 + */ + uint16_t injectorStagingLoadBins[INJ_STAGING_COUNT]; + /** + * units: RPM + * offset 22222 + */ + uint16_t injectorStagingRpmBins[INJ_STAGING_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 22234 + */ + uint8_t alignmentFill_at_22234[2]; +}; +static_assert(sizeof(persistent_config_s) == 22236); + +// end +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:34 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNB2.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNB2.h new file mode 100644 index 0000000000..538b1b248a --- /dev/null +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellenMiataNB2.h @@ -0,0 +1,5637 @@ +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:35 UTC 2024 +// by class com.rusefi.output.CHeaderConsumer +// begin +#pragma once +#include "rusefi_types.h" +// start of stft_cell_cfg_s +struct stft_cell_cfg_s { + /** + * Maximum % that the short term fuel trim can add + * units: % + * offset 0 + */ + int8_t maxAdd; + /** + * Maximum % that the short term fuel trim can remove + * units: % + * offset 1 + */ + int8_t maxRemove; + /** + * 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. + * units: sec + * offset 2 + */ + scaled_channel timeConstant; +}; +static_assert(sizeof(stft_cell_cfg_s) == 4); + +// start of stft_s +struct stft_s { + /** + * Below this RPM, the idle region is active + * units: RPM + * offset 0 + */ + scaled_channel maxIdleRegionRpm; + /** + * Below this engine load, the overrun region is active + * units: load + * offset 1 + */ + uint8_t maxOverrunLoad; + /** + * Above this engine load, the power region is active + * units: load + * offset 2 + */ + uint8_t minPowerLoad; + /** + * 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. + * units: % + * offset 3 + */ + scaled_channel deadband; + /** + * Below this temperature, correction is disabled. + * units: C + * offset 4 + */ + int8_t minClt; + /** + * Below this AFR, correction is paused + * units: afr + * offset 5 + */ + scaled_channel minAfr; + /** + * Above this AFR, correction is paused + * units: afr + * offset 6 + */ + scaled_channel maxAfr; + /** + * Delay after starting the engine before beginning closed loop correction. + * units: seconds + * offset 7 + */ + uint8_t startupDelay; + /** + * offset 8 + */ + stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT]; +}; +static_assert(sizeof(stft_s) == 24); + +// start of pid_s +struct pid_s { + /** + * offset 0 + */ + float pFactor; + /** + * offset 4 + */ + float iFactor; + /** + * offset 8 + */ + float dFactor; + /** + * Linear addition to PID logic + * offset 12 + */ + int16_t offset; + /** + * PID dTime + * units: ms + * offset 14 + */ + int16_t periodMs; + /** + * Output Min Duty Cycle + * offset 16 + */ + int16_t minValue; + /** + * Output Max Duty Cycle + * offset 18 + */ + int16_t maxValue; +}; +static_assert(sizeof(pid_s) == 20); + +// start of cranking_parameters_s +struct cranking_parameters_s { + /** + * 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. + * A reasonable starting point is 60mg per liter per cylinder. + * ex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel. + * units: mg + * offset 0 + */ + 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 + * units: RPM + * offset 4 + */ + int16_t rpm; + /** + * need 4 byte alignment + * units: units + * offset 6 + */ + uint8_t alignmentFill_at_6[2]; +}; +static_assert(sizeof(cranking_parameters_s) == 8); + +// start of gppwm_channel +struct gppwm_channel { + /** + * Select a pin to use for PWM or on-off output. + * offset 0 + */ + output_pin_e pin; + /** + * If an error (with a sensor, etc) is detected, this value is used instead of reading from the table. + * This should be a safe value for whatever hardware is connected to prevent damage. + * units: % + * offset 2 + */ + uint8_t dutyIfError; + /** + * need 4 byte alignment + * units: units + * offset 3 + */ + uint8_t alignmentFill_at_3[1]; + /** + * Select a frequency to run PWM at. + * Set this to 0hz to enable on-off mode. + * units: hz + * offset 4 + */ + uint16_t pwmFrequency; + /** + * Hysteresis: in on-off mode, turn the output on when the table value is above this duty. + * units: % + * offset 6 + */ + uint8_t onAboveDuty; + /** + * Hysteresis: in on-off mode, turn the output off when the table value is below this duty. + * units: % + * offset 7 + */ + uint8_t offBelowDuty; + /** + * Selects the Y axis to use for the table. + * offset 8 + */ + gppwm_channel_e loadAxis; + /** + * Selects the X axis to use for the table. + * offset 9 + */ + gppwm_channel_e rpmAxis; + /** + * units: load + * offset 10 + */ + scaled_channel loadBins[GPPWM_LOAD_COUNT]; + /** + * units: RPM + * offset 26 + */ + int16_t rpmBins[GPPWM_RPM_COUNT]; + /** + * units: duty + * offset 42 + */ + scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 106 + */ + uint8_t alignmentFill_at_106[2]; +}; +static_assert(sizeof(gppwm_channel) == 108); + +// start of air_pressure_sensor_config_s +struct air_pressure_sensor_config_s { + /** + * kPa value at low volts + * units: kpa + * offset 0 + */ + float lowValue; + /** + * kPa value at high volts + * units: kpa + * offset 4 + */ + float highValue; + /** + * offset 8 + */ + air_pressure_sensor_type_e type; + /** + * offset 9 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 10 + */ + uint8_t alignmentFill_at_10[2]; +}; +static_assert(sizeof(air_pressure_sensor_config_s) == 12); + +// start of MAP_sensor_config_s +struct MAP_sensor_config_s { + /** + * offset 0 + */ + float samplingAngleBins[MAP_ANGLE_SIZE]; + /** + * MAP averaging sampling start crank degree angle + * units: deg + * offset 32 + */ + float samplingAngle[MAP_ANGLE_SIZE]; + /** + * offset 64 + */ + float samplingWindowBins[MAP_WINDOW_SIZE]; + /** + * MAP averaging angle crank degree duration + * units: deg + * offset 96 + */ + float samplingWindow[MAP_WINDOW_SIZE]; + /** + * offset 128 + */ + air_pressure_sensor_config_s sensor; +}; +static_assert(sizeof(MAP_sensor_config_s) == 140); + +/** + * @brief Thermistor known values + +*/ +// start of thermistor_conf_s +struct thermistor_conf_s { + /** + * these values are in Celcius + * units: *C + * offset 0 + */ + float tempC_1; + /** + * units: *C + * offset 4 + */ + float tempC_2; + /** + * units: *C + * offset 8 + */ + float tempC_3; + /** + * units: Ohm + * offset 12 + */ + float resistance_1; + /** + * units: Ohm + * offset 16 + */ + float resistance_2; + /** + * units: Ohm + * offset 20 + */ + float resistance_3; + /** + * Pull-up resistor value on your board + * units: Ohm + * offset 24 + */ + float bias_resistor; +}; +static_assert(sizeof(thermistor_conf_s) == 28); + +// start of linear_sensor_s +struct linear_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * need 4 byte alignment + * units: units + * offset 1 + */ + uint8_t alignmentFill_at_1[3]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * offset 16 + */ + float value2; +}; +static_assert(sizeof(linear_sensor_s) == 20); + +// start of ThermistorConf +struct ThermistorConf { + /** + * offset 0 + */ + thermistor_conf_s config; + /** + * offset 28 + */ + adc_channel_e adcChannel; + /** + * need 4 byte alignment + * units: units + * offset 29 + */ + uint8_t alignmentFill_at_29[3]; +}; +static_assert(sizeof(ThermistorConf) == 32); + +// start of injector_s +struct injector_s { + /** + * This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute + * By the way, g/s = 0.125997881 * (lb/hr) + * g/s = 0.125997881 * (cc/min)/10.5 + * g/s = 0.0119997981 * cc/min + * units: cm3/min + * offset 0 + */ + float flow; + /** + * units: volts + * offset 4 + */ + float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; + /** + * ms delay between injector open and close dead times + * units: ms + * offset 36 + */ + float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; +}; +static_assert(sizeof(injector_s) == 68); + +// start of trigger_config_s +struct trigger_config_s { + /** + * https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers + * set trigger_type X + * offset 0 + */ + trigger_type_e type; + /** + * units: number + * offset 4 + */ + int customTotalToothCount; + /** + * units: number + * offset 8 + */ + int customSkippedToothCount; +}; +static_assert(sizeof(trigger_config_s) == 12); + +// start of afr_sensor_s +struct afr_sensor_s { + /** + * offset 0 + */ + adc_channel_e hwChannel; + /** + * offset 1 + */ + adc_channel_e hwChannel2; + /** + * need 4 byte alignment + * units: units + * offset 2 + */ + uint8_t alignmentFill_at_2[2]; + /** + * units: volts + * offset 4 + */ + float v1; + /** + * units: AFR + * offset 8 + */ + float value1; + /** + * units: volts + * offset 12 + */ + float v2; + /** + * units: AFR + * offset 16 + */ + float value2; +}; +static_assert(sizeof(afr_sensor_s) == 20); + +// start of idle_hardware_s +struct idle_hardware_s { + /** + * units: Hz + * offset 0 + */ + int solenoidFrequency; + /** + * offset 4 + */ + output_pin_e solenoidPin; + /** + * offset 6 + */ + Gpio stepperDirectionPin; + /** + * offset 8 + */ + Gpio stepperStepPin; + /** + * offset 10 + */ + pin_output_mode_e solenoidPinMode; + /** + * need 4 byte alignment + * units: units + * offset 11 + */ + uint8_t alignmentFill_at_11[1]; +}; +static_assert(sizeof(idle_hardware_s) == 12); + +// start of dc_io +struct dc_io { + /** + * offset 0 + */ + Gpio directionPin1; + /** + * offset 2 + */ + Gpio directionPin2; + /** + * Acts as EN pin in two-wire mode + * offset 4 + */ + Gpio controlPin; + /** + * offset 6 + */ + Gpio disablePin; +}; +static_assert(sizeof(dc_io) == 8); + +// start of vr_threshold_s +struct vr_threshold_s { + /** + * units: rpm + * offset 0 + */ + scaled_channel rpmBins[6]; + /** + * units: volts + * offset 6 + */ + scaled_channel values[6]; + /** + * offset 12 + */ + Gpio pin; + /** + * need 4 byte alignment + * units: units + * offset 14 + */ + uint8_t alignmentFill_at_14[2]; +}; +static_assert(sizeof(vr_threshold_s) == 16); + +// start of engine_configuration_s +struct engine_configuration_s { + /** + * http://rusefi.com/wiki/index.php?title=Manual:Engine_Type + * set engine_type X + * offset 0 + */ + engine_type_e engineType; + /** + * offset 2 + */ + uint16_t startButtonSuppressOnStartUpMs; + /** + * Disable sensor sniffer above this rpm + * units: RPM + * offset 4 + */ + uint16_t sensorSnifferRpmThreshold; + /** + * A secondary Rev limit engaged by the driver to help launch the vehicle faster + * units: rpm + * offset 6 + */ + uint16_t launchRpm; + /** + * set rpm_hard_limit X + * units: rpm + * offset 8 + */ + uint16_t rpmHardLimit; + /** + * Engine sniffer would be disabled above this rpm + * set engineSnifferRpmThreshold X + * units: RPM + * offset 10 + */ + uint16_t engineSnifferRpmThreshold; + /** + * Disable multispark above this engine speed. + * units: rpm + * offset 12 + */ + scaled_channel multisparkMaxRpm; + /** + * Above this RPM, disable AC. Set to 0 to disable check. + * units: rpm + * offset 13 + */ + scaled_channel maxAcRpm; + /** + * Above this TPS, disable AC. Set to 0 to disable check. + * units: % + * offset 14 + */ + uint8_t maxAcTps; + /** + * Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check. + * units: deg C + * offset 15 + */ + uint8_t maxAcClt; + /** + * units: RPM + * offset 16 + */ + uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; + /** + * 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. + * units: deg + * offset 48 + */ + uint8_t multisparkMaxSparkingAngle; + /** + * Configures the maximum number of extra sparks to fire (does not include main spark) + * units: count + * offset 49 + */ + uint8_t multisparkMaxExtraSparkCount; + /** + * need 4 byte alignment + * units: units + * offset 50 + */ + uint8_t alignmentFill_at_50[2]; + /** + * offset 52 + */ + injector_s injector; + /** + * offset 120 + */ + injector_s injectorSecondary; + /** + * Does the vehicle have a turbo or supercharger? + offset 188 bit 0 */ + bool isForcedInduction : 1 {}; + /** + * 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. + offset 188 bit 1 */ + bool useFordRedundantTps : 1 {}; + /** + offset 188 bit 2 */ + bool enableKline : 1 {}; + /** + offset 188 bit 3 */ + bool overrideTriggerGaps : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 4 */ + bool enableFan1WithAc : 1 {}; + /** + * Turn on this fan when AC is on. + offset 188 bit 5 */ + bool enableFan2WithAc : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 6 */ + bool disableFan1WhenStopped : 1 {}; + /** + * Inhibit operation of this fan while the engine is not running. + offset 188 bit 7 */ + bool disableFan2WhenStopped : 1 {}; + /** + * Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines). + offset 188 bit 8 */ + bool enableTrailingSparks : 1 {}; + /** + * TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode. + offset 188 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 188 bit 10 */ + bool isDoubleSolenoidIdle : 1 {}; + /** + offset 188 bit 11 */ + bool useEeprom : 1 {}; + /** + * Switch between Industrial and Cic PID implementation + offset 188 bit 12 */ + bool useCicPidForIdle : 1 {}; + /** + offset 188 bit 13 */ + bool useTLE8888_cranking_hack : 1 {}; + /** + offset 188 bit 14 */ + 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 188 bit 15 */ + bool useSeparateIdleTablesForCrankingTaper : 1 {}; + /** + offset 188 bit 16 */ + bool launchControlEnabled : 1 {}; + /** + * "Detect double trigger edges" + offset 188 bit 17 */ + bool doNotFilterTriggerEdgeNoise : 1 {}; + /** + offset 188 bit 18 */ + bool antiLagEnabled : 1 {}; + /** + * For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table). + offset 188 bit 19 */ + 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 188 bit 20 */ + bool displayLogicLevelsInEngineSniffer : 1 {}; + /** + offset 188 bit 21 */ + bool useTLE8888_stepper : 1 {}; + /** + offset 188 bit 22 */ + bool usescriptTableForCanSniffingFiltering : 1 {}; + /** + * Print incoming and outgoing first bus CAN messages in rusEFI console + offset 188 bit 23 */ + bool verboseCan : 1 {}; + /** + * Experimental setting that will cause a misfire + * DO NOT ENABLE. + offset 188 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 188 bit 25 */ + bool useFordRedundantPps : 1 {}; + /** + offset 188 bit 26 */ + bool cltSensorPulldown : 1 {}; + /** + offset 188 bit 27 */ + bool iatSensorPulldown : 1 {}; + /** + offset 188 bit 28 */ + bool allowIdenticalPps : 1 {}; + /** + offset 188 bit 29 */ + bool overrideVvtTriggerGaps : 1 {}; + /** + * If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages + offset 188 bit 30 */ + bool useSpiImu : 1 {}; + /** + offset 188 bit 31 */ + bool enableStagedInjection : 1 {}; + /** + * Closed throttle, 1 volt = 200 units. + * See also tps1_1AdcChannel + * set tps_min X + * units: ADC + * offset 192 + */ + int16_t tpsMin; + /** + * Full throttle. + * See also tps1_1AdcChannel + * set tps_max X + * units: ADC + * offset 194 + */ + int16_t tpsMax; + /** + * TPS error detection: what throttle % is unrealistically low? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 196 + */ + int16_t tpsErrorDetectionTooLow; + /** + * TPS error detection: what throttle % is unrealistically high? + * Also used for accelerator pedal error detection if so equipped. + * units: % + * offset 198 + */ + int16_t tpsErrorDetectionTooHigh; + /** + * offset 200 + */ + cranking_parameters_s cranking; + /** + * Dwell duration while cranking + * units: ms + * offset 208 + */ + float ignitionDwellForCrankingMs; + /** + * Once engine speed passes this value, start reducing ETB angle. + * units: rpm + * offset 212 + */ + uint16_t etbRevLimitStart; + /** + * 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. + * units: rpm + * offset 214 + */ + uint16_t etbRevLimitRange; + /** + * @see isMapAveragingEnabled + * offset 216 + */ + MAP_sensor_config_s map; + /** + * todo: merge with channel settings, use full-scale Thermistor here! + * offset 356 + */ + ThermistorConf clt; + /** + * offset 388 + */ + ThermistorConf iat; + /** + * units: deg + * offset 420 + */ + int launchTimingRetard; + /** + * value '6' for 8MHz hw osc + * read hip9011 datasheet for details + * todo split into two bit fields + * units: integer + * offset 424 + */ + int hip9011PrescalerAndSDO; + /** + * We calculate knock band based of cylinderBore + * Use this to override - kHz knock band override + * Requires power cycling to effect + * units: kHz + * offset 428 + */ + float knockBandCustom; + /** + * Engine displacement in litres + * units: L + * offset 432 + */ + scaled_channel displacement; + /** + * units: RPM + * offset 434 + */ + uint16_t triggerSimulatorRpm; + /** + * Number of cylinder the engine has. + * offset 436 + */ + uint32_t cylindersCount; + /** + * offset 440 + */ + firing_order_e firingOrder; + /** + * need 4 byte alignment + * units: units + * offset 441 + */ + uint8_t alignmentFill_at_441[1]; + /** + * offset 442 + */ + Gpio communityCommsLedPid; + /** + * Cylinder diameter in mm. + * units: mm + * offset 444 + */ + float cylinderBore; + /** + * This setting controls which fuel quantity control algorithm is used. + * 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 448 + */ + engine_load_mode_e fuelAlgorithm; + /** + * units: % + * offset 449 + */ + uint8_t ALSMaxTPS; + /** + * This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous". + * offset 450 + */ + 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. + * offset 451 + */ + 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 452 + */ + uint16_t boostControlMinRpm; + /** + * Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 454 + */ + uint8_t boostControlMinTps; + /** + * Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases. + * offset 455 + */ + uint8_t boostControlMinMap; + /** + * 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 + * units: deg + * offset 456 + */ + angle_t crankingTimingAngle; + /** + * Single coil = distributor + * 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 460 + */ + ignition_mode_e ignitionMode; + /** + * How many consecutive gap rations have to match expected ranges for sync to happen + * units: count + * offset 461 + */ + int8_t gapTrackingLengthOverride; + /** + * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). + * units: kph + * offset 462 + */ + uint8_t maxIdleVss; + /** + * need 4 byte alignment + * units: units + * offset 463 + */ + uint8_t alignmentFill_at_463[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. + * units: kPa + * offset 464 + */ + 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 466 + */ + timing_mode_e timingMode; + /** + * need 4 byte alignment + * units: units + * offset 467 + */ + uint8_t alignmentFill_at_467[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. + * units: RPM + * offset 468 + */ + angle_t fixedModeTiming; + /** + * Angle between Top Dead Center (TDC) and the first trigger event. + * Positive value in case of synchronization point before TDC and negative in case of synchronization point after TDC + * .Knowing this angle allows us to control timing and other angles in reference to TDC. + * set global_trigger_offset_angle X + * units: deg btdc + * offset 472 + */ + 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. + * units: coef + * offset 476 + */ + 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. + * units: coef + * offset 480 + */ + float vbattDividerCoeff; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 484 + */ + float fanOnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 488 + */ + float fanOffTemperature; + /** + * offset 492 + */ + output_pin_e acrPin; + /** + * need 4 byte alignment + * units: units + * offset 494 + */ + uint8_t alignmentFill_at_494[2]; + /** + * 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. + * units: revs/km + * offset 496 + */ + float driveWheelRevPerKm; + /** + * set can_mode X + * offset 500 + */ + can_nbc_e canNbcType; + /** + * need 4 byte alignment + * units: units + * offset 501 + */ + uint8_t alignmentFill_at_501[3]; + /** + * CANbus thread period in ms + * units: ms + * offset 504 + */ + int canSleepPeriodMs; + /** + * offset 508 + */ + uint8_t camDecoder2jzPrecision; + /** + * offset 509 + */ + uint8_t justATempTest; + /** + * offset 510 + */ + uint8_t unusedHere333; + /** + * offset 511 + */ + uint8_t unusedHere334; + /** + * units: index + * offset 512 + */ + int byFirmwareVersion; + /** + * First throttle body, first sensor. See also pedalPositionAdcChannel + * offset 516 + */ + 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 517 + */ + 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 518 + */ + adc_channel_e fuelLevelSensor; + /** + * Second throttle body position sensor, single channel so far + * set_analog_input_pin tps2 X + * offset 519 + */ + adc_channel_e tps2_1AdcChannel; + /** + * 0.1 is a good default value + * units: x + * offset 520 + */ + float idle_derivativeFilterLoss; + /** + * just a temporary solution + * units: angle + * offset 524 + */ + int trailingSparkAngle; + /** + * offset 528 + */ + trigger_config_s trigger; + /** + * Extra air taper amount + * units: % + * offset 540 + */ + float airByRpmTaper; + /** + * offset 544 + */ + spi_device_e hip9011SpiDevice; + /** + * 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. + * units: % + * offset 545 + */ + uint8_t boostControlSafeDutyCycle; + /** + * offset 546 + */ + adc_channel_e mafAdcChannel; + /** + * offset 547 + */ + uint8_t acrRevolutions; + /** + * offset 548 + */ + float unused4bytesHere; + /** + * units: volts + * offset 552 + */ + float adcVcc; + /** + * units: Deg + * offset 556 + */ + 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 560 + */ + brain_input_pin_e camInputs[CAM_INPUTS_COUNT]; + /** + * offset 568 + */ + 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 588 + */ + adc_channel_e throttlePedalPositionAdcChannel; + /** + * TPS/PPS error threshold + * units: % + * offset 589 + */ + scaled_channel etbSplit; + /** + * offset 590 + */ + Gpio tle6240_cs; + /** + * offset 592 + */ + pin_output_mode_e tle6240_csPinMode; + /** + * offset 593 + */ + pin_output_mode_e mc33810_csPinMode; + /** + * Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata + * offset 594 + */ + switch_input_pin_e throttlePedalUpPin; + /** + * @see hasBaroSensor + * offset 596 + */ + air_pressure_sensor_config_s baroSensor; + /** + * offset 608 + */ + idle_hardware_s idle; + /** + * Value between 0 and 100 used in Manual mode + * units: % + * offset 620 + */ + float manIdlePosition; + /** + * Ignition timing to remove when a knock event occurs. + * units: % + * offset 624 + */ + scaled_channel knockRetardAggression; + /** + * After a knock event, reapply timing at this rate. + * units: deg/s + * offset 625 + */ + 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 626 + */ + engineSyncCam_e engineSyncCam; + /** + * Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response. + * offset 627 + */ + 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. + * units: ratio + * offset 628 + */ + 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. + * units: count + * offset 630 + */ + uint8_t vssToothCount; + /** + * Override the Y axis (load) value used for only the Idle VE table. + * Advanced users only: If you aren't sure you need this, you probably don't need this. + * offset 631 + */ + ve_override_e idleVeOverrideMode; + /** + * offset 632 + */ + Gpio l9779_cs; + /** + * offset 634 + */ + output_pin_e injectionPins[MAX_CYLINDER_COUNT]; + /** + * offset 658 + */ + output_pin_e ignitionPins[MAX_CYLINDER_COUNT]; + /** + * offset 682 + */ + pin_output_mode_e injectionPinMode; + /** + * offset 683 + */ + pin_output_mode_e ignitionPinMode; + /** + * offset 684 + */ + output_pin_e fuelPumpPin; + /** + * offset 686 + */ + pin_output_mode_e fuelPumpPinMode; + /** + * How many consecutive VVT gap rations have to match expected ranges for sync to happen + * units: count + * offset 687 + */ + int8_t gapVvtTrackingLengthOverride; + /** + * Check engine light, also malfunction indicator light. Always blinks once on boot. + * offset 688 + */ + output_pin_e malfunctionIndicatorPin; + /** + * offset 690 + */ + pin_output_mode_e malfunctionIndicatorPinMode; + /** + * offset 691 + */ + pin_output_mode_e fanPinMode; + /** + * offset 692 + */ + output_pin_e fanPin; + /** + * Some cars have a switch to indicate that clutch pedal is all the way down + * offset 694 + */ + switch_input_pin_e clutchDownPin; + /** + * offset 696 + */ + output_pin_e alternatorControlPin; + /** + * offset 698 + */ + pin_output_mode_e alternatorControlPinMode; + /** + * offset 699 + */ + pin_input_mode_e clutchDownPinMode; + /** + * offset 700 + */ + Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT]; + /** + * offset 708 + */ + pin_output_mode_e electronicThrottlePin1Mode; + /** + * offset 709 + */ + spi_device_e max31855spiDevice; + /** + * offset 710 + */ + Gpio debugTriggerSync; + /** + * Digital Potentiometer is used by stock ECU stimulation code + * offset 712 + */ + spi_device_e digitalPotentiometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 713 + */ + uint8_t alignmentFill_at_713[1]; + /** + * offset 714 + */ + Gpio mc33972_cs; + /** + * offset 716 + */ + pin_output_mode_e mc33972_csPinMode; + /** + * Useful in Research&Development phase + * offset 717 + */ + adc_channel_e auxFastSensor1_adcChannel; + /** + * First throttle body, second sensor. + * offset 718 + */ + adc_channel_e tps1_2AdcChannel; + /** + * Second throttle body, second sensor. + * offset 719 + */ + adc_channel_e tps2_2AdcChannel; + /** + * Electronic throttle pedal position input + * Second channel + * See also tps1_1AdcChannel + * See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage + * offset 720 + */ + adc_channel_e throttlePedalPositionSecondAdcChannel; + /** + * units: % + * offset 721 + */ + uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; + /** + * AFR, WBO, EGO - whatever you like to call it + * offset 729 + */ + ego_sensor_e afr_type; + /** + * offset 730 + */ + Gpio mc33810_cs[C_MC33810_COUNT]; + /** + * 0.1 is a good default value + * units: x + * offset 732 + */ + float idle_antiwindupFreq; + /** + * offset 736 + */ + 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. + * units: us + * offset 740 + */ + uint16_t mc33_t_min_boost; + /** + * offset 742 + */ + pin_output_mode_e hip9011CsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 743 + */ + uint8_t alignmentFill_at_743[1]; + /** + * offset 744 + */ + output_pin_e tachOutputPin; + /** + * offset 746 + */ + pin_output_mode_e tachOutputPinMode; + /** + * need 4 byte alignment + * units: units + * offset 747 + */ + uint8_t alignmentFill_at_747[1]; + /** + * offset 748 + */ + output_pin_e mainRelayPin; + /** + * offset 750 + */ + Gpio sdCardCsPin; + /** + * set_can_tx_pin X + * offset 752 + */ + Gpio canTxPin; + /** + * set_can_rx_pin X + * offset 754 + */ + Gpio canRxPin; + /** + * offset 756 + */ + pin_input_mode_e throttlePedalUpPinMode; + /** + * Additional idle % while A/C is active + * units: % + * offset 757 + */ + uint8_t acIdleExtraOffset; + /** + * Ratio between the wheels and your transmission output. + * units: ratio + * offset 758 + */ + scaled_channel finalGearRatio; + /** + * offset 760 + */ + brain_input_pin_e tcuInputSpeedSensorPin; + /** + * offset 762 + */ + uint8_t tcuInputSpeedSensorTeeth; + /** + * need 4 byte alignment + * units: units + * offset 763 + */ + uint8_t alignmentFill_at_763[1]; + /** + * Voltage when the wastegate is closed. + * You probably don't have one of these! + * units: mv + * offset 764 + */ + uint16_t wastegatePositionMin; + /** + * Voltage when the wastegate is fully open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 766 + */ + uint16_t wastegatePositionMax; + /** + * Voltage when the idle valve is closed. + * You probably don't have one of these! + * units: mv + * offset 768 + */ + uint16_t idlePositionMin; + /** + * Voltage when the idle valve is open. + * You probably don't have one of these! + * 1 volt = 1000 units + * units: mv + * offset 770 + */ + uint16_t idlePositionMax; + /** + * Secondary TTL channel baud rate + * units: BPs + * offset 772 + */ + uint32_t tunerStudioSerialSpeed; + /** + * Just for reference really, not taken into account by any logic at this point + * units: CR + * offset 776 + */ + 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 780 + */ + Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * units: g/s + * offset 784 + */ + scaled_channel fordInjectorSmallPulseSlope; + /** + * offset 786 + */ + pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT]; + /** + * offset 788 + */ + adc_channel_e maf2AdcChannel; + /** + * need 4 byte alignment + * units: units + * offset 789 + */ + uint8_t alignmentFill_at_789[1]; + /** + * On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking. + * offset 790 + */ + output_pin_e o2heaterPin; + /** + * offset 792 + */ + pin_output_mode_e o2heaterPinModeTodO; + /** + * units: RPM + * offset 793 + */ + scaled_channel lambdaProtectionMinRpm; + /** + * units: % + * offset 794 + */ + scaled_channel lambdaProtectionMinLoad; + /** + * need 4 byte alignment + * units: units + * offset 795 + */ + uint8_t alignmentFill_at_795[1]; + /** + offset 796 bit 0 */ + bool is_enabled_spi_1 : 1 {}; + /** + offset 796 bit 1 */ + bool is_enabled_spi_2 : 1 {}; + /** + offset 796 bit 2 */ + bool is_enabled_spi_3 : 1 {}; + /** + * enable sd/disable sd + offset 796 bit 3 */ + bool isSdCardEnabled : 1 {}; + /** + * Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format. + offset 796 bit 4 */ + bool rusefiVerbose29b : 1 {}; + /** + offset 796 bit 5 */ + bool rethrowHardFault : 1 {}; + /** + offset 796 bit 6 */ + bool isHip9011Enabled : 1 {}; + /** + offset 796 bit 7 */ + bool requireFootOnBrakeToCrank : 1 {}; + /** + offset 796 bit 8 */ + bool verboseQuad : 1 {}; + /** + * This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed. + offset 796 bit 9 */ + bool useStepperIdle : 1 {}; + /** + offset 796 bit 10 */ + bool enabledStep1Limiter : 1 {}; + /** + offset 796 bit 11 */ + bool useTpicAdvancedMode : 1 {}; + /** + offset 796 bit 12 */ + bool lambdaProtectionEnable : 1 {}; + /** + offset 796 bit 13 */ + bool verboseTLE8888 : 1 {}; + /** + * CAN broadcast using custom rusEFI protocol + * enable can_broadcast/disable can_broadcast + offset 796 bit 14 */ + bool enableVerboseCanTx : 1 {}; + /** + offset 796 bit 15 */ + bool etb1configured : 1 {}; + /** + offset 796 bit 16 */ + bool etb2configured : 1 {}; + /** + * Useful for individual intakes + offset 796 bit 17 */ + bool measureMapOnlyInOneCylinder : 1 {}; + /** + offset 796 bit 18 */ + 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 796 bit 19 */ + 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 796 bit 20 */ + 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 796 bit 21 */ + bool useIacTableForCoasting : 1 {}; + /** + offset 796 bit 22 */ + bool useNoiselessTriggerDecoder : 1 {}; + /** + offset 796 bit 23 */ + 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 796 bit 24 */ + bool disableEtbWhenEngineStopped : 1 {}; + /** + offset 796 bit 25 */ + 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 796 bit 26 */ + bool pauseEtbControl : 1 {}; + /** + offset 796 bit 27 */ + bool alignEngineSnifferAtTDC : 1 {}; + /** + offset 796 bit 28 */ + bool verboseKLine : 1 {}; + /** + offset 796 bit 29 */ + bool idleIncrementalPidCic : 1 {}; + /** + * AEM X-Series or rusEFI Wideband + offset 796 bit 30 */ + bool enableAemXSeries : 1 {}; + /** + offset 796 bit 31 */ + bool unusedBit_230_31 : 1 {}; + /** + * offset 800 + */ + brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT]; + /** + * offset 808 + */ + pin_output_mode_e mainRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 809 + */ + uint8_t alignmentFill_at_809[1]; + /** + * offset 810 + */ + Gpio hip9011CsPin; + /** + * offset 812 + */ + Gpio hip9011IntHoldPin; + /** + * offset 814 + */ + pin_output_mode_e hip9011IntHoldPinMode; + /** + * need 4 byte alignment + * units: units + * offset 815 + */ + uint8_t alignmentFill_at_815[1]; + /** + * offset 816 + */ + uint32_t verboseCanBaseAddress; + /** + * Boost Voltage + * units: v + * offset 820 + */ + uint8_t mc33_hvolt; + /** + * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. + * units: kPa + * offset 821 + */ + uint8_t minimumBoostClosedLoopMap; + /** + * Optional Radiator Fan used with A/C + * offset 822 + */ + output_pin_e acFanPin; + /** + * offset 824 + */ + pin_output_mode_e acFanPinMode; + /** + * offset 825 + */ + spi_device_e l9779spiDevice; + /** + * units: volts + * offset 826 + */ + scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; + /** + * offset 834 + */ + imu_type_e imuType; + /** + * units: multiplier + * offset 835 + */ + scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 843 + */ + uint8_t alignmentFill_at_843[1]; + /** + * units: kg + * offset 844 + */ + uint16_t vehicleWeight; + /** + * How far above idle speed do we consider idling, i.e. coasting detection threshold. + * For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle. + * units: RPM + * offset 846 + */ + int16_t idlePidRpmUpperLimit; + /** + * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. + * units: ms + * offset 848 + */ + scaled_channel applyNonlinearBelowPulse; + /** + * offset 850 + */ + Gpio lps25BaroSensorScl; + /** + * offset 852 + */ + Gpio lps25BaroSensorSda; + /** + * offset 854 + */ + brain_input_pin_e vehicleSpeedSensorInputPin; + /** + * Some vehicles have a switch to indicate that clutch pedal is all the way up + * offset 856 + */ + switch_input_pin_e clutchUpPin; + /** + * offset 858 + */ + InjectorNonlinearMode injectorNonlinearMode; + /** + * offset 859 + */ + pin_input_mode_e clutchUpPinMode; + /** + * offset 860 + */ + Gpio max31855_cs[EGT_CHANNEL_COUNT]; + /** + * Continental/GM flex fuel sensor, 50-150hz type + * offset 876 + */ + brain_input_pin_e flexSensorPin; + /** + * offset 878 + */ + Gpio test557pin; + /** + * offset 880 + */ + pin_output_mode_e stepperDirectionPinMode; + /** + * offset 881 + */ + spi_device_e mc33972spiDevice; + /** + * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 + * units: :1 + * offset 882 + */ + scaled_channel stoichRatioSecondary; + /** + * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. + * units: % + * offset 883 + */ + uint8_t etbMaximumPosition; + /** + * Rate the ECU will log to the SD card, in hz (log lines per second). + * units: hz + * offset 884 + */ + uint16_t sdCardLogFrequency; + /** + * offset 886 + */ + adc_channel_e idlePositionChannel; + /** + * need 4 byte alignment + * units: units + * offset 887 + */ + uint8_t alignmentFill_at_887[1]; + /** + * offset 888 + */ + Gpio debugMapAveraging; + /** + * offset 890 + */ + output_pin_e starterRelayDisablePin; + /** + * On some vehicles we can disable starter once engine is already running + * offset 892 + */ + pin_output_mode_e starterRelayDisablePinMode; + /** + * need 4 byte alignment + * units: units + * offset 893 + */ + uint8_t alignmentFill_at_893[1]; + /** + * Some Subaru and some Mazda use double-solenoid idle air valve + * offset 894 + */ + output_pin_e secondSolenoidPin; + /** + * See also starterControlPin + * offset 896 + */ + switch_input_pin_e startStopButtonPin; + /** + * need 4 byte alignment + * units: units + * offset 898 + */ + uint8_t alignmentFill_at_898[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. + * units: count + * offset 900 + */ + 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%. + * units: % + * offset 904 + */ + int16_t idlePidDeactivationTpsThreshold; + /** + * units: % + * offset 906 + */ + int16_t stepperParkingExtraSteps; + /** + * units: ADC + * offset 908 + */ + uint16_t tps1SecondaryMin; + /** + * units: ADC + * offset 910 + */ + uint16_t tps1SecondaryMax; + /** + * units: rpm + * offset 912 + */ + int16_t antiLagRpmTreshold; + /** + * Maximum time to crank starter when start/stop button is pressed + * units: Seconds + * offset 914 + */ + uint16_t startCrankingDuration; + /** + * This pin is used for debugging - snap a logic analyzer on it and see if it's ever high + * offset 916 + */ + Gpio triggerErrorPin; + /** + * offset 918 + */ + pin_output_mode_e triggerErrorPinMode; + /** + * need 4 byte alignment + * units: units + * offset 919 + */ + uint8_t alignmentFill_at_919[1]; + /** + * offset 920 + */ + output_pin_e acRelayPin; + /** + * units: % + * offset 922 + */ + uint8_t lambdaProtectionMinTps; + /** + * Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed + * units: s + * offset 923 + */ + scaled_channel lambdaProtectionTimeout; + /** + * units: RPM + * offset 924 + */ + scaled_channel lambdaProtectionRestoreRpm; + /** + * offset 925 + */ + pin_output_mode_e acRelayPinMode; + /** + * need 4 byte alignment + * units: units + * offset 926 + */ + uint8_t alignmentFill_at_926[2]; + /** + * offset 928 + */ + script_setting_t scriptSetting[SCRIPT_SETTING_COUNT]; + /** + * offset 960 + */ + Gpio spi1mosiPin; + /** + * offset 962 + */ + Gpio spi1misoPin; + /** + * offset 964 + */ + Gpio spi1sckPin; + /** + * offset 966 + */ + Gpio spi2mosiPin; + /** + * offset 968 + */ + Gpio spi2misoPin; + /** + * offset 970 + */ + Gpio spi2sckPin; + /** + * offset 972 + */ + Gpio spi3mosiPin; + /** + * offset 974 + */ + Gpio spi3misoPin; + /** + * offset 976 + */ + Gpio spi3sckPin; + /** + * Saab Combustion Detection Module knock signal input pin + * also known as Saab Ion Sensing Module + * offset 978 + */ + Gpio cdmInputPin; + /** + * offset 980 + */ + uart_device_e consoleUartDevice; + /** + * rusEFI console Sensor Sniffer mode + * offset 981 + */ + sensor_chart_e sensorChartMode; + /** + * offset 982 + */ + maf_sensor_type_e mafSensorType; + /** + * need 4 byte alignment + * units: units + * offset 983 + */ + uint8_t alignmentFill_at_983[1]; + /** + offset 984 bit 0 */ + bool clutchUpPinInverted : 1 {}; + /** + offset 984 bit 1 */ + bool clutchDownPinInverted : 1 {}; + /** + * If enabled we use two H-bridges to drive stepper idle air valve + offset 984 bit 2 */ + bool useHbridgesToDriveIdleStepper : 1 {}; + /** + offset 984 bit 3 */ + bool multisparkEnable : 1 {}; + /** + offset 984 bit 4 */ + bool enableLaunchRetard : 1 {}; + /** + offset 984 bit 5 */ + bool canInputBCM : 1 {}; + /** + * This property is useful if using rusEFI as TCM or BCM only + offset 984 bit 6 */ + bool consumeObdSensors : 1 {}; + /** + * Read VSS from OEM CAN bus according to selected CAN vehicle configuration. + offset 984 bit 7 */ + bool enableCanVss : 1 {}; + /** + offset 984 bit 8 */ + bool enableInnovateLC2 : 1 {}; + /** + offset 984 bit 9 */ + 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. + offset 984 bit 10 */ + bool stftIgnoreErrorMagnitude : 1 {}; + /** + offset 984 bit 11 */ + bool vvtBooleanForVerySpecialCases : 1 {}; + /** + offset 984 bit 12 */ + bool enableSoftwareKnock : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable vvt_details + offset 984 bit 13 */ + bool verboseVVTDecoding : 1 {}; + /** + * get invertCamVVTSignal + offset 984 bit 14 */ + bool invertCamVVTSignal : 1 {}; + /** + * In Alpha-N mode, compensate for air temperature. + offset 984 bit 15 */ + bool alphaNUseIat : 1 {}; + /** + offset 984 bit 16 */ + bool knockBankCyl1 : 1 {}; + /** + offset 984 bit 17 */ + bool knockBankCyl2 : 1 {}; + /** + offset 984 bit 18 */ + bool knockBankCyl3 : 1 {}; + /** + offset 984 bit 19 */ + bool knockBankCyl4 : 1 {}; + /** + offset 984 bit 20 */ + bool knockBankCyl5 : 1 {}; + /** + offset 984 bit 21 */ + bool knockBankCyl6 : 1 {}; + /** + offset 984 bit 22 */ + bool knockBankCyl7 : 1 {}; + /** + offset 984 bit 23 */ + bool knockBankCyl8 : 1 {}; + /** + offset 984 bit 24 */ + bool knockBankCyl9 : 1 {}; + /** + offset 984 bit 25 */ + bool knockBankCyl10 : 1 {}; + /** + offset 984 bit 26 */ + bool knockBankCyl11 : 1 {}; + /** + offset 984 bit 27 */ + bool knockBankCyl12 : 1 {}; + /** + offset 984 bit 28 */ + bool tcuEnabled : 1 {}; + /** + offset 984 bit 29 */ + bool canBroadcastUseChannelTwo : 1 {}; + /** + * If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils + offset 984 bit 30 */ + bool useRawOutputToDriveIdleStepper : 1 {}; + /** + * Print incoming and outgoing second bus CAN messages in rusEFI console + offset 984 bit 31 */ + bool verboseCan2 : 1 {}; + /** + * offset 988 + */ + dc_io etbIo[ETB_COUNT]; + /** + * Wastegate control Solenoid + * offset 1004 + */ + output_pin_e boostControlPin; + /** + * offset 1006 + */ + pin_output_mode_e boostControlPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1007 + */ + uint8_t alignmentFill_at_1007[1]; + /** + * offset 1008 + */ + switch_input_pin_e ALSActivatePin; + /** + * offset 1010 + */ + switch_input_pin_e launchActivatePin; + /** + * offset 1012 + */ + pid_s boostPid; + /** + * offset 1032 + */ + boostType_e boostType; + /** + * offset 1033 + */ + pin_input_mode_e ignitionKeyDigitalPinMode; + /** + * offset 1034 + */ + Gpio ignitionKeyDigitalPin; + /** + * units: Hz + * offset 1036 + */ + int boostPwmFrequency; + /** + * offset 1040 + */ + launchActivationMode_e launchActivationMode; + /** + * offset 1041 + */ + antiLagActivationMode_e antiLagActivationMode; + /** + * need 4 byte alignment + * units: units + * offset 1042 + */ + uint8_t alignmentFill_at_1042[2]; + /** + * Launch disabled above this speed if setting is above zero + * units: Kph + * offset 1044 + */ + int launchSpeedThreshold; + /** + * Range from Launch RPM for Timing Retard to activate + * units: RPM + * offset 1048 + */ + int launchTimingRpmRange; + /** + * Spark Skip Transition Target + * units: % + * offset 1052 + */ + int launchSparkSkipPercent; + /** + * Duty Cycle for the Boost Solenoid + * units: % + * offset 1056 + */ + int launchBoostDuty; + /** + * Range from Launch RPM to activate Hard Cut + * units: RPM + * offset 1060 + */ + int hardCutRpmRange; + /** + * offset 1064 + */ + float turbochargerFilter; + /** + * offset 1068 + */ + int launchTpsThreshold; + /** + * offset 1072 + */ + float launchActivateDelay; + /** + * offset 1076 + */ + stft_s stft; + /** + * offset 1100 + */ + dc_io stepperDcIo[DC_PER_STEPPER]; + /** + * For example, BMW, GM or Chevrolet + * REQUIRED for rusEFI Online + * offset 1116 + */ + vehicle_info_t engineMake; + /** + * For example, LS1 or NB2 + * REQUIRED for rusEFI Online + * offset 1148 + */ + vehicle_info_t engineCode; + /** + * For example, Hunchback or Orange Miata + * Vehicle name has to be unique between your vehicles. + * REQUIRED for rusEFI Online + * offset 1180 + */ + vehicle_info_t vehicleName; + /** + * offset 1212 + */ + output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT]; + /** + * offset 1224 + */ + dc_function_e etbFunctions[ETB_COUNT]; + /** + * offset 1226 + */ + spi_device_e drv8860spiDevice; + /** + * need 4 byte alignment + * units: units + * offset 1227 + */ + uint8_t alignmentFill_at_1227[1]; + /** + * offset 1228 + */ + Gpio drv8860_cs; + /** + * offset 1230 + */ + pin_output_mode_e drv8860_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1231 + */ + uint8_t alignmentFill_at_1231[1]; + /** + * offset 1232 + */ + Gpio drv8860_miso; + /** + * units: volt + * offset 1234 + */ + scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; + /** + * offset 1250 + */ + output_pin_e luaOutputPins[LUA_PWM_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 1266 + */ + uint8_t alignmentFill_at_1266[2]; + /** + * Angle between cam sensor and VVT zero position + * set vvt_offset X + * units: value + * offset 1268 + */ + float vvtOffsets[CAM_INPUTS_COUNT]; + /** + * offset 1284 + */ + vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT]; + /** + * offset 1316 + */ + gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; + /** + * units: ADC + * offset 1380 + */ + uint16_t tps2SecondaryMin; + /** + * units: ADC + * offset 1382 + */ + uint16_t tps2SecondaryMax; + /** + * Select which bus the wideband controller is attached to. + offset 1384 bit 0 */ + bool widebandOnSecondBus : 1 {}; + /** + * Enables lambda sensor closed loop feedback for fuelling. + offset 1384 bit 1 */ + bool fuelClosedLoopCorrectionEnabled : 1 {}; + /** + * On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines. + offset 1384 bit 2 */ + bool oddFireEngine : 1 {}; + /** + offset 1384 bit 3 */ + bool boardUseTachPullUp : 1 {}; + /** + offset 1384 bit 4 */ + bool boardUseTempPullUp : 1 {}; + /** + offset 1384 bit 5 */ + bool yesUnderstandLocking : 1 {}; + /** + * Sometimes we have a performance issue while printing error + offset 1384 bit 6 */ + bool silentTriggerError : 1 {}; + /** + offset 1384 bit 7 */ + bool useLinearCltSensor : 1 {}; + /** + * enable can_read/disable can_read + offset 1384 bit 8 */ + bool canReadEnabled : 1 {}; + /** + * enable can_write/disable can_write. See also can1ListenMode + offset 1384 bit 9 */ + bool canWriteEnabled : 1 {}; + /** + offset 1384 bit 10 */ + bool useLinearIatSensor : 1 {}; + /** + offset 1384 bit 11 */ + bool boardUse2stepPullDown : 1 {}; + /** + * Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50% + offset 1384 bit 12 */ + bool tachPulseDurationAsDutyCycle : 1 {}; + /** + * This enables smart alternator control and activates the extra alternator settings. + offset 1384 bit 13 */ + bool isAlternatorControlEnabled : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the primary engine speed sensor. + offset 1384 bit 14 */ + bool invertPrimaryTriggerSignal : 1 {}; + /** + * https://wiki.rusefi.com/Trigger-Configuration-Guide + * This setting flips the signal from the secondary engine speed sensor. + offset 1384 bit 15 */ + bool invertSecondaryTriggerSignal : 1 {}; + /** + offset 1384 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 1384 bit 17 */ + bool cutSparkOnHardLimit : 1 {}; + /** + offset 1384 bit 18 */ + bool launchFuelCutEnable : 1 {}; + /** + * This is the Cut Mode normally used + offset 1384 bit 19 */ + bool launchSparkCutEnable : 1 {}; + /** + offset 1384 bit 20 */ + bool boardUseCrankPullUp : 1 {}; + /** + offset 1384 bit 21 */ + bool boardUseCamPullDown : 1 {}; + /** + offset 1384 bit 22 */ + bool boardUseCamVrPullUp : 1 {}; + /** + offset 1384 bit 23 */ + bool boardUseD2PullDown : 1 {}; + /** + offset 1384 bit 24 */ + bool boardUseD3PullDown : 1 {}; + /** + offset 1384 bit 25 */ + bool boardUseD4PullDown : 1 {}; + /** + offset 1384 bit 26 */ + bool boardUseD5PullDown : 1 {}; + /** + * Are you a developer troubleshooting TS over CAN ISO/TP? + offset 1384 bit 27 */ + bool verboseIsoTp : 1 {}; + /** + offset 1384 bit 28 */ + bool engineSnifferFocusOnInputs : 1 {}; + /** + offset 1384 bit 29 */ + bool launchActivateInverted : 1 {}; + /** + offset 1384 bit 30 */ + bool twoStroke : 1 {}; + /** + * Where is your primary skipped wheel located? + offset 1384 bit 31 */ + bool skippedWheelOnCam : 1 {}; + /** + * offset 1388 + */ + adc_channel_e hipOutputChannel; + /** + * need 4 byte alignment + * units: units + * offset 1389 + */ + uint8_t alignmentFill_at_1389[1]; + /** + * A/C button input + * offset 1390 + */ + switch_input_pin_e acSwitch; + /** + * offset 1392 + */ + adc_channel_e vRefAdcChannel; + /** + * Expected neutral position + * units: % + * offset 1393 + */ + uint8_t etbNeutralPosition; + /** + * See also idleRpmPid + * offset 1394 + */ + idle_mode_e idleMode; + /** + * need 4 byte alignment + * units: units + * offset 1395 + */ + uint8_t alignmentFill_at_1395[1]; + /** + offset 1396 bit 0 */ + bool isInjectionEnabled : 1 {}; + /** + offset 1396 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 1396 bit 2 */ + bool isCylinderCleanupEnabled : 1 {}; + /** + * Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values? + offset 1396 bit 3 */ + bool complexWallModel : 1 {}; + /** + * RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution + offset 1396 bit 4 */ + bool alwaysInstantRpm : 1 {}; + /** + offset 1396 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 1396 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 1396 bit 7 */ + bool useSeparateAdvanceForIdle : 1 {}; + /** + offset 1396 bit 8 */ + bool isWaveAnalyzerEnabled : 1 {}; + /** + * This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling. + offset 1396 bit 9 */ + bool useSeparateVeForIdle : 1 {}; + /** + * Verbose info in console below engineSnifferRpmThreshold + * enable trigger_details + offset 1396 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 1396 bit 11 */ + bool isManualSpinningMode : 1 {}; + /** + offset 1396 bit 12 */ + bool cutFuelInAcr : 1 {}; + /** + offset 1396 bit 13 */ + bool hondaK : 1 {}; + /** + * This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark). + offset 1396 bit 14 */ + bool twoWireBatchIgnition : 1 {}; + /** + offset 1396 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 1396 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 1396 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 1396 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 1396 bit 19 */ + bool useIacPidMultTable : 1 {}; + /** + offset 1396 bit 20 */ + bool isBoostControlEnabled : 1 {}; + /** + * Interpolates the Ignition Retard from 0 to 100% within the RPM Range + offset 1396 bit 21 */ + bool launchSmoothRetard : 1 {}; + /** + * Some engines are OK running semi-random sequential while other engine require phase synchronization + offset 1396 bit 22 */ + bool isPhaseSyncRequiredForIgnition : 1 {}; + /** + * If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value. + offset 1396 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 1396 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 1396 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 1396 bit 26 */ + bool invertVvtControlExhaust : 1 {}; + /** + offset 1396 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 1396 bit 28 */ + bool sdTriggerLog : 1 {}; + /** + offset 1396 bit 29 */ + bool ALSActivateInverted : 1 {}; + /** + offset 1396 bit 30 */ + bool stepper_dc_use_two_wires : 1 {}; + /** + offset 1396 bit 31 */ + bool watchOutForLinearTime : 1 {}; + /** + * units: count + * offset 1400 + */ + uint32_t engineChartSize; + /** + * units: mult + * offset 1404 + */ + float turboSpeedSensorMultiplier; + /** + * offset 1408 + */ + Gpio camInputsDebug[CAM_INPUTS_COUNT]; + /** + * Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling. + * units: RPM + * offset 1416 + */ + int16_t acIdleRpmTarget; + /** + * set warningPeriod X + * units: seconds + * offset 1418 + */ + int16_t warningPeriod; + /** + * units: angle + * offset 1420 + */ + float knockDetectionWindowStart; + /** + * units: angle + * offset 1424 + */ + float knockDetectionWindowEnd; + /** + * units: ms + * offset 1428 + */ + float idleStepperReactionTime; + /** + * units: count + * offset 1432 + */ + int idleStepperTotalSteps; + /** + * TODO: finish this #413 + * units: sec + * offset 1436 + */ + 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. + * units: index + * offset 1440 + */ + int mapAveragingSchedulingAtIndex; + /** + * Duration in ms or duty cycle depending on selected mode + * offset 1444 + */ + float tachPulseDuractionMs; + /** + * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. + * units: Seconds + * offset 1448 + */ + float wwaeTau; + /** + * offset 1452 + */ + pid_s alternatorControl; + /** + * offset 1472 + */ + pid_s etb; + /** + * offset 1492 + */ + Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; + /** + * RPM range above upper limit for extra air taper + * units: RPM + * offset 1496 + */ + int16_t airTaperRpmRange; + /** + * offset 1498 + */ + brain_input_pin_e turboSpeedSensorInputPin; + /** + * Closed throttle#2. todo: extract these two fields into a structure + * See also tps2_1AdcChannel + * set tps2_min X + * units: ADC + * offset 1500 + */ + int16_t tps2Min; + /** + * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! + * See also tps1_1AdcChannel + * set tps2_max X + * units: ADC + * offset 1502 + */ + int16_t tps2Max; + /** + * See also startStopButtonPin + * offset 1504 + */ + output_pin_e starterControlPin; + /** + * offset 1506 + */ + pin_input_mode_e startStopButtonMode; + /** + * need 4 byte alignment + * units: units + * offset 1507 + */ + uint8_t alignmentFill_at_1507[1]; + /** + * offset 1508 + */ + Gpio mc33816_flag0; + /** + * units: Pulse + * offset 1510 + */ + uint8_t tachPulsePerRev; + /** + * need 4 byte alignment + * units: units + * offset 1511 + */ + uint8_t alignmentFill_at_1511[1]; + /** + * kPa value which is too low to be true + * units: kPa + * offset 1512 + */ + float mapErrorDetectionTooLow; + /** + * kPa value which is too high to be true + * units: kPa + * offset 1516 + */ + float mapErrorDetectionTooHigh; + /** + * How long to wait for the spark to fire before recharging the coil for another spark. + * units: ms + * offset 1520 + */ + scaled_channel multisparkSparkDuration; + /** + * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. + * units: ms + * offset 1522 + */ + scaled_channel multisparkDwell; + /** + * See cltIdleRpmBins + * offset 1524 + */ + 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. + * units: Fraction + * offset 1544 + */ + float wwaeBeta; + /** + * See also EFI_CONSOLE_RX_BRAIN_PIN + * offset 1548 + */ + Gpio binarySerialTxPin; + /** + * offset 1550 + */ + Gpio binarySerialRxPin; + /** + * offset 1552 + */ + Gpio auxValves[AUX_DIGITAL_VALVE_COUNT]; + /** + * offset 1556 + */ + switch_input_pin_e tcuUpshiftButtonPin; + /** + * offset 1558 + */ + switch_input_pin_e tcuDownshiftButtonPin; + /** + * units: voltage + * offset 1560 + */ + float throttlePedalUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1564 + */ + float throttlePedalWOTVoltage; + /** + * on IGN voltage detection turn fuel pump on to build fuel pressure + * units: seconds + * offset 1568 + */ + int16_t startUpFuelPumpDuration; + /** + * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation + * units: RPM + * offset 1570 + */ + int16_t idlePidRpmDeadZone; + /** + * This is the target battery voltage the alternator PID control will attempt to maintain + * units: Volts + * offset 1572 + */ + float targetVBatt; + /** + * See Over/Undervoltage Shutdown/Retry bit in documentation + offset 1576 bit 0 */ + bool mc33810DisableRecoveryMode : 1 {}; + /** + offset 1576 bit 1 */ + bool mc33810Gpgd0Mode : 1 {}; + /** + offset 1576 bit 2 */ + bool mc33810Gpgd1Mode : 1 {}; + /** + offset 1576 bit 3 */ + bool mc33810Gpgd2Mode : 1 {}; + /** + offset 1576 bit 4 */ + bool mc33810Gpgd3Mode : 1 {}; + /** + offset 1576 bit 5 */ + bool enableExtendedCanBroadcast : 1 {}; + /** + offset 1576 bit 6 */ + bool luaCanRxWorkaround : 1 {}; + /** + offset 1576 bit 7 */ + bool flexSensorInverted : 1 {}; + /** + offset 1576 bit 8 */ + bool useHardSkipInTraction : 1 {}; + /** + offset 1576 bit 9 */ + bool unusedBit_495_9 : 1 {}; + /** + offset 1576 bit 10 */ + bool unusedBit_495_10 : 1 {}; + /** + offset 1576 bit 11 */ + bool useAuxSpeedForSlipRatio : 1 {}; + /** + * VSS and auxSpeed1 or auxSpeed1 with auxSpeed2? + offset 1576 bit 12 */ + bool useVssAsSecondWheelSpeed : 1 {}; + /** + offset 1576 bit 13 */ + bool is_enabled_spi_5 : 1 {}; + /** + offset 1576 bit 14 */ + bool is_enabled_spi_6 : 1 {}; + /** + offset 1576 bit 15 */ + bool unusedBit_503_15 : 1 {}; + /** + offset 1576 bit 16 */ + bool unusedBit_503_16 : 1 {}; + /** + offset 1576 bit 17 */ + bool unusedBit_503_17 : 1 {}; + /** + offset 1576 bit 18 */ + bool unusedBit_511_18 : 1 {}; + /** + offset 1576 bit 19 */ + bool unusedBit_511_19 : 1 {}; + /** + offset 1576 bit 20 */ + bool unusedBit_511_20 : 1 {}; + /** + offset 1576 bit 21 */ + bool unusedBit_511_21 : 1 {}; + /** + offset 1576 bit 22 */ + bool unusedBit_511_22 : 1 {}; + /** + offset 1576 bit 23 */ + bool unusedBit_511_23 : 1 {}; + /** + offset 1576 bit 24 */ + bool unusedBit_511_24 : 1 {}; + /** + offset 1576 bit 25 */ + bool unusedBit_511_25 : 1 {}; + /** + offset 1576 bit 26 */ + bool unusedBit_511_26 : 1 {}; + /** + offset 1576 bit 27 */ + bool unusedBit_511_27 : 1 {}; + /** + offset 1576 bit 28 */ + bool unusedBit_511_28 : 1 {}; + /** + offset 1576 bit 29 */ + bool unusedBit_511_29 : 1 {}; + /** + offset 1576 bit 30 */ + bool unusedBit_511_30 : 1 {}; + /** + offset 1576 bit 31 */ + bool unusedBit_511_31 : 1 {}; + /** + * 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. + * units: cycles + * offset 1580 + */ + int16_t afterCrankingIACtaperDuration; + /** + * IAC Value added when coasting and transitioning into idle. + * units: percent + * offset 1582 + */ + int16_t iacByTpsTaper; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1584 + */ + Gpio auxSerialTxPin; + /** + * Auxiliary sensor serial, not to be confused with secondary calibration serial + * offset 1586 + */ + Gpio auxSerialRxPin; + /** + * offset 1588 + */ + Gpio accelerometerCsPin; + /** + * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. + * units: sec + * offset 1590 + */ + scaled_channel tpsAccelLookback; + /** + * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1591 + */ + uint8_t coastingFuelCutVssLow; + /** + * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. + * units: kph + * offset 1592 + */ + 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. + * units: sec + * offset 1593 + */ + scaled_channel noFuelTrimAfterDfcoTime; + /** + * need 4 byte alignment + * units: units + * offset 1594 + */ + uint8_t alignmentFill_at_1594[2]; + /** + * 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. + * units: roc + * offset 1596 + */ + float tpsAccelEnrichmentThreshold; + /** + * offset 1600 + */ + brain_input_pin_e auxSpeedSensorInputPin[AUX_SPEED_SENSOR_COUNT]; + /** + * offset 1604 + */ + uint8_t totalGearsCount; + /** + * Sets what part of injection's is controlled by the injection phase table. + * offset 1605 + */ + InjectionTimingMode injectionTimingMode; + /** + * See http://rusefi.com/s/debugmode + * offset 1606 + */ + debug_mode_e debugMode; + /** + * Additional idle % when fan #1 is active + * units: % + * offset 1607 + */ + uint8_t fan1ExtraIdle; + /** + * Band rate for primary TTL + * units: BPs + * offset 1608 + */ + uint32_t uartConsoleSerialSpeed; + /** + * For decel we simply multiply delta of TPS and tFor decel we do not use table?! + * units: roc + * offset 1612 + */ + float tpsDecelEnleanmentThreshold; + /** + * Magic multiplier, we multiply delta of TPS and get fuel squirt duration + * units: coeff + * offset 1616 + */ + float tpsDecelEnleanmentMultiplier; + /** + * units: BPs + * offset 1620 + */ + uint32_t auxSerialSpeed; + /** + * units: voltage + * offset 1624 + */ + float throttlePedalSecondaryUpVoltage; + /** + * Pedal in the floor + * units: voltage + * offset 1628 + */ + float throttlePedalSecondaryWOTVoltage; + /** + * set can_baudrate + * offset 1632 + */ + 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 1633 + */ + ve_override_e veOverrideMode; + /** + * offset 1634 + */ + 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 1635 + */ + load_override_e afrOverrideMode; + /** + * units: A + * offset 1636 + */ + scaled_channel mc33_hpfp_i_peak; + /** + * units: A + * offset 1637 + */ + scaled_channel mc33_hpfp_i_hold; + /** + * How long to deactivate power when hold current is reached before applying power again + * units: us + * offset 1638 + */ + uint8_t mc33_hpfp_i_hold_off; + /** + * Maximum amount of time the solenoid can be active before assuming a programming error + * units: ms + * offset 1639 + */ + uint8_t mc33_hpfp_max_hold; + /** + * Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards) + offset 1640 bit 0 */ + bool stepperDcInvertedPins : 1 {}; + /** + * Allow OpenBLT on Primary CAN + offset 1640 bit 1 */ + bool canOpenBLT : 1 {}; + /** + * Allow OpenBLT on Secondary CAN + offset 1640 bit 2 */ + bool can2OpenBLT : 1 {}; + /** + * Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s). + offset 1640 bit 3 */ + bool injectorFlowAsMassFlow : 1 {}; + /** + offset 1640 bit 4 */ + bool boardUseCanTerminator : 1 {}; + /** + offset 1640 bit 5 */ + bool kLineDoHondaSend : 1 {}; + /** + * ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled + offset 1640 bit 6 */ + bool can1ListenMode : 1 {}; + /** + offset 1640 bit 7 */ + bool can2ListenMode : 1 {}; + /** + offset 1640 bit 8 */ + bool unusedBit_563_8 : 1 {}; + /** + offset 1640 bit 9 */ + bool unusedBit_563_9 : 1 {}; + /** + offset 1640 bit 10 */ + bool unusedBit_563_10 : 1 {}; + /** + offset 1640 bit 11 */ + bool unusedBit_563_11 : 1 {}; + /** + offset 1640 bit 12 */ + bool unusedBit_563_12 : 1 {}; + /** + offset 1640 bit 13 */ + bool unusedBit_563_13 : 1 {}; + /** + offset 1640 bit 14 */ + bool unusedBit_563_14 : 1 {}; + /** + offset 1640 bit 15 */ + bool unusedBit_563_15 : 1 {}; + /** + offset 1640 bit 16 */ + bool unusedBit_563_16 : 1 {}; + /** + offset 1640 bit 17 */ + bool unusedBit_563_17 : 1 {}; + /** + offset 1640 bit 18 */ + bool unusedBit_563_18 : 1 {}; + /** + offset 1640 bit 19 */ + bool unusedBit_563_19 : 1 {}; + /** + offset 1640 bit 20 */ + bool unusedBit_563_20 : 1 {}; + /** + offset 1640 bit 21 */ + bool unusedBit_563_21 : 1 {}; + /** + offset 1640 bit 22 */ + bool unusedBit_563_22 : 1 {}; + /** + offset 1640 bit 23 */ + bool unusedBit_563_23 : 1 {}; + /** + offset 1640 bit 24 */ + bool unusedBit_563_24 : 1 {}; + /** + offset 1640 bit 25 */ + bool unusedBit_563_25 : 1 {}; + /** + offset 1640 bit 26 */ + bool unusedBit_563_26 : 1 {}; + /** + offset 1640 bit 27 */ + bool unusedBit_563_27 : 1 {}; + /** + offset 1640 bit 28 */ + bool unusedBit_563_28 : 1 {}; + /** + offset 1640 bit 29 */ + bool unusedBit_563_29 : 1 {}; + /** + offset 1640 bit 30 */ + bool unusedBit_563_30 : 1 {}; + /** + offset 1640 bit 31 */ + bool unusedBit_563_31 : 1 {}; + /** + * offset 1644 + */ + uint8_t camDecoder2jzPosition; + /** + * offset 1645 + */ + mc33810maxDwellTimer_e mc33810maxDwellTimer; + /** + * Duration of each test pulse + * units: ms + * offset 1646 + */ + scaled_channel benchTestOnTime; + /** + * units: % + * offset 1648 + */ + uint8_t lambdaProtectionRestoreTps; + /** + * units: % + * offset 1649 + */ + scaled_channel lambdaProtectionRestoreLoad; + /** + * offset 1650 + */ + pin_input_mode_e launchActivatePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1651 + */ + uint8_t alignmentFill_at_1651[1]; + /** + * set_can2_tx_pin X + * offset 1652 + */ + Gpio can2TxPin; + /** + * set_can2_rx_pin X + * offset 1654 + */ + Gpio can2RxPin; + /** + * offset 1656 + */ + pin_output_mode_e starterControlPinMode; + /** + * offset 1657 + */ + 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 1658 + */ + load_override_e ignOverrideMode; + /** + * Select which fuel pressure sensor measures the pressure of the fuel at your injectors. + * offset 1659 + */ + injector_pressure_type_e injectorPressureType; + /** + * offset 1660 + */ + output_pin_e hpfpValvePin; + /** + * offset 1662 + */ + pin_output_mode_e hpfpValvePinMode; + /** + * need 4 byte alignment + * units: units + * offset 1663 + */ + uint8_t alignmentFill_at_1663[1]; + /** + * MAP value above which fuel is cut in case of overboost. + * Set to 0 to disable overboost cut. + * units: kPa (absolute) + * offset 1664 + */ + float boostCutPressure; + /** + * units: kg/h + * offset 1668 + */ + scaled_channel tchargeBins[16]; + /** + * units: ratio + * offset 1684 + */ + scaled_channel tchargeValues[16]; + /** + * Fixed timing, useful for TDC testing + * units: deg + * offset 1700 + */ + float fixedTiming; + /** + * MAP voltage for low point + * units: v + * offset 1704 + */ + float mapLowValueVoltage; + /** + * MAP voltage for low point + * units: v + * offset 1708 + */ + float mapHighValueVoltage; + /** + * EGO value correction + * units: value + * offset 1712 + */ + float egoValueShift; + /** + * VVT output solenoid pin for this cam + * offset 1716 + */ + output_pin_e vvtPins[CAM_INPUTS_COUNT]; + /** + * offset 1724 + */ + pin_output_mode_e sdCardCsPinMode; + /** + * need 4 byte alignment + * units: units + * offset 1725 + */ + uint8_t alignmentFill_at_1725[3]; + /** + * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. + * units: percent + * offset 1728 + */ + int crankingIACposition; + /** + * offset 1732 + */ + float tChargeMinRpmMinTps; + /** + * offset 1736 + */ + float tChargeMinRpmMaxTps; + /** + * offset 1740 + */ + float tChargeMaxRpmMinTps; + /** + * offset 1744 + */ + float tChargeMaxRpmMaxTps; + /** + * offset 1748 + */ + pwm_freq_t vvtOutputFrequency; + /** + * Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint. + * units: deg BTDC + * offset 1750 + */ + int8_t minimumIgnitionTiming; + /** + * Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC + * units: deg BTDC + * offset 1751 + */ + int8_t maximumIgnitionTiming; + /** + * units: Hz + * offset 1752 + */ + int alternatorPwmFrequency; + /** + * set vvt_mode X + * offset 1756 + */ + vvt_mode_e vvtMode[CAMS_PER_BANK]; + /** + * Additional idle % when fan #2 is active + * units: % + * offset 1758 + */ + uint8_t fan2ExtraIdle; + /** + * Delay to allow fuel pressure to build before firing the priming pulse. + * units: sec + * offset 1759 + */ + scaled_channel primingDelay; + /** + * offset 1760 + */ + adc_channel_e auxAnalogInputs[LUA_ANALOG_INPUT_COUNT]; + /** + * offset 1768 + */ + output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT]; + /** + * offset 1792 + */ + tle8888_mode_e tle8888mode; + /** + * offset 1793 + */ + pin_output_mode_e accelerometerCsPinMode; + /** + * 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 1794 + */ + injector_compensation_mode_e injectorCompensationMode; + /** + * offset 1795 + */ + 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. + * units: kPa + * offset 1796 + */ + float fuelReferencePressure; + /** + * units: mult + * offset 1800 + */ + float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; + /** + * units: count + * offset 1944 + */ + float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; + /** + * units: C + * offset 1968 + */ + float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; + /** + * offset 1992 + */ + ThermistorConf auxTempSensor1; + /** + * offset 2024 + */ + ThermistorConf auxTempSensor2; + /** + * units: Deg + * offset 2056 + */ + int16_t knockSamplingDuration; + /** + * units: Hz + * offset 2058 + */ + int16_t etbFreq; + /** + * offset 2060 + */ + pid_s etbWastegatePid; + /** + * For micro-stepping, make sure that PWM frequency (etbFreq) is high enough + * offset 2080 + */ + stepper_num_micro_steps_e stepperNumMicroSteps; + /** + * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) + * units: % + * offset 2081 + */ + uint8_t stepperMinDutyCycle; + /** + * Use to limit the max.current through the stepper motor (100% = no limit) + * units: % + * offset 2082 + */ + uint8_t stepperMaxDutyCycle; + /** + * offset 2083 + */ + spi_device_e sdCardSpiDevice; + /** + * per-cylinder ignition and fueling timing correction for uneven engines + * units: deg + * offset 2084 + */ + angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; + /** + * units: seconds + * offset 2132 + */ + float idlePidActivationTime; + /** + * offset 2136 + */ + pin_mode_e spi1SckMode; + /** + * Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc. + * offset 2137 + */ + pin_mode_e spi1MosiMode; + /** + * offset 2138 + */ + pin_mode_e spi1MisoMode; + /** + * offset 2139 + */ + pin_mode_e spi2SckMode; + /** + * offset 2140 + */ + pin_mode_e spi2MosiMode; + /** + * offset 2141 + */ + pin_mode_e spi2MisoMode; + /** + * offset 2142 + */ + pin_mode_e spi3SckMode; + /** + * offset 2143 + */ + pin_mode_e spi3MosiMode; + /** + * offset 2144 + */ + pin_mode_e spi3MisoMode; + /** + * offset 2145 + */ + pin_output_mode_e stepperEnablePinMode; + /** + * ResetB + * offset 2146 + */ + Gpio mc33816_rstb; + /** + * offset 2148 + */ + Gpio mc33816_driven; + /** + * Brake pedal switch + * offset 2150 + */ + switch_input_pin_e brakePedalPin; + /** + * offset 2152 + */ + pin_input_mode_e brakePedalPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2153 + */ + uint8_t alignmentFill_at_2153[3]; + /** + * VVT output PID + * TODO: rename to vvtPid + * offset 2156 + */ + pid_s auxPid[CAMS_PER_BANK]; + /** + * offset 2196 + */ + float injectorCorrectionPolynomial[8]; + /** + * units: C + * offset 2228 + */ + int8_t primeBins[PRIME_CURVE_COUNT]; + /** + * offset 2236 + */ + linear_sensor_s oilPressure; + /** + * offset 2256 + */ + spi_device_e accelerometerSpiDevice; + /** + * need 4 byte alignment + * units: units + * offset 2257 + */ + uint8_t alignmentFill_at_2257[1]; + /** + * offset 2258 + */ + output_pin_e fan2Pin; + /** + * Cooling fan turn-on temperature threshold, in Celsius + * units: deg C + * offset 2260 + */ + uint8_t fan2OnTemperature; + /** + * Cooling fan turn-off temperature threshold, in Celsius + * units: deg C + * offset 2261 + */ + uint8_t fan2OffTemperature; + /** + * offset 2262 + */ + Gpio stepperEnablePin; + /** + * offset 2264 + */ + Gpio tle8888_cs; + /** + * offset 2266 + */ + pin_output_mode_e tle8888_csPinMode; + /** + * need 4 byte alignment + * units: units + * offset 2267 + */ + uint8_t alignmentFill_at_2267[1]; + /** + * offset 2268 + */ + Gpio mc33816_cs; + /** + * need 4 byte alignment + * units: units + * offset 2270 + */ + uint8_t alignmentFill_at_2270[2]; + /** + * units: hz + * offset 2272 + */ + float auxFrequencyFilter; + /** + * units: RPM + * offset 2276 + */ + int16_t vvtControlMinRpm; + /** + * offset 2278 + */ + sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; + /** + * units: % + * offset 2280 + */ + int8_t launchFuelAdderPercent; + /** + * Time required to detect a stuck throttle. + * units: sec + * offset 2281 + */ + scaled_channel etbJamTimeout; + /** + * By the way ETB PID runs at 500hz, length in 1/500 of second here. + * offset 2282 + */ + uint16_t etbExpAverageLength; + /** + * offset 2284 + */ + float etbDutyThreshold; + /** + * This sets the RPM above which fuel cut is active. + * units: rpm + * offset 2288 + */ + int16_t coastingFuelCutRpmHigh; + /** + * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle + * units: rpm + * offset 2290 + */ + int16_t coastingFuelCutRpmLow; + /** + * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. + * units: % + * offset 2292 + */ + int16_t coastingFuelCutTps; + /** + * Fuel cutoff is disabled when the engine is cold. + * units: C + * offset 2294 + */ + int16_t coastingFuelCutClt; + /** + * Increases PID reaction for RPM stoichRatioPrimary; + /** + * iTerm max value + * offset 2710 + */ + 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. + * units: % + * offset 2712 + */ + float etbIdleThrottleRange; + /** + * Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor + * offset 2716 + */ + uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; + /** + * units: mg + * offset 2728 + */ + scaled_channel primeValues[PRIME_CURVE_COUNT]; + /** + * Trigger comparator center point voltage + * units: V + * offset 2736 + */ + scaled_channel triggerCompCenterVolt; + /** + * Trigger comparator hysteresis voltage (Min) + * units: V + * offset 2737 + */ + scaled_channel triggerCompHystMin; + /** + * Trigger comparator hysteresis voltage (Max) + * units: V + * offset 2738 + */ + scaled_channel triggerCompHystMax; + /** + * VR-sensor saturation RPM + * units: RPM + * offset 2739 + */ + scaled_channel triggerCompSensorSatRpm; + /** + * units: ratio + * offset 2740 + */ + scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: RPM + * offset 2752 + */ + uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 2758 + */ + int8_t disableFan1AtSpeed; + /** + * offset 2759 + */ + int8_t disableFan2AtSpeed; + /** + * offset 2760 + */ + can_vss_nbc_e canVssNbcType; + /** + * need 4 byte alignment + * units: units + * offset 2762 + */ + uint8_t alignmentFill_at_2762[2]; + /** + * offset 2764 + */ + gppwm_channel gppwm[GPPWM_CHANNELS]; + /** + * Boost Current + * units: mA + * offset 3196 + */ + uint16_t mc33_i_boost; + /** + * Peak Current + * units: mA + * offset 3198 + */ + uint16_t mc33_i_peak; + /** + * Hold Current + * units: mA + * offset 3200 + */ + 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. + * units: us + * offset 3202 + */ + uint16_t mc33_t_max_boost; + /** + * units: us + * offset 3204 + */ + uint16_t mc33_t_peak_off; + /** + * Peak phase duration + * units: us + * offset 3206 + */ + uint16_t mc33_t_peak_tot; + /** + * units: us + * offset 3208 + */ + uint16_t mc33_t_bypass; + /** + * units: us + * offset 3210 + */ + uint16_t mc33_t_hold_off; + /** + * Hold phase duration + * units: us + * offset 3212 + */ + uint16_t mc33_t_hold_tot; + /** + * offset 3214 + */ + pin_input_mode_e tcuUpshiftButtonPinMode; + /** + * offset 3215 + */ + pin_input_mode_e tcuDownshiftButtonPinMode; + /** + * offset 3216 + */ + pin_input_mode_e acSwitchMode; + /** + * offset 3217 + */ + pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; + /** + * Knock sensor output knock detection threshold depending on current RPM. + * units: dB + * offset 3223 + */ + scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; + /** + * need 4 byte alignment + * units: units + * offset 3239 + */ + uint8_t alignmentFill_at_3239[1]; + /** + * units: ratio + * offset 3240 + */ + float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; + /** + * units: ratio + * offset 3312 + */ + 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. + * units: rpm + * offset 3384 + */ + 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... + * units: sec + * offset 3385 + */ + 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. + * units: sec + * offset 3386 + */ + scaled_channel acDelay; + /** + * need 4 byte alignment + * units: units + * offset 3387 + */ + uint8_t alignmentFill_at_3387[1]; + /** + * units: mg + * offset 3388 + */ + scaled_channel fordInjectorSmallPulseBreakPoint; + /** + * units: multiplier + * offset 3390 + */ + scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: % + * offset 3394 + */ + uint8_t etbJamIntegratorLimit; + /** + * units: lobes/cam + * offset 3395 + */ + uint8_t hpfpCamLobes; + /** + * offset 3396 + */ + hpfp_cam_e hpfpCam; + /** + * offset 3397 + */ + uint8_t auxiliarySetting1; + /** + * If the requested activation time is below this angle, don't bother running the pump + * units: deg + * offset 3398 + */ + uint8_t hpfpMinAngle; + /** + * need 4 byte alignment + * units: units + * offset 3399 + */ + uint8_t alignmentFill_at_3399[1]; + /** + * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. + * units: cc + * offset 3400 + */ + 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) + * units: deg + * offset 3402 + */ + uint8_t hpfpActivationAngle; + /** + * offset 3403 + */ + uint8_t issFilterReciprocal; + /** + * units: %/kPa + * offset 3404 + */ + scaled_channel hpfpPidP; + /** + * units: %/kPa/lobe + * offset 3406 + */ + 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. + * units: kPa/s + * offset 3408 + */ + uint16_t hpfpTargetDecay; + /** + * units: % + * offset 3410 + */ + scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: deg + * offset 3426 + */ + scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; + /** + * units: volts + * offset 3442 + */ + uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; + /** + * units: ms + * offset 3450 + */ + scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; + /** + * units: kPa + * offset 3466 + */ + uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; + /** + * units: load + * offset 3666 + */ + scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; + /** + * units: RPM + * offset 3686 + */ + scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; + /** + * units: % + * offset 3696 + */ + int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; + /** + * units: cc/lobe + * offset 3796 + */ + scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; + /** + * units: RPM + * offset 3816 + */ + scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; + /** + * offset 3826 + */ + output_pin_e stepper_raw_output[4]; + /** + * units: ratio + * offset 3834 + */ + scaled_channel gearRatio[TCU_GEAR_COUNT]; + /** + * We need to give engine time to build oil pressure without diverting it to VVT + * units: ms + * offset 3854 + */ + uint16_t vvtActivationDelayMs; + /** + * units: deg C + * offset 3856 + */ + int8_t wwCltBins[WWAE_TABLE_SIZE]; + /** + * offset 3864 + */ + scaled_channel wwTauCltValues[WWAE_TABLE_SIZE]; + /** + * offset 3872 + */ + scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; + /** + * units: kPa + * offset 3880 + */ + int8_t wwMapBins[WWAE_TABLE_SIZE]; + /** + * offset 3888 + */ + scaled_channel wwTauMapValues[WWAE_TABLE_SIZE]; + /** + * offset 3896 + */ + scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; + /** + * units: Nm + * offset 3904 + */ + scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; + /** + * units: RPM + * offset 3940 + */ + uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; + /** + * units: Load + * offset 3952 + */ + uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; + /** + * offset 3964 + */ + GearControllerMode gearControllerMode; + /** + * offset 3965 + */ + TransmissionControllerMode transmissionControllerMode; + /** + * units: deg + * offset 3966 + */ + uint16_t acrDisablePhase; + /** + * offset 3968 + */ + linear_sensor_s auxLinear1; + /** + * offset 3988 + */ + linear_sensor_s auxLinear2; + /** + * offset 4008 + */ + output_pin_e tcu_tcc_onoff_solenoid; + /** + * offset 4010 + */ + pin_output_mode_e tcu_tcc_onoff_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4011 + */ + uint8_t alignmentFill_at_4011[1]; + /** + * offset 4012 + */ + output_pin_e tcu_tcc_pwm_solenoid; + /** + * offset 4014 + */ + pin_output_mode_e tcu_tcc_pwm_solenoid_mode; + /** + * need 4 byte alignment + * units: units + * offset 4015 + */ + uint8_t alignmentFill_at_4015[1]; + /** + * offset 4016 + */ + pwm_freq_t tcu_tcc_pwm_solenoid_freq; + /** + * offset 4018 + */ + output_pin_e tcu_pc_solenoid_pin; + /** + * offset 4020 + */ + pin_output_mode_e tcu_pc_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4021 + */ + uint8_t alignmentFill_at_4021[1]; + /** + * offset 4022 + */ + pwm_freq_t tcu_pc_solenoid_freq; + /** + * offset 4024 + */ + output_pin_e tcu_32_solenoid_pin; + /** + * offset 4026 + */ + pin_output_mode_e tcu_32_solenoid_pin_mode; + /** + * need 4 byte alignment + * units: units + * offset 4027 + */ + uint8_t alignmentFill_at_4027[1]; + /** + * offset 4028 + */ + pwm_freq_t tcu_32_solenoid_freq; + /** + * offset 4030 + */ + output_pin_e acrPin2; + /** + * units: % + * offset 4032 + */ + float etbMinimumPosition; + /** + * offset 4036 + */ + uint16_t tuneHidingKey; + /** + * offset 4038 + */ + vin_number_t vinNumber; + /** + * need 4 byte alignment + * units: units + * offset 4055 + */ + uint8_t alignmentFill_at_4055[1]; + /** + * offset 4056 + */ + uint16_t highSpeedOffsets[HIGH_SPEED_COUNT]; + /** + * offset 4120 + */ + float etbDutyShutdownThreshold; + /** + * offset 4124 + */ + fuel_pressure_sensor_mode_e fuelPressureSensorMode; + /** + * need 4 byte alignment + * units: units + * offset 4125 + */ + uint8_t alignmentFill_at_4125[1]; + /** + * offset 4126 + */ + switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; + /** + * units: RPM + * offset 4142 + */ + scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; + /** + * units: rpm + * offset 4146 + */ + int16_t ALSMinRPM; + /** + * units: rpm + * offset 4148 + */ + int16_t ALSMaxRPM; + /** + * units: sec + * offset 4150 + */ + int16_t ALSMaxDuration; + /** + * units: C + * offset 4152 + */ + int8_t ALSMinCLT; + /** + * units: C + * offset 4153 + */ + int8_t ALSMaxCLT; + /** + * offset 4154 + */ + uint8_t alsMinTimeBetween; + /** + * offset 4155 + */ + uint8_t alsEtbPosition; + /** + * units: % + * offset 4156 + */ + uint8_t acRelayAlternatorDutyAdder; + /** + * offset 4157 + */ + SentEtbType sentEtbType; + /** + * offset 4158 + */ + uint16_t customSentTpsMin; + /** + * units: % + * offset 4160 + */ + int ALSIdleAdd; + /** + * units: % + * offset 4164 + */ + int ALSEtbAdd; + /** + * offset 4168 + */ + float ALSSkipRatio; + /** + * units: % + * offset 4172 + */ + uint8_t ALSMaxDriverThrottleIntent; + /** + * offset 4173 + */ + pin_input_mode_e ALSActivatePinMode; + /** + * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% + * units: % + * offset 4174 + */ + scaled_channel tpsSecondaryMaximum; + /** + * For Toyota ETCS-i, use ~69% + * units: % + * offset 4175 + */ + scaled_channel ppsSecondaryMaximum; + /** + * offset 4176 + */ + pin_input_mode_e luaDigitalInputPinModes[LUA_DIGITAL_INPUT_COUNT]; + /** + * offset 4184 + */ + uint16_t customSentTpsMax; + /** + * offset 4186 + */ + uint16_t kLineBaudRate; + /** + * offset 4188 + */ + CanGpioType canGpioType; + /** + * offset 4189 + */ + UiMode uiMode; + /** + * Crank angle ATDC of first lobe peak + * units: deg + * offset 4190 + */ + int16_t hpfpPeakPos; + /** + * units: us + * offset 4192 + */ + int16_t kLinePeriodUs; + /** + * Window that the correction will be added throughout (example, if rpm limit is 7000, and rpmSoftLimitWindowSize is 200, the corrections activate at 6800RPM, creating a 200rpm window) + * units: RPM + * offset 4194 + */ + scaled_channel rpmSoftLimitWindowSize; + /** + * Degrees of timing REMOVED from actual timing during soft RPM limit window + * units: deg + * offset 4195 + */ + scaled_channel rpmSoftLimitTimingRetard; + /** + * % of fuel ADDED during window + * units: % + * offset 4196 + */ + scaled_channel rpmSoftLimitFuelAdded; + /** + * Hysterisis: if the hard limit is 7200rpm and rpmHardLimitHyst is 200rpm, then when the ECU sees 7200rpm, fuel/ign will cut, and stay cut until 7000rpm (7200-200) is reached + * units: RPM + * offset 4197 + */ + scaled_channel rpmHardLimitHyst; + /** + * Time between bench test pulses + * units: ms + * offset 4198 + */ + scaled_channel benchTestOffTime; + /** + * Hysterisis: if hard cut is 240kpa, and boostCutPressureHyst is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached + * units: kPa (absolute) + * offset 4200 + */ + scaled_channel boostCutPressureHyst; + /** + * Boost duty cycle added by gear + * units: % + * offset 4201 + */ + scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 4211 + */ + uint8_t alignmentFill_at_4211[1]; + /** + * How many test bench pulses do you want + * offset 4212 + */ + uint32_t benchTestCount; + /** + * How long initial IAC adder is held before starting to decay. + * units: seconds + * offset 4216 + */ + scaled_channel iacByTpsHoldTime; + /** + * How long it takes to remove initial IAC adder to return to normal idle. + * units: seconds + * offset 4217 + */ + scaled_channel iacByTpsDecayTime; + /** + * offset 4218 + */ + switch_input_pin_e tcu_rangeInput[RANGE_INPUT_COUNT]; + /** + * offset 4230 + */ + pin_input_mode_e tcu_rangeInputMode[RANGE_INPUT_COUNT]; + /** + * Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead. + * units: ratio + * offset 4236 + */ + scaled_channel canVssScaling; + /** + * need 4 byte alignment + * units: units + * offset 4238 + */ + uint8_t alignmentFill_at_4238[2]; + /** + * offset 4240 + */ + ThermistorConf oilTempSensor; + /** + * offset 4272 + */ + ThermistorConf fuelTempSensor; + /** + * offset 4304 + */ + ThermistorConf ambientTempSensor; + /** + * offset 4336 + */ + ThermistorConf compressorDischargeTemperature; + /** + * Place the sensor before the throttle, but after any turbocharger/supercharger and intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4368 + */ + adc_channel_e throttleInletPressureChannel; + /** + * Place the sensor after the turbocharger/supercharger, but before any intercoolers if fitted. Uses the same calibration as the MAP sensor. + * offset 4369 + */ + adc_channel_e compressorDischargePressureChannel; + /** + * offset 4370 + */ + Gpio dacOutputPins[DAC_OUTPUT_COUNT]; + /** + * offset 4374 + */ + output_pin_e speedometerOutputPin; + /** + * Number of speedometer pulses per kilometer travelled. + * offset 4376 + */ + uint16_t speedometerPulsePerKm; + /** + * offset 4378 + */ + uint8_t simulatorCamPosition[CAM_INPUTS_COUNT]; + /** + * offset 4382 + */ + adc_channel_e ignKeyAdcChannel; + /** + * offset 4383 + */ + pin_mode_e spi6MisoMode; + /** + * units: ratio + * offset 4384 + */ + float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; + /** + * units: ratio + * offset 4400 + */ + float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; + /** + * units: % + * offset 4416 + */ + int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * If injector duty cycle hits this value, instantly cut fuel. + * units: % + * offset 4452 + */ + uint8_t maxInjectorDutyInstant; + /** + * If injector duty cycle hits this value for the specified delay time, cut fuel. + * units: % + * offset 4453 + */ + uint8_t maxInjectorDutySustained; + /** + * Timeout period for duty cycle over the sustained limit to trigger duty cycle protection. + * units: sec + * offset 4454 + */ + scaled_channel maxInjectorDutySustainedTimeout; + /** + * need 4 byte alignment + * units: units + * offset 4455 + */ + uint8_t alignmentFill_at_4455[1]; + /** + * offset 4456 + */ + output_pin_e injectionPinsStage2[MAX_CYLINDER_COUNT]; + /** + * units: Deg + * offset 4480 + */ + int8_t tractionControlTimingDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * units: % + * offset 4516 + */ + int8_t tractionControlIgnitionSkip[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; + /** + * offset 4552 + */ + float auxSpeed1Multiplier; + /** + * offset 4556 + */ + float brakeMeanEffectivePressureDifferential; + /** + * offset 4560 + */ + Gpio spi4mosiPin; + /** + * offset 4562 + */ + Gpio spi4misoPin; + /** + * offset 4564 + */ + Gpio spi4sckPin; + /** + * offset 4566 + */ + Gpio spi5mosiPin; + /** + * offset 4568 + */ + Gpio spi5misoPin; + /** + * offset 4570 + */ + Gpio spi5sckPin; + /** + * offset 4572 + */ + Gpio spi6mosiPin; + /** + * offset 4574 + */ + Gpio spi6misoPin; + /** + * offset 4576 + */ + Gpio spi6sckPin; + /** + * offset 4578 + */ + pin_mode_e spi4SckMode; + /** + * offset 4579 + */ + pin_mode_e spi4MosiMode; + /** + * offset 4580 + */ + pin_mode_e spi4MisoMode; + /** + * offset 4581 + */ + pin_mode_e spi5SckMode; + /** + * offset 4582 + */ + pin_mode_e spi5MosiMode; + /** + * offset 4583 + */ + pin_mode_e spi5MisoMode; + /** + * offset 4584 + */ + pin_mode_e spi6SckMode; + /** + * offset 4585 + */ + pin_mode_e spi6MosiMode; + /** + * units: units + * offset 4586 + */ + uint8_t unusedOftenChangesDuringFirmwareUpdate[120]; + /** + * need 4 byte alignment + * units: units + * offset 4706 + */ + uint8_t alignmentFill_at_4706[2]; +}; +static_assert(sizeof(engine_configuration_s) == 4708); + +// start of cyl_trim_s +struct cyl_trim_s { + /** + * offset 0 + */ + scaled_channel table[TRIM_SIZE][TRIM_SIZE]; +}; +static_assert(sizeof(cyl_trim_s) == 16); + +// start of blend_table_s +struct blend_table_s { + /** + * offset 0 + */ + scaled_channel table[8][8]; + /** + * units: Load + * offset 128 + */ + uint16_t loadBins[8]; + /** + * units: RPM + * offset 144 + */ + uint16_t rpmBins[8]; + /** + * offset 160 + */ + gppwm_channel_e blendParameter; + /** + * offset 161 + */ + gppwm_channel_e yAxisOverride; + /** + * offset 162 + */ + scaled_channel blendBins[8]; + /** + * units: % + * offset 178 + */ + scaled_channel blendValues[8]; + /** + * need 4 byte alignment + * units: units + * offset 186 + */ + uint8_t alignmentFill_at_186[2]; +}; +static_assert(sizeof(blend_table_s) == 188); + +// start of persistent_config_s +struct persistent_config_s { + /** + * offset 0 + */ + engine_configuration_s engineConfiguration; + /** + * target TPS value, 0 to 100% + * TODO: use int8 data date once we template interpolation method + * units: target TPS position + * offset 4708 + */ + float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; + /** + * PWM bias, 0 to 100% + * units: ETB duty cycle bias + * offset 4740 + */ + float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; + /** + * units: % + * offset 4772 + */ + scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; + /** + * units: Load + * offset 4836 + */ + uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; + /** + * units: RPM + * offset 4844 + */ + scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; + /** + * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM + * units: RPM + * offset 4852 + */ + uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; + /** + * units: ms + * offset 4868 + */ + scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; + /** + * CLT-based target RPM for automatic idle controller + * units: C + * offset 4884 + */ + scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; + /** + * See idleRpmPid + * units: RPM + * offset 4900 + */ + scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; + /** + * CLT-based timing correction + * units: C + * offset 4916 + */ + float cltTimingBins[CLT_TIMING_CURVE_SIZE]; + /** + * units: degree + * offset 4948 + */ + float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; + /** + * units: x + * offset 4980 + */ + float scriptCurve1Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5044 + */ + float scriptCurve1[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5108 + */ + float scriptCurve2Bins[SCRIPT_CURVE_16]; + /** + * units: y + * offset 5172 + */ + float scriptCurve2[SCRIPT_CURVE_16]; + /** + * units: x + * offset 5236 + */ + float scriptCurve3Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5268 + */ + float scriptCurve3[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5300 + */ + float scriptCurve4Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5332 + */ + float scriptCurve4[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5364 + */ + float scriptCurve5Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5396 + */ + float scriptCurve5[SCRIPT_CURVE_8]; + /** + * units: x + * offset 5428 + */ + float scriptCurve6Bins[SCRIPT_CURVE_8]; + /** + * units: y + * offset 5460 + */ + float scriptCurve6[SCRIPT_CURVE_8]; + /** + * units: kPa + * offset 5492 + */ + float baroCorrPressureBins[BARO_CORR_SIZE]; + /** + * units: RPM + * offset 5508 + */ + float baroCorrRpmBins[BARO_CORR_SIZE]; + /** + * units: ratio + * offset 5524 + */ + float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; + /** + * Cranking fuel correction coefficient based on TPS + * units: Ratio + * offset 5588 + */ + float crankingTpsCoef[CRANKING_CURVE_SIZE]; + /** + * units: % + * offset 5620 + */ + float crankingTpsBins[CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: RPM + * offset 5652 + */ + uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) + * units: deg + * offset 5660 + */ + scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: RPM + * offset 5668 + */ + scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; + /** + * RPM-based idle position for coasting + * units: % + * offset 5684 + */ + scaled_channel iacCoasting[CLT_CURVE_SIZE]; + /** + * offset 5700 + */ + warning_message_t warning_message; + /** + * units: C + * offset 5820 + */ + float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: Seconds + * offset 5852 + */ + float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; + /** + * units: % + * offset 5884 + */ + float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; + /** + * units: Seconds + * offset 5916 + */ + float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; + /** + * offset 5948 + */ + scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: RPM + * offset 6012 + */ + scaled_channel boostRpmBins[BOOST_RPM_COUNT]; + /** + * offset 6020 + */ + scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; + /** + * units: % + * offset 6084 + */ + uint8_t boostTpsBins[BOOST_LOAD_COUNT]; + /** + * units: % + * offset 6092 + */ + uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; + /** + * units: % + * offset 6156 + */ + uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; + /** + * units: RPM + * offset 6164 + */ + scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: C + * offset 6172 + */ + float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * units: % + * offset 6204 + */ + float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: RPM + * offset 6236 + */ + scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * units: deg + * offset 6244 + */ + float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; + /** + * units: RPM + * offset 6276 + */ + scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; + /** + * units: load + * offset 6280 + */ + uint8_t idleVeLoadBins[IDLE_VE_SIZE]; + /** + * units: % + * offset 6284 + */ + scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; + /** + * offset 6316 + */ + lua_script_t luaScript; + /** + * units: C + * offset 14316 + */ + float cltFuelCorrBins[CLT_CURVE_SIZE]; + /** + * units: ratio + * offset 14380 + */ + float cltFuelCorr[CLT_CURVE_SIZE]; + /** + * units: C + * offset 14444 + */ + float iatFuelCorrBins[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14508 + */ + float iatFuelCorr[IAT_CURVE_SIZE]; + /** + * units: ratio + * offset 14572 + */ + float crankingFuelCoef[CRANKING_CURVE_SIZE]; + /** + * units: C + * offset 14604 + */ + float crankingFuelBins[CRANKING_CURVE_SIZE]; + /** + * units: ratio + * offset 14636 + */ + float crankingCycleCoef[CRANKING_CURVE_SIZE]; + /** + * units: counter + * offset 14668 + */ + float crankingCycleBins[CRANKING_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: C + * offset 14700 + */ + float cltIdleCorrBins[CLT_CURVE_SIZE]; + /** + * CLT-based idle position multiplier for simple manual idle controller + * units: ratio + * offset 14764 + */ + float cltIdleCorr[CLT_CURVE_SIZE]; + /** + * Also known as MAF transfer function. + * kg/hour value. + * By the way 2.081989116 kg/h = 1 ft3/m + * units: kg/hour + * offset 14828 + */ + float mafDecoding[MAF_DECODING_COUNT]; + /** + * units: V + * offset 14956 + */ + float mafDecodingBins[MAF_DECODING_COUNT]; + /** + * units: deg + * offset 15084 + */ + scaled_channel ignitionIatCorrTable[8][8]; + /** + * units: C + * offset 15148 + */ + int8_t ignitionIatCorrTempBins[8]; + /** + * units: Load + * offset 15156 + */ + scaled_channel ignitionIatCorrLoadBins[8]; + /** + * units: deg + * offset 15164 + */ + int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: Load + * offset 15676 + */ + uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 15708 + */ + uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; + /** + * units: onoff + * offset 15740 + */ + uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; + /** + * units: kPa + * offset 15800 + */ + scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: % TPS + * offset 16312 + */ + scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 16344 + */ + uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 16376 + */ + int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16440 + */ + uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16456 + */ + uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 16472 + */ + int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 16536 + */ + uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 16552 + */ + uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: deg + * offset 16568 + */ + scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; + /** + * units: Load + * offset 17080 + */ + uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; + /** + * units: RPM + * offset 17112 + */ + uint16_t ignitionRpmBins[IGN_RPM_COUNT]; + /** + * units: % + * offset 17144 + */ + scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * units: kPa + * offset 17656 + */ + uint16_t veLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 17688 + */ + uint16_t veRpmBins[FUEL_RPM_COUNT]; + /** + * units: lambda + * offset 17720 + */ + scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; + /** + * offset 17976 + */ + uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; + /** + * units: RPM + * offset 18008 + */ + uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; + /** + * units: value + * offset 18040 + */ + float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; + /** + * units: from + * offset 18296 + */ + float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: to + * offset 18328 + */ + float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; + /** + * units: value + * offset 18360 + */ + float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18616 + */ + int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18632 + */ + int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18648 + */ + uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18712 + */ + int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18728 + */ + int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18744 + */ + uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; + /** + * units: L + * offset 18808 + */ + int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18824 + */ + int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; + /** + * units: value + * offset 18840 + */ + uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; + /** + * units: L + * offset 18920 + */ + int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; + /** + * units: RPM + * offset 18936 + */ + int16_t scriptTable4RpmBins[TABLE_4_RPM]; + /** + * offset 18956 + */ + uint16_t ignTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 18964 + */ + uint16_t ignTrimRpmBins[TRIM_SIZE]; + /** + * offset 18972 + */ + cyl_trim_s ignTrims[12]; + /** + * offset 19164 + */ + uint16_t fuelTrimLoadBins[TRIM_SIZE]; + /** + * units: rpm + * offset 19172 + */ + uint16_t fuelTrimRpmBins[TRIM_SIZE]; + /** + * offset 19180 + */ + cyl_trim_s fuelTrims[12]; + /** + * units: ratio + * offset 19372 + */ + scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; + /** + * units: Airmass + * offset 19388 + */ + scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19396 + */ + uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19404 + */ + uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19412 + */ + uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19420 + */ + uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19428 + */ + uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19436 + */ + uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19444 + */ + uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19452 + */ + uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19460 + */ + uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19468 + */ + uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19476 + */ + uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; + /** + * units: % + * offset 19484 + */ + uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; + /** + * units: TPS + * offset 19492 + */ + uint8_t tcu_tccTpsBins[8]; + /** + * units: MPH + * offset 19500 + */ + uint8_t tcu_tccLockSpeed[8]; + /** + * units: MPH + * offset 19508 + */ + uint8_t tcu_tccUnlockSpeed[8]; + /** + * units: KPH + * offset 19516 + */ + uint8_t tcu_32SpeedBins[8]; + /** + * units: % + * offset 19524 + */ + uint8_t tcu_32Vals[8]; + /** + * units: % + * offset 19532 + */ + scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; + /** + * units: % + * offset 19568 + */ + uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; + /** + * units: RPM + * offset 19574 + */ + scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; + /** + * units: deg + * offset 19580 + */ + scaled_channel maxKnockRetardTable[6][6]; + /** + * units: % + * offset 19616 + */ + uint8_t maxKnockRetardLoadBins[6]; + /** + * units: RPM + * offset 19622 + */ + scaled_channel maxKnockRetardRpmBins[6]; + /** + * units: deg + * offset 19628 + */ + scaled_channel ALSTimingRetardTable[4][4]; + /** + * units: TPS + * offset 19660 + */ + uint16_t alsIgnRetardLoadBins[4]; + /** + * units: RPM + * offset 19668 + */ + uint16_t alsIgnRetardrpmBins[4]; + /** + * units: percent + * offset 19676 + */ + scaled_channel ALSFuelAdjustment[4][4]; + /** + * units: TPS + * offset 19708 + */ + uint16_t alsFuelAdjustmentLoadBins[4]; + /** + * units: RPM + * offset 19716 + */ + uint16_t alsFuelAdjustmentrpmBins[4]; + /** + * units: ratio + * offset 19724 + */ + scaled_channel ALSIgnSkipTable[4][4]; + /** + * units: TPS + * offset 19756 + */ + uint16_t alsIgnSkipLoadBins[4]; + /** + * units: RPM + * offset 19764 + */ + uint16_t alsIgnSkiprpmBins[4]; + /** + * offset 19772 + */ + blend_table_s ignBlends[IGN_BLEND_COUNT]; + /** + * offset 20524 + */ + blend_table_s veBlends[VE_BLEND_COUNT]; + /** + * units: % + * offset 21276 + */ + scaled_channel throttleEstimateEffectiveAreaBins[12]; + /** + * In units of g/s normalized to choked flow conditions + * units: g/s + * offset 21300 + */ + scaled_channel throttleEstimateEffectiveAreaValues[12]; + /** + * offset 21324 + */ + blend_table_s boostOpenLoopBlends[BOOST_BLEND_COUNT]; + /** + * offset 21700 + */ + blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; + /** + * units: level + * offset 22076 + */ + uint8_t tcu_rangeP[6]; + /** + * units: level + * offset 22082 + */ + uint8_t tcu_rangeR[6]; + /** + * units: level + * offset 22088 + */ + uint8_t tcu_rangeN[6]; + /** + * units: level + * offset 22094 + */ + uint8_t tcu_rangeD[6]; + /** + * units: level + * offset 22100 + */ + uint8_t tcu_rangeM[6]; + /** + * units: level + * offset 22106 + */ + uint8_t tcu_rangeM3[6]; + /** + * units: level + * offset 22112 + */ + uint8_t tcu_rangeM2[6]; + /** + * units: level + * offset 22118 + */ + uint8_t tcu_rangeM1[6]; + /** + * units: level + * offset 22124 + */ + uint8_t tcu_rangePlus[6]; + /** + * units: level + * offset 22130 + */ + uint8_t tcu_rangeMinus[6]; + /** + * units: level + * offset 22136 + */ + uint8_t tcu_rangeLow[6]; + /** + * units: lambda + * offset 22142 + */ + scaled_channel lambdaMaxDeviationTable[4][4]; + /** + * offset 22158 + */ + uint16_t lambdaMaxDeviationLoadBins[4]; + /** + * units: RPM + * offset 22166 + */ + uint16_t lambdaMaxDeviationRpmBins[4]; + /** + * units: % + * offset 22174 + */ + uint8_t injectorStagingTable[INJ_STAGING_COUNT][INJ_STAGING_COUNT]; + /** + * offset 22210 + */ + uint16_t injectorStagingLoadBins[INJ_STAGING_COUNT]; + /** + * units: RPM + * offset 22222 + */ + uint16_t injectorStagingRpmBins[INJ_STAGING_COUNT]; + /** + * need 4 byte alignment + * units: units + * offset 22234 + */ + uint8_t alignmentFill_at_22234[2]; +}; +static_assert(sizeof(persistent_config_s) == 22236); + +// end +// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:35 UTC 2024 diff --git a/firmware/controllers/generated/rusefi_generated_alphax-2chan.h b/firmware/controllers/generated/rusefi_generated_alphax-2chan.h index 2989398729..f7aa6df38e 100644 --- a/firmware/controllers/generated/rusefi_generated_alphax-2chan.h +++ b/firmware/controllers/generated/rusefi_generated_alphax-2chan.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_alphax-4chan.h b/firmware/controllers/generated/rusefi_generated_alphax-4chan.h index 726bf200a4..8f80c015af 100644 --- a/firmware/controllers/generated/rusefi_generated_alphax-4chan.h +++ b/firmware/controllers/generated/rusefi_generated_alphax-4chan.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_alphax-4chan_f7.h b/firmware/controllers/generated/rusefi_generated_alphax-4chan_f7.h index 82899cecbe..a686eac0f0 100644 --- a/firmware/controllers/generated/rusefi_generated_alphax-4chan_f7.h +++ b/firmware/controllers/generated/rusefi_generated_alphax-4chan_f7.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_alphax-8chan-revA.h b/firmware/controllers/generated/rusefi_generated_alphax-8chan-revA.h index f4cd135465..84523ac75a 100644 --- a/firmware/controllers/generated/rusefi_generated_alphax-8chan-revA.h +++ b/firmware/controllers/generated/rusefi_generated_alphax-8chan-revA.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_alphax-8chan.h b/firmware/controllers/generated/rusefi_generated_alphax-8chan.h index 3b01b0f823..10e7c2c719 100644 --- a/firmware/controllers/generated/rusefi_generated_alphax-8chan.h +++ b/firmware/controllers/generated/rusefi_generated_alphax-8chan.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_alphax-8chan_f7.h b/firmware/controllers/generated/rusefi_generated_alphax-8chan_f7.h index e533c218f1..7bca247227 100644 --- a/firmware/controllers/generated/rusefi_generated_alphax-8chan_f7.h +++ b/firmware/controllers/generated/rusefi_generated_alphax-8chan_f7.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_at_start_f435.h b/firmware/controllers/generated/rusefi_generated_at_start_f435.h index c526f43e93..d33b578f64 100644 --- a/firmware/controllers/generated/rusefi_generated_at_start_f435.h +++ b/firmware/controllers/generated/rusefi_generated_at_start_f435.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_atlas.h b/firmware/controllers/generated/rusefi_generated_atlas.h index 7dff36d904..8d579a6f6d 100644 --- a/firmware/controllers/generated/rusefi_generated_atlas.h +++ b/firmware/controllers/generated/rusefi_generated_atlas.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_f407-discovery.h b/firmware/controllers/generated/rusefi_generated_f407-discovery.h index a094df4710..ca7cc0c242 100644 --- a/firmware/controllers/generated/rusefi_generated_f407-discovery.h +++ b/firmware/controllers/generated/rusefi_generated_f407-discovery.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_f429-discovery.h b/firmware/controllers/generated/rusefi_generated_f429-discovery.h index 979ec410c1..e9ea70caf9 100644 --- a/firmware/controllers/generated/rusefi_generated_f429-discovery.h +++ b/firmware/controllers/generated/rusefi_generated_f429-discovery.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_f469-discovery.h b/firmware/controllers/generated/rusefi_generated_f469-discovery.h index acc5b260a8..d868f6b166 100644 --- a/firmware/controllers/generated/rusefi_generated_f469-discovery.h +++ b/firmware/controllers/generated/rusefi_generated_f469-discovery.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_frankenso_na6.h b/firmware/controllers/generated/rusefi_generated_frankenso_na6.h index 60b721bccf..052a94457e 100644 --- a/firmware/controllers/generated/rusefi_generated_frankenso_na6.h +++ b/firmware/controllers/generated/rusefi_generated_frankenso_na6.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen-112-17.h b/firmware/controllers/generated/rusefi_generated_hellen-112-17.h index ffb0f41920..d08cafbc6e 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen-112-17.h +++ b/firmware/controllers/generated/rusefi_generated_hellen-112-17.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen-gm-e67.h b/firmware/controllers/generated/rusefi_generated_hellen-gm-e67.h index 82340a0ec2..9c928e5b05 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen-gm-e67.h +++ b/firmware/controllers/generated/rusefi_generated_hellen-gm-e67.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen-honda-k.h b/firmware/controllers/generated/rusefi_generated_hellen-honda-k.h index 84fb710cec..f85454bf9f 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen-honda-k.h +++ b/firmware/controllers/generated/rusefi_generated_hellen-honda-k.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen121nissan.h b/firmware/controllers/generated/rusefi_generated_hellen121nissan.h index 218b50e476..66c0cfa8b1 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen121nissan.h +++ b/firmware/controllers/generated/rusefi_generated_hellen121nissan.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen121vag.h b/firmware/controllers/generated/rusefi_generated_hellen121vag.h index 5ec165e621..5952c89fd3 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen121vag.h +++ b/firmware/controllers/generated/rusefi_generated_hellen121vag.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen128.h b/firmware/controllers/generated/rusefi_generated_hellen128.h index 7d24eb26e8..f27300b37e 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen128.h +++ b/firmware/controllers/generated/rusefi_generated_hellen128.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen154hyundai.h b/firmware/controllers/generated/rusefi_generated_hellen154hyundai.h index 2310d9394c..d01dfca1dc 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen154hyundai.h +++ b/firmware/controllers/generated/rusefi_generated_hellen154hyundai.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen81.h b/firmware/controllers/generated/rusefi_generated_hellen81.h index 2bd76265e1..2d357d49ef 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen81.h +++ b/firmware/controllers/generated/rusefi_generated_hellen81.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellen88bmw.h b/firmware/controllers/generated/rusefi_generated_hellen88bmw.h index 25bfb4c484..bc9b69d788 100644 --- a/firmware/controllers/generated/rusefi_generated_hellen88bmw.h +++ b/firmware/controllers/generated/rusefi_generated_hellen88bmw.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_hellenMiataNA6.h b/firmware/controllers/generated/rusefi_generated_hellenMiataNA6.h new file mode 100644 index 0000000000..6d102fbd6f --- /dev/null +++ b/firmware/controllers/generated/rusefi_generated_hellenMiataNA6.h @@ -0,0 +1,1605 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh integration/rusefi_config.txt +// + +#define adc_channel_e_auto_enum 0="EFI_ADC_NONE",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",17="EFI_ADC_16",18="EFI_ADC_17",19="EFI_ADC_18",20="EFI_ADC_19",3="EFI_ADC_2",21="EFI_ADC_20",22="EFI_ADC_21",23="EFI_ADC_22",24="EFI_ADC_23",25="EFI_ADC_24",26="EFI_ADC_25",27="EFI_ADC_26",28="EFI_ADC_27",29="EFI_ADC_28",30="EFI_ADC_29",4="EFI_ADC_3",31="EFI_ADC_30",32="EFI_ADC_31",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",33="EFI_ADC_LAST_CHANNEL" +#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_16 17 +#define adc_channel_e_EFI_ADC_17 18 +#define adc_channel_e_EFI_ADC_18 19 +#define adc_channel_e_EFI_ADC_19 20 +#define adc_channel_e_EFI_ADC_2 3 +#define adc_channel_e_EFI_ADC_20 21 +#define adc_channel_e_EFI_ADC_21 22 +#define adc_channel_e_EFI_ADC_22 23 +#define adc_channel_e_EFI_ADC_23 24 +#define adc_channel_e_EFI_ADC_24 25 +#define adc_channel_e_EFI_ADC_25 26 +#define adc_channel_e_EFI_ADC_26 27 +#define adc_channel_e_EFI_ADC_27 28 +#define adc_channel_e_EFI_ADC_28 29 +#define adc_channel_e_EFI_ADC_29 30 +#define adc_channel_e_EFI_ADC_3 4 +#define adc_channel_e_EFI_ADC_30 31 +#define adc_channel_e_EFI_ADC_31 32 +#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 33 +#define adc_channel_e_EFI_ADC_NONE 0 +#define adc_channel_e_enum 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)" +#define adc_channel_e_fullenum "NONE","3N - O2S","2N - Temperature Sensor","intMAP (A15)","4I - PPS1","TPS Input","1B - Battery Sense","INVALID","4G - PPS2 OR TEMPERATURE SENSOR","4H - TPS2","INVALID","3O - MAF","2M - Pressure Sensor","3Q - CLT","3P - IAT","1V - Clutch Switch","1Q AC Switch" +#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",15="MT_MPXH6300",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_MPXH6300 15 +#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 AUX_SPEED_SENSOR_COUNT 2 +#define BANKS_COUNT 2 +#define BARO_CORR_SIZE 4 +#define BENCH_AC_RELAY_DURATION 800 +#define BENCH_FAN_DURATION 2000 +#define BENCH_FUEL_PUMP_DURATION 3000 +#define BENCH_MAIN_RELAY_DURATION 1000 +#define bench_mode_e_BENCH_AC_COMPRESSOR_RELAY 6 +#define bench_mode_e_BENCH_AUXOUT0 20 +#define bench_mode_e_BENCH_AUXOUT1 21 +#define bench_mode_e_BENCH_AUXOUT2 22 +#define bench_mode_e_BENCH_AUXOUT3 23 +#define bench_mode_e_BENCH_AUXOUT4 24 +#define bench_mode_e_BENCH_AUXOUT5 25 +#define bench_mode_e_BENCH_AUXOUT6 26 +#define bench_mode_e_BENCH_AUXOUT7 27 +#define bench_mode_e_BENCH_CANCEL 15 +#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 bench_mode_e_BENCH_VVT0_VALVE 16 +#define bench_mode_e_BENCH_VVT1_VALVE 17 +#define bench_mode_e_BENCH_VVT2_VALVE 18 +#define bench_mode_e_BENCH_VVT3_VALVE 19 +#define bench_mode_e_HD_ACR 28 +#define bench_mode_e_HD_ACR2 29 +#define BENCH_STARTER_DURATION 4000 +#define BENCH_VVT_DURATION 300 +#define blend_table_s_size 188 +#define BLOCKING_FACTOR 750 +#define BOOST_BLEND_COUNT 2 +#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",93="1M - VSS",85="2L - Flex Fuel",19="3E - CRANK",8="3G - CAM" +#define brain_input_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3G - CAM","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3E - CRANK","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2L - Flex Fuel","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1M - VSS" +#define brain_pin_diag_e_PIN_DRIVER_OFF 0x20 +#define brain_pin_diag_e_PIN_DRIVER_OVERTEMP 0x10 +#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 brain_pin_diag_e_PIN_UNKNOWN 0x80 +#define C_MC33810_COUNT 1 +#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_BENCH_HEADER2 0x66 +#define CAN_DEFAULT_BASE 0x200 +#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",4="CAN_BUS_BMW_E46",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",13="CAN_BUS_MS_SIMPLE_BROADCAST",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_E46 4 +#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_MS_SIMPLE_BROADCAST 13 +#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",2="BMW_e90",5="HONDA_CIVIC9",4="HYUNDAI_PB",3="NISSAN_350",1="W202" +#define can_vss_nbc_e_BMW_e46 0 +#define can_vss_nbc_e_BMW_e90 2 +#define can_vss_nbc_e_HONDA_CIVIC9 5 +#define can_vss_nbc_e_HYUNDAI_PB 4 +#define can_vss_nbc_e_NISSAN_350 3 +#define can_vss_nbc_e_W202 1 +#define CanGpioType_auto_enum 0="NONE",1="DRT",2="MS" +#define CanGpioType_DRT 1 +#define CanGpioType_enum "None", "DRT protocol", "MS protocol" +#define CanGpioType_MS 2 +#define CanGpioType_NONE 0 +#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_INDIVIDUAL_INJECTION "set_individual_coils_ignition" +#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_RESET_SENSOR_MOCKS "reset_sensor_mocks" +#define CMD_RESET_SIMULATOR "reset_simulator" +#define CMD_RPM "rpm" +#define CMD_SELF_STIMULATION "self_stimulation" +#define CMD_SET "set" +#define CMD_SET_SENSOR_MOCK "set_sensor_mock" +#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 COIL_1_NAME "Spark #1" +#define COIL_2_NAME "Spark #2" +#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_ENRICH_COUNT 6 +#define cranking_parameters_s_size 8 +#define CRITICAL_BUFFER_SIZE 120 +#define CRITICAL_PREFIX "CRITICAL" +#define cyl_trim_s_size 16 +#define DAC_OUTPUT_COUNT 2 +#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_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_io_size 8 +#define DC_PER_STEPPER 2 +#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",12="DBG_12",13="DBG_13",16="DBG_16",19="DBG_19",2="DBG_2",20="DBG_20",21="DBG_21",22="DBG_22",24="DBG_24",25="DBG_25",26="DBG_26",29="DBG_29",32="DBG_32",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",5="DBG_5",6="DBG_6",7="DBG_7",8="DBG_8",9="DBG_9",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",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",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_12 12 +#define debug_mode_e_DBG_13 13 +#define debug_mode_e_DBG_16 16 +#define debug_mode_e_DBG_19 19 +#define debug_mode_e_DBG_2 2 +#define debug_mode_e_DBG_20 20 +#define debug_mode_e_DBG_21 21 +#define debug_mode_e_DBG_22 22 +#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_32 32 +#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_5 5 +#define debug_mode_e_DBG_6 6 +#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_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_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_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_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 DEFAULT_SELT_STIM_RPM 1200 +#define DEFAULT_SELT_STIM_VVT0 23 +#define DEFAULT_SOLENOID_FREQUENCY 300 +#define DIGIPOT_COUNT 4 +#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",4="ES_PLX" +#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM" +#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 4708 +#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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_BMW_M52 22 +#define engine_type_e_BMW_M73_MRE 50 +#define engine_type_e_BMW_M73_MRE_SLAVE 51 +#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_UNUSED_35 35 +#define engine_type_e_ET_UNUSED_55 55 +#define engine_type_e_ET_UNUSED_56 56 +#define engine_type_e_ETB_BENCH_ENGINE 58 +#define engine_type_e_FERRARI_F136 105 +#define engine_type_e_FORD_ASPIRE_1996 3 +#define engine_type_e_FORD_COYOTE 11 +#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_MIATA_NA6_MAP 41 +#define engine_type_e_FRANKENSO_QA_ENGINE 49 +#define engine_type_e_FRANKENSO_TEST_33810 59 +#define engine_type_e_FUEL_BENCH 15 +#define engine_type_e_GM_SBC 98 +#define engine_type_e_GY6_139QMB 8 +#define engine_type_e_HARLEY 6 +#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_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_2CHAN_STIM_QC 75 +#define engine_type_e_HELLEN_4CHAN_STIM_QC 74 +#define engine_type_e_HELLEN_HONDA_BCM 57 +#define engine_type_e_HONDA_600 43 +#define engine_type_e_HONDA_K 90 +#define engine_type_e_HONDA_OBD1 66 +#define engine_type_e_HONDA_OBD2A 91 +#define engine_type_e_HYUNDAI_PB 104 +#define engine_type_e_L9779_BENCH_ENGINE 60 +#define engine_type_e_MAVERICK_X3 54 +#define engine_type_e_MAZDA_MIATA_NA6 34 +#define engine_type_e_MAZDA_MIATA_NA94 80 +#define engine_type_e_MAZDA_MIATA_NA96 10 +#define engine_type_e_MAZDA_MIATA_NB1 83 +#define engine_type_e_MAZDA_MIATA_NB2 69 +#define engine_type_e_MAZDA_MIATA_NB2_36 86 +#define engine_type_e_MAZDA_MIATA_NC 20 +#define engine_type_e_ME17_9_MISC 33 +#define engine_type_e_MIATA_PROTEUS_TCU 1 +#define engine_type_e_MINIMAL_PINS 99 +#define engine_type_e_MITSUBISHI_3A92 12 +#define engine_type_e_MITSUBISHI_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_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_GM_LS_4 27 +#define engine_type_e_PROTEUS_LUA_DEMO 25 +#define engine_type_e_PROTEUS_M111 17 +#define engine_type_e_PROTEUS_NISSAN_VQ35 103 +#define engine_type_e_PROTEUS_QC_TEST_BOARD 42 +#define engine_type_e_PROTEUS_STIM_QC 73 +#define engine_type_e_PROTEUS_VW_B6 39 +#define engine_type_e_SACHS 29 +#define engine_type_e_SIMULATOR_CONFIG 92 +#define engine_type_e_SUBARU_EG33 70 +#define engine_type_e_TEST_100 100 +#define engine_type_e_TEST_101 101 +#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_TOYOTA_1NZ_FE 13 +#define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 +#define engine_type_e_UNUSED102 102 +#define engine_type_e_UNUSED24 24 +#define engine_type_e_UNUSED47 47 +#define engine_type_e_UNUSED67 67 +#define engine_type_e_UNUSED9 9 +#define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 +#define engine_type_e_UNUSED_21 21 +#define engine_type_e_UNUSED_65 65 +#define engine_type_e_UNUSED_97 97 +#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 ETB2_TRIM_SIZE 6 +#define ETB_BIAS_CURVE_LENGTH 8 +#define ETB_COUNT 2 +#define ETB_HW_MAX_FREQUENCY 3000 +#define FLASH_DATA_VERSION 20014 +#define FUEL_LEVEL_TABLE_COUNT 8 +#define FUEL_LOAD_COUNT 16 +#define fuel_pressure_sensor_mode_e_auto_enum 0="FPM_Absolute",2="FPM_Differential",1="FPM_Gauge" +#define fuel_pressure_sensor_mode_e_enum "Absolute", "Gauge", "Differential", "INVALID" +#define fuel_pressure_sensor_mode_e_FPM_Absolute 0 +#define fuel_pressure_sensor_mode_e_FPM_Differential 2 +#define fuel_pressure_sensor_mode_e_FPM_Gauge 1 +#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_SYNC "Sync" +#define GAUGE_CATEGORY_TIMING "Timing" +#define GAUGE_COIL_DWELL_TIME "Ignition: coil charge time" +#define GAUGE_NAME_ACCEL_LAT "Accel: Lateral" +#define GAUGE_NAME_ACCEL_LON "Accel: Longitudinal" +#define GAUGE_NAME_ACCEL_ROLL "Acceleration: Roll" +#define GAUGE_NAME_ACCEL_VERT "Accel: Vertical" +#define GAUGE_NAME_ACCEL_YAW "Acceleration: Yaw" +#define GAUGE_NAME_ADJUSTED_TIMING "Timing: ignition" +#define GAUGE_NAME_AFR "Air/Fuel Ratio" +#define GAUGE_NAME_AFR2 "Air/Fuel Ratio 2" +#define GAUGE_NAME_AFR2_GAS_SCALE "Air/Fuel Ratio 2 (Gas Scale)" +#define GAUGE_NAME_AFR_GAS_SCALE "Air/Fuel Ratio (Gas Scale)" +#define GAUGE_NAME_AIR_FLOW_ESTIMATE "Air: Flow estimate" +#define GAUGE_NAME_AIR_FLOW_MEASURED "MAF" +#define GAUGE_NAME_AIR_FLOW_MEASURED_2 "MAF #2" +#define GAUGE_NAME_AIR_MASS "Air: Cylinder airmass" +#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_CAN_READ_OK "CAN: Rx" +#define GAUGE_NAME_CAN_WRITE_ERR "CAN: Tx err" +#define GAUGE_NAME_CAN_WRITE_OK "CAN: Tx OK" +#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 "TCU: Desired Gear" +#define GAUGE_NAME_DETECTED_GEAR "Detected Gear" +#define GAUGE_NAME_DWELL_DUTY "Ignition: 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 cycle 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_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_INJ_DUTY_STAGE_2 "Fuel: injector duty cycle stage 2" +#define GAUGE_NAME_FUEL_INJECTION_TIMING "Fuel: Injection timing SOI" +#define GAUGE_NAME_FUEL_LAST_INJECTION "Fuel: Last inj pulse width" +#define GAUGE_NAME_FUEL_LAST_INJECTION_STAGE_2 "Fuel: Last inj pulse width stg 2" +#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_TEMPERATURE "Fuel Temperature" +#define GAUGE_NAME_FUEL_TPS_EXTRA "Fuel: TPS AE 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_GYRO_YAW "Gyro: Yaw rate" +#define GAUGE_NAME_IAC "Idle: Position" +#define GAUGE_NAME_IAT "IAT" +#define GAUGE_NAME_IDLE_POSITION "Idle: Position sensor" +#define GAUGE_NAME_IGNITION_LOAD "Ignition: load" +#define GAUGE_NAME_IGNITION_MODE "Ignition: Mode" +#define GAUGE_NAME_INJECTION_MODE "Fuel: Injection mode" +#define GAUGE_NAME_INJECTOR_LAG "Fuel: injector lag" +#define GAUGE_NAME_ISS "TCU: 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 "TCU: Torque Converter Ratio" +#define GAUGE_NAME_TCHARGE "Air: SD tCharge" +#define GAUGE_NAME_THROTTLE_PEDAL "Throttle pedal position" +#define GAUGE_NAME_TIME "Time" +#define GAUGE_NAME_TIMING_ADVANCE "Ignition: 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 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",249="CAN_PIN_0",250="CAN_PIN_1",251="CAN_PIN_2",252="CAN_PIN_3",253="CAN_PIN_4",254="CAN_PIN_5",255="CAN_PIN_6",256="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",215="L9779_IGN_1",216="L9779_IGN_2",217="L9779_IGN_3",218="L9779_IGN_4",219="L9779_OUT_1",228="L9779_OUT_10",229="L9779_OUT_11",230="L9779_OUT_12",231="L9779_OUT_13",232="L9779_OUT_14",233="L9779_OUT_15",234="L9779_OUT_16",235="L9779_OUT_17",236="L9779_OUT_18",237="L9779_OUT_19",220="L9779_OUT_2",238="L9779_OUT_20",243="L9779_OUT_25",244="L9779_OUT_26",245="L9779_OUT_27",246="L9779_OUT_28",221="L9779_OUT_3",222="L9779_OUT_4",223="L9779_OUT_5",224="L9779_OUT_6",225="L9779_OUT_7",226="L9779_OUT_8",227="L9779_OUT_9",239="L9779_OUT_A",240="L9779_OUT_B",241="L9779_OUT_C",242="L9779_OUT_D",247="L9779_OUT_MRD",248="L9779_PIN_KEY",284="MC33810_0_GD_0",285="MC33810_0_GD_1",286="MC33810_0_GD_2",287="MC33810_0_GD_3",280="MC33810_0_OUT_0",281="MC33810_0_OUT_1",282="MC33810_0_OUT_2",283="MC33810_0_OUT_3",294="MC33810_1_GD_0",295="MC33810_1_GD_1",296="MC33810_1_GD_2",297="MC33810_1_GD_3",290="MC33810_1_OUT_0",291="MC33810_1_OUT_1",292="MC33810_1_OUT_2",293="MC33810_1_OUT_3",146="MC33972_PIN_1",155="MC33972_PIN_10",156="MC33972_PIN_11",157="MC33972_PIN_12",158="MC33972_PIN_13",159="MC33972_PIN_14",160="MC33972_PIN_15",161="MC33972_PIN_16",162="MC33972_PIN_17",163="MC33972_PIN_18",164="MC33972_PIN_19",147="MC33972_PIN_2",165="MC33972_PIN_20",166="MC33972_PIN_21",167="MC33972_PIN_22",148="MC33972_PIN_3",149="MC33972_PIN_4",150="MC33972_PIN_5",151="MC33972_PIN_6",152="MC33972_PIN_7",153="MC33972_PIN_8",154="MC33972_PIN_9",257="PROTECTED_PIN_0",258="PROTECTED_PIN_1",267="PROTECTED_PIN_10",268="PROTECTED_PIN_11",269="PROTECTED_PIN_12",270="PROTECTED_PIN_13",271="PROTECTED_PIN_14",272="PROTECTED_PIN_15",259="PROTECTED_PIN_2",260="PROTECTED_PIN_3",261="PROTECTED_PIN_4",262="PROTECTED_PIN_5",263="PROTECTED_PIN_6",264="PROTECTED_PIN_7",265="PROTECTED_PIN_8",266="PROTECTED_PIN_9",199="TLE6240_PIN_1",208="TLE6240_PIN_10",209="TLE6240_PIN_11",210="TLE6240_PIN_12",211="TLE6240_PIN_13",212="TLE6240_PIN_14",213="TLE6240_PIN_15",214="TLE6240_PIN_16",200="TLE6240_PIN_2",201="TLE6240_PIN_3",202="TLE6240_PIN_4",203="TLE6240_PIN_5",204="TLE6240_PIN_6",205="TLE6240_PIN_7",206="TLE6240_PIN_8",207="TLE6240_PIN_9",168="TLE8888_PIN_1",177="TLE8888_PIN_10",178="TLE8888_PIN_11",179="TLE8888_PIN_12",180="TLE8888_PIN_13",181="TLE8888_PIN_14",182="TLE8888_PIN_15",183="TLE8888_PIN_16",184="TLE8888_PIN_17",185="TLE8888_PIN_18",186="TLE8888_PIN_19",169="TLE8888_PIN_2",187="TLE8888_PIN_20",188="TLE8888_PIN_21",189="TLE8888_PIN_22",190="TLE8888_PIN_23",191="TLE8888_PIN_24",192="TLE8888_PIN_25",193="TLE8888_PIN_26",194="TLE8888_PIN_27",195="TLE8888_PIN_28",170="TLE8888_PIN_3",171="TLE8888_PIN_4",172="TLE8888_PIN_5",173="TLE8888_PIN_6",174="TLE8888_PIN_7",175="TLE8888_PIN_8",176="TLE8888_PIN_9",197="TLE8888_PIN_KEY",196="TLE8888_PIN_MR",198="TLE8888_PIN_WAKE",300="TLE9104_0_OUT_0",301="TLE9104_0_OUT_1",302="TLE9104_0_OUT_2",303="TLE9104_0_OUT_3",304="TLE9104_1_OUT_0",305="TLE9104_1_OUT_1",306="TLE9104_1_OUT_2",307="TLE9104_1_OUT_3",308="TLE9104_2_OUT_0",309="TLE9104_2_OUT_1",310="TLE9104_2_OUT_2",311="TLE9104_2_OUT_3",312="TLE9104_3_OUT_0",313="TLE9104_3_OUT_1",314="TLE9104_3_OUT_2",315="TLE9104_3_OUT_3",316="TLE9104_4_OUT_0",317="TLE9104_4_OUT_1",318="TLE9104_4_OUT_2",319="TLE9104_4_OUT_3",320="TLE9104_5_OUT_0",321="TLE9104_5_OUT_1",322="TLE9104_5_OUT_2",323="TLE9104_5_OUT_3" +#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 249 +#define Gpio_CAN_PIN_1 250 +#define Gpio_CAN_PIN_2 251 +#define Gpio_CAN_PIN_3 252 +#define Gpio_CAN_PIN_4 253 +#define Gpio_CAN_PIN_5 254 +#define Gpio_CAN_PIN_6 255 +#define Gpio_CAN_PIN_7 256 +#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_L9779_IGN_1 215 +#define Gpio_L9779_IGN_2 216 +#define Gpio_L9779_IGN_3 217 +#define Gpio_L9779_IGN_4 218 +#define Gpio_L9779_OUT_1 219 +#define Gpio_L9779_OUT_10 228 +#define Gpio_L9779_OUT_11 229 +#define Gpio_L9779_OUT_12 230 +#define Gpio_L9779_OUT_13 231 +#define Gpio_L9779_OUT_14 232 +#define Gpio_L9779_OUT_15 233 +#define Gpio_L9779_OUT_16 234 +#define Gpio_L9779_OUT_17 235 +#define Gpio_L9779_OUT_18 236 +#define Gpio_L9779_OUT_19 237 +#define Gpio_L9779_OUT_2 220 +#define Gpio_L9779_OUT_20 238 +#define Gpio_L9779_OUT_25 243 +#define Gpio_L9779_OUT_26 244 +#define Gpio_L9779_OUT_27 245 +#define Gpio_L9779_OUT_28 246 +#define Gpio_L9779_OUT_3 221 +#define Gpio_L9779_OUT_4 222 +#define Gpio_L9779_OUT_5 223 +#define Gpio_L9779_OUT_6 224 +#define Gpio_L9779_OUT_7 225 +#define Gpio_L9779_OUT_8 226 +#define Gpio_L9779_OUT_9 227 +#define Gpio_L9779_OUT_A 239 +#define Gpio_L9779_OUT_B 240 +#define Gpio_L9779_OUT_C 241 +#define Gpio_L9779_OUT_D 242 +#define Gpio_L9779_OUT_MRD 247 +#define Gpio_L9779_PIN_KEY 248 +#define Gpio_MC33810_0_GD_0 284 +#define Gpio_MC33810_0_GD_1 285 +#define Gpio_MC33810_0_GD_2 286 +#define Gpio_MC33810_0_GD_3 287 +#define Gpio_MC33810_0_OUT_0 280 +#define Gpio_MC33810_0_OUT_1 281 +#define Gpio_MC33810_0_OUT_2 282 +#define Gpio_MC33810_0_OUT_3 283 +#define Gpio_MC33810_1_GD_0 294 +#define Gpio_MC33810_1_GD_1 295 +#define Gpio_MC33810_1_GD_2 296 +#define Gpio_MC33810_1_GD_3 297 +#define Gpio_MC33810_1_OUT_0 290 +#define Gpio_MC33810_1_OUT_1 291 +#define Gpio_MC33810_1_OUT_2 292 +#define Gpio_MC33810_1_OUT_3 293 +#define Gpio_MC33972_PIN_1 146 +#define Gpio_MC33972_PIN_10 155 +#define Gpio_MC33972_PIN_11 156 +#define Gpio_MC33972_PIN_12 157 +#define Gpio_MC33972_PIN_13 158 +#define Gpio_MC33972_PIN_14 159 +#define Gpio_MC33972_PIN_15 160 +#define Gpio_MC33972_PIN_16 161 +#define Gpio_MC33972_PIN_17 162 +#define Gpio_MC33972_PIN_18 163 +#define Gpio_MC33972_PIN_19 164 +#define Gpio_MC33972_PIN_2 147 +#define Gpio_MC33972_PIN_20 165 +#define Gpio_MC33972_PIN_21 166 +#define Gpio_MC33972_PIN_22 167 +#define Gpio_MC33972_PIN_3 148 +#define Gpio_MC33972_PIN_4 149 +#define Gpio_MC33972_PIN_5 150 +#define Gpio_MC33972_PIN_6 151 +#define Gpio_MC33972_PIN_7 152 +#define Gpio_MC33972_PIN_8 153 +#define Gpio_MC33972_PIN_9 154 +#define Gpio_PROTECTED_PIN_0 257 +#define Gpio_PROTECTED_PIN_1 258 +#define Gpio_PROTECTED_PIN_10 267 +#define Gpio_PROTECTED_PIN_11 268 +#define Gpio_PROTECTED_PIN_12 269 +#define Gpio_PROTECTED_PIN_13 270 +#define Gpio_PROTECTED_PIN_14 271 +#define Gpio_PROTECTED_PIN_15 272 +#define Gpio_PROTECTED_PIN_2 259 +#define Gpio_PROTECTED_PIN_3 260 +#define Gpio_PROTECTED_PIN_4 261 +#define Gpio_PROTECTED_PIN_5 262 +#define Gpio_PROTECTED_PIN_6 263 +#define Gpio_PROTECTED_PIN_7 264 +#define Gpio_PROTECTED_PIN_8 265 +#define Gpio_PROTECTED_PIN_9 266 +#define Gpio_TLE6240_PIN_1 199 +#define Gpio_TLE6240_PIN_10 208 +#define Gpio_TLE6240_PIN_11 209 +#define Gpio_TLE6240_PIN_12 210 +#define Gpio_TLE6240_PIN_13 211 +#define Gpio_TLE6240_PIN_14 212 +#define Gpio_TLE6240_PIN_15 213 +#define Gpio_TLE6240_PIN_16 214 +#define Gpio_TLE6240_PIN_2 200 +#define Gpio_TLE6240_PIN_3 201 +#define Gpio_TLE6240_PIN_4 202 +#define Gpio_TLE6240_PIN_5 203 +#define Gpio_TLE6240_PIN_6 204 +#define Gpio_TLE6240_PIN_7 205 +#define Gpio_TLE6240_PIN_8 206 +#define Gpio_TLE6240_PIN_9 207 +#define Gpio_TLE8888_PIN_1 168 +#define Gpio_TLE8888_PIN_10 177 +#define Gpio_TLE8888_PIN_11 178 +#define Gpio_TLE8888_PIN_12 179 +#define Gpio_TLE8888_PIN_13 180 +#define Gpio_TLE8888_PIN_14 181 +#define Gpio_TLE8888_PIN_15 182 +#define Gpio_TLE8888_PIN_16 183 +#define Gpio_TLE8888_PIN_17 184 +#define Gpio_TLE8888_PIN_18 185 +#define Gpio_TLE8888_PIN_19 186 +#define Gpio_TLE8888_PIN_2 169 +#define Gpio_TLE8888_PIN_20 187 +#define Gpio_TLE8888_PIN_21 188 +#define Gpio_TLE8888_PIN_22 189 +#define Gpio_TLE8888_PIN_23 190 +#define Gpio_TLE8888_PIN_24 191 +#define Gpio_TLE8888_PIN_25 192 +#define Gpio_TLE8888_PIN_26 193 +#define Gpio_TLE8888_PIN_27 194 +#define Gpio_TLE8888_PIN_28 195 +#define Gpio_TLE8888_PIN_3 170 +#define Gpio_TLE8888_PIN_4 171 +#define Gpio_TLE8888_PIN_5 172 +#define Gpio_TLE8888_PIN_6 173 +#define Gpio_TLE8888_PIN_7 174 +#define Gpio_TLE8888_PIN_8 175 +#define Gpio_TLE8888_PIN_9 176 +#define Gpio_TLE8888_PIN_KEY 197 +#define Gpio_TLE8888_PIN_MR 196 +#define Gpio_TLE8888_PIN_WAKE 198 +#define Gpio_TLE9104_0_OUT_0 300 +#define Gpio_TLE9104_0_OUT_1 301 +#define Gpio_TLE9104_0_OUT_2 302 +#define Gpio_TLE9104_0_OUT_3 303 +#define Gpio_TLE9104_1_OUT_0 304 +#define Gpio_TLE9104_1_OUT_1 305 +#define Gpio_TLE9104_1_OUT_2 306 +#define Gpio_TLE9104_1_OUT_3 307 +#define Gpio_TLE9104_2_OUT_0 308 +#define Gpio_TLE9104_2_OUT_1 309 +#define Gpio_TLE9104_2_OUT_2 310 +#define Gpio_TLE9104_2_OUT_3 311 +#define Gpio_TLE9104_3_OUT_0 312 +#define Gpio_TLE9104_3_OUT_1 313 +#define Gpio_TLE9104_3_OUT_2 314 +#define Gpio_TLE9104_3_OUT_3 315 +#define Gpio_TLE9104_4_OUT_0 316 +#define Gpio_TLE9104_4_OUT_1 317 +#define Gpio_TLE9104_4_OUT_2 318 +#define Gpio_TLE9104_4_OUT_3 319 +#define Gpio_TLE9104_5_OUT_0 320 +#define Gpio_TLE9104_5_OUT_1 321 +#define Gpio_TLE9104_5_OUT_2 322 +#define Gpio_TLE9104_5_OUT_3 323 +#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",26="GPPWM_BaroPressure",3="GPPWM_Clt",25="GPPWM_DetectedGear",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", "Gear (detected)", "Baro pressure" +#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_BaroPressure 26 +#define gppwm_channel_e_GPPWM_Clt 3 +#define gppwm_channel_e_GPPWM_DetectedGear 25 +#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 IGNITION_OUTPUT "Ignition Output" +#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 switch" +#define INDICATOR_NAME_CLUTCH_DOWN "Clutch: down" +#define INDICATOR_NAME_CLUTCH_UP "Clutch: up" +#define INJ_STAGING_COUNT 6 +#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_1_NAME "Injector #1" +#define INJECTOR_2_NAME "Injector #2" +#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 32 +#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 "https://rusefi.com/s/hellenNA6" +#define MAP_ANGLE_SIZE 8 +#define MAP_sensor_config_s_size 140 +#define MAP_WINDOW_SIZE 8 +#define MAX_CYLINDER_COUNT 12 +#define mc33810maxDwellTimer_e_auto_enum 0="DWELL_2MS",3="DWELL_16MS",4="DWELL_32MS",1="DWELL_4MS",5="DWELL_64MS",2="DWELL_8MS" +#define mc33810maxDwellTimer_e_DWELL_16MS 3 +#define mc33810maxDwellTimer_e_DWELL_2MS 0 +#define mc33810maxDwellTimer_e_DWELL_32MS 4 +#define mc33810maxDwellTimer_e_DWELL_4MS 1 +#define mc33810maxDwellTimer_e_DWELL_64MS 5 +#define mc33810maxDwellTimer_e_DWELL_8MS 2 +#define MLQ_FIELD_HEADER_SIZE 89 +#define MLQ_HEADER_SIZE 24 +#define operation_mode_e_FOUR_STROKE_CAM_SENSOR 2 +#define operation_mode_e_FOUR_STROKE_CRANK_SENSOR 1 +#define operation_mode_e_FOUR_STROKE_SIX_TIMES_CRANK_SENSOR 7 +#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",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)" +#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","ETB EN","ETB +","ETB -","INVALID","INVALID","INVALID","INVALID","1G - Ignition 1 & 4 (rev D)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3S - A/C Fan 94-95","3Z - Injector 4","3Y - Injector 3","Radiator Fan","INVALID","3W - IDLE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1H - Ignition 2 & 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2J - Boost Control","INVALID","2I - VVT","INVALID","INVALID","INVALID","Fuel Pump Relay","INVALID","INVALID","INVALID","INVALID","3U - Injector 1","3V - Injector 2","1E - Check Engine Light","INVALID","INVALID","Tachometer (rev D)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1J - AC Relay","Tachometer (rev C)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1G - Ignition 1 & 4 (rev C)" +#define PACK_ADD_TEMPERATURE 40 +#define PACK_MULT_AFR 1000 +#define PACK_MULT_AFR_CFG 10 +#define PACK_MULT_ANGLE 50 +#define PACK_MULT_FLEX 2 +#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_MULT_VSS 100 +#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 22236 +#define pid_s_size 20 +#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_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_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 PRIME_CURVE_COUNT 8 +#define PROTOCOL_ACR_NAME "acr" +#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_HIP_NAME "HIP" +#define PROTOCOL_HPFP_NAME "hpfp" +#define PROTOCOL_INJ1_SHORT_NAME "i1" +#define PROTOCOL_INJ1_STAGE2_SHORT_NAME "j1" +#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 RANGE_INPUT_COUNT 6 +#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 sent_input_pin_e_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 SentEtbType_auto_enum 0="NONE",3="CUSTOM",2="FORD_TYPE_1",1="GM_TYPE_1" +#define SentEtbType_CUSTOM 3 +#define SentEtbType_enum "None", "GM type 1", "Ford type 1", "Custom" +#define SentEtbType_FORD_TYPE_1 2 +#define SentEtbType_GM_TYPE_1 1 +#define SentEtbType_NONE 0 +#define show_Frankenso_presets false +#define show_HellenNA6_presets true +#define show_microRusEFI_presets false +#define show_Proteus_presets false +#define show_test_presets false +#define SIGNATURE_HASH 739850940 +#define SIMULATOR_TUNE_BIN_FILE_NAME "generated/simulator_tune_image.bin" +#define SIMULATOR_TUNE_BIN_FILE_NAME_PREFIX "generated/simulator_tune_image" +#define SIMULATOR_TUNE_BIN_FILE_NAME_SUFFIX ".bin" +#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",5="SPI_DEVICE_5",6="SPI_DEVICE_6" +#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_DEVICE_5 5 +#define spi_device_e_SPI_DEVICE_6 6 +#define spi_device_e_SPI_NONE 0 +#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",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" +#define switch_input_pin_e_fullenum "NONE","INVALID","INVALID","2N - Temperature Sensor","INVALID","4I - PPS1","INVALID","INVALID","INVALID","4G - PPS2 OR TEMPERATURE SENSOR","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4H - TPS2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2M - Pressure Sensor","INVALID","INVALID","1V - Clutch Switch","1Q AC Switch" +#define TABLE_4_RPM 10 +#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 22236 +#define TPS_2_BYTE_PACKING_MULT 100 +#define TPS_TPS_ACCEL_CLT_CORR_TABLE 4 +#define TPS_TPS_ACCEL_TABLE 8 +#define TRACTION_CONTROL_ETB_DROP_SIZE 6 +#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 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77 +#define TRIGGER_CYCLE_DURATION "cycleDuration" +#define TRIGGER_GAP_FROM "gapFrom" +#define TRIGGER_GAP_TO "gapTo" +#define TRIGGER_GAPS_COUNT "gapsCount" +#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_KNOWN_OPERATION_MODE "knownOperationMode" +#define TRIGGER_SIMULATOR_PIN_COUNT 2 +#define TRIGGER_SYNC_EDGE "syncEdge" +#define trigger_type_e_auto_enum 0="TT_TOOTHED_WHEEL",38="TT_12_TOOTH_CRANK",50="TT_1_16",25="TT_2JZ_3_34_SIMULATION_ONLY",70="TT_36_2_1",71="TT_36_2_1_1",23="TT_36_2_2_2",31="TT_3_1_CAM",72="TT_3_TOOTH_CRANK",77="TT_60DEG_TOOTH",75="TT_60_2_2_F3R",20="TT_60_2_VW",80="TT_6_TOOTH_CRANK",21="TT_BENELLI_TRE",30="TT_CHRYSLER_NGC_36_2_2",6="TT_DAIHATSU_3_CYL",81="TT_DAIHATSU_4_CYL",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",18="TT_HALF_MOON",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",34="TT_MITSU_4G63_CAM",76="TT_MITSU_4G63_CRANK",29="TT_MITSU_4G9x_CAM",11="TT_NARROW_SINGLE_TOOTH",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",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",82="TT_UNUSED",56="TT_VVT_BARRA_3_PLUS_1",47="TT_VVT_BOSCH_QUICK_START",4="TT_VVT_FORD_COYOTE",13="TT_VVT_MAZDA_SKYACTIV",43="TT_VVT_MIATA_NB",62="TT_VVT_MITSUBISHI_3A92",78="TT_VVT_MITSUBISHI_4G69",79="TT_VVT_MITSU_6G72",59="TT_VVT_NISSAN_VQ35",17="TT_VVT_TOYOTA_3_TOOTH",73="TT_VVT_TOYOTA_4_1" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83" +#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_SIMULATION_ONLY 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_3_TOOTH_CRANK 72 +#define trigger_type_e_TT_60_2_2_F3R 75 +#define trigger_type_e_TT_60_2_VW 20 +#define trigger_type_e_TT_60DEG_TOOTH 77 +#define trigger_type_e_TT_6_TOOTH_CRANK 80 +#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_3_CYL 6 +#define trigger_type_e_TT_DAIHATSU_4_CYL 81 +#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_HALF_MOON 18 +#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_4G63_CRANK 76 +#define trigger_type_e_TT_MITSU_4G9x_CAM 29 +#define trigger_type_e_TT_NARROW_SINGLE_TOOTH 11 +#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_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 82 +#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_FORD_COYOTE 4 +#define trigger_type_e_TT_VVT_MAZDA_SKYACTIV 13 +#define trigger_type_e_TT_VVT_MIATA_NB 43 +#define trigger_type_e_TT_VVT_MITSU_6G72 79 +#define trigger_type_e_TT_VVT_MITSUBISHI_3A92 62 +#define trigger_type_e_TT_VVT_MITSUBISHI_4G69 78 +#define trigger_type_e_TT_VVT_NISSAN_VQ35 59 +#define trigger_type_e_TT_VVT_TOYOTA_3_TOOTH 17 +#define trigger_type_e_TT_VVT_TOYOTA_4_1 73 +#define TRIGGER_TYPE_WITH_SECOND_WHEEL trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64 +#define TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 +#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_14_command_TS_14_0 0 +#define ts_14_command_TS_14_1 1 +#define ts_14_command_TS_14_4 4 +#define ts_14_command_TS_14_5 5 +#define ts_14_command_TS_14_9 9 +#define ts_14_command_TS_BURN_WITHOUT_FLASH 0x15 +#define ts_14_command_TS_ETB_AUTOCAL_0 0x0E +#define ts_14_command_TS_ETB_AUTOCAL_1 0x11 +#define ts_14_command_TS_ETB_RESET 0x0B +#define ts_14_command_TS_ETB_START_AUTOTUNE 0x0C +#define ts_14_command_TS_ETB_STOP_AUTOTUNE 0x10 +#define ts_14_command_TS_EXTERNAL_TRIGGER_STIMULATOR_ENABLE 0x13 +#define ts_14_command_TS_GRAB_PEDAL_UP 6 +#define ts_14_command_TS_GRAB_PEDAL_WOT 7 +#define ts_14_command_TS_GRAB_TPS_CLOSED 2 +#define ts_14_command_TS_GRAB_TPS_WOT 3 +#define ts_14_command_TS_RESET_MC33810 0x14 +#define ts_14_command_TS_RESET_TLE8888 8 +#define ts_14_command_TS_TRIGGER_STIMULATOR_DISABLE 0x0F +#define ts_14_command_TS_TRIGGER_STIMULATOR_ENABLE 0x0D +#define ts_14_command_TS_WIDEBAND_UPDATE 0x12 +#define ts_14_command_TS_WRITE_FLASH 0x0A +#define TS_BLOCK_READ_TIMEOUT 3000 +#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_10 10 +#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_2 2 +#define ts_command_e_TS_COMMAND_3 3 +#define ts_command_e_TS_COMMAND_4 4 +#define ts_command_e_TS_COMMAND_5 5 +#define ts_command_e_TS_COMMAND_6 6 +#define ts_command_e_TS_COMMAND_7 7 +#define ts_command_e_TS_COMMAND_8 8 +#define ts_command_e_TS_COMMAND_9 9 +#define ts_command_e_TS_DEBUG_MODE 0 +#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_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_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 20230721 +#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_BOOTLOADER 'L' +#define TS_QUERY_BOOTLOADER_char L +#define TS_QUERY_BOOTLOADER_NONE 0 +#define TS_QUERY_BOOTLOADER_OPENBLT 1 +#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 false +#define ts_show_can_pins false +#define ts_show_clt_iat_pullup true +#define ts_show_communityCommsLedPid false +#define ts_show_cylinder_10 true +#define ts_show_cylinder_11 true +#define ts_show_cylinder_12 true +#define ts_show_cylinder_2 true +#define ts_show_cylinder_3 true +#define ts_show_cylinder_4 true +#define ts_show_cylinder_5 true +#define ts_show_cylinder_6 true +#define ts_show_cylinder_7 true +#define ts_show_cylinder_8 true +#define ts_show_cylinder_9 true +#define ts_show_egt false +#define ts_show_etb true +#define ts_show_etb_pins false +#define ts_show_full_pinout true +#define ts_show_hardware_simulator false +#define ts_show_hip9011 false +#define ts_show_ign_key_analog_input false +#define ts_show_ign_key_switch false +#define ts_show_ignitionPinMode true +#define ts_show_inj_diag false +#define ts_show_injectionPinMode false +#define ts_show_l9779 false +#define ts_show_main_relay true +#define ts_show_main_relay_microRusEFI_message false +#define ts_show_mc33810 false +#define ts_show_onboard_accelerometer false +#define ts_show_output_diag false +#define ts_show_sd_card true +#define ts_show_sd_pins false +#define ts_show_software_knock true +#define ts_show_spi true +#define ts_show_spi2_enable true +#define ts_show_spi2_pins true +#define ts_show_spi3_pins true +#define ts_show_tle8888 false +#define ts_show_tps2 true +#define ts_show_tps_sent false +#define ts_show_trigger_comparator false +#define ts_show_tunerstudio_port true +#define ts_show_vbatt true +#define ts_show_vr_threshold_2 false +#define ts_show_vr_threshold_all false +#define ts_show_vr_threshold_pins true +#define ts_show_vvt_output true +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNA6.739850940" +#define TS_SIMULATE_CAN '>' +#define TS_SIMULATE_CAN_char > +#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 1468 +#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 UiMode_auto_enum 0="FULL",1="INSTALLATION",2="TUNING" +#define UiMode_enum "Full", "Installation", "Tuning" +#define UiMode_FULL 0 +#define UiMode_INSTALLATION 1 +#define UiMode_TUNING 2 +#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 VOLTAGE_1_BYTE_PACKING_DIV 0.02 +#define VR_THRESHOLD_COUNT 2 +#define vr_threshold_s_size 16 +#define VSS_FILTER_MAX 200 +#define VSS_FILTER_MIN 3 +#define vvt_mode_e_auto_enum 0="VVT_INACTIVE",8="VVT_BARRA_3_PLUS_1",5="VVT_BOSCH_QUICK_START",19="VVT_FORD_COYOTE",7="VVT_FORD_ST170",21="VVT_HONDA_CBR_600",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",4="VVT_MITSUBISHI_4G69",17="VVT_MITSUBISHI_4G9x",20="VVT_MITSUBISHI_6G72",14="VVT_MITSUBISHI_6G75",11="VVT_NISSAN_MR",9="VVT_NISSAN_VQ",1="VVT_SINGLE_TOOTH",2="VVT_TOYOTA_3_TOOTH",6="VVT_TOYOTA_4_1" +#define vvt_mode_e_enum "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23" +#define vvt_mode_e_VVT_BARRA_3_PLUS_1 8 +#define vvt_mode_e_VVT_BOSCH_QUICK_START 5 +#define vvt_mode_e_VVT_FORD_COYOTE 19 +#define vvt_mode_e_VVT_FORD_ST170 7 +#define vvt_mode_e_VVT_HONDA_CBR_600 21 +#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_4G69 4 +#define vvt_mode_e_VVT_MITSUBISHI_4G9x 17 +#define vvt_mode_e_VVT_MITSUBISHI_6G72 20 +#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_SINGLE_TOOTH 1 +#define vvt_mode_e_VVT_TOYOTA_3_TOOTH 2 +#define vvt_mode_e_VVT_TOYOTA_4_1 6 +#define VVT_TRACKING_LENGTH 4 +#define WARNING_BUFFER_SIZE 120 +#define WWAE_TABLE_SIZE 8 diff --git a/firmware/controllers/generated/rusefi_generated_hellenMiataNA96.h b/firmware/controllers/generated/rusefi_generated_hellenMiataNA96.h new file mode 100644 index 0000000000..ad68313eda --- /dev/null +++ b/firmware/controllers/generated/rusefi_generated_hellenMiataNA96.h @@ -0,0 +1,1606 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh integration/rusefi_config.txt +// + +#define adc_channel_e_auto_enum 0="EFI_ADC_NONE",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",17="EFI_ADC_16",18="EFI_ADC_17",19="EFI_ADC_18",20="EFI_ADC_19",3="EFI_ADC_2",21="EFI_ADC_20",22="EFI_ADC_21",23="EFI_ADC_22",24="EFI_ADC_23",25="EFI_ADC_24",26="EFI_ADC_25",27="EFI_ADC_26",28="EFI_ADC_27",29="EFI_ADC_28",30="EFI_ADC_29",4="EFI_ADC_3",31="EFI_ADC_30",32="EFI_ADC_31",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",33="EFI_ADC_LAST_CHANNEL" +#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_16 17 +#define adc_channel_e_EFI_ADC_17 18 +#define adc_channel_e_EFI_ADC_18 19 +#define adc_channel_e_EFI_ADC_19 20 +#define adc_channel_e_EFI_ADC_2 3 +#define adc_channel_e_EFI_ADC_20 21 +#define adc_channel_e_EFI_ADC_21 22 +#define adc_channel_e_EFI_ADC_22 23 +#define adc_channel_e_EFI_ADC_23 24 +#define adc_channel_e_EFI_ADC_24 25 +#define adc_channel_e_EFI_ADC_25 26 +#define adc_channel_e_EFI_ADC_26 27 +#define adc_channel_e_EFI_ADC_27 28 +#define adc_channel_e_EFI_ADC_28 29 +#define adc_channel_e_EFI_ADC_29 30 +#define adc_channel_e_EFI_ADC_3 4 +#define adc_channel_e_EFI_ADC_30 31 +#define adc_channel_e_EFI_ADC_31 32 +#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 33 +#define adc_channel_e_EFI_ADC_NONE 0 +#define adc_channel_e_enum 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" +#define adc_channel_e_fullenum "NONE","2C - O2S","TPS1","intMAP","PPS1","2F - TPS","3B - Battery Sense","3G - CAM","3S - EGR BOOST IN","2A - Pressure Input","3F - CRANK","2B - MAF","INVALID","2G - Coolant","2B - IAT","4C - IN TEMP/PPS2","1K - AC Switch" +#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",15="MT_MPXH6300",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_MPXH6300 15 +#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 AUX_SPEED_SENSOR_COUNT 2 +#define BANKS_COUNT 2 +#define BARO_CORR_SIZE 4 +#define BENCH_AC_RELAY_DURATION 800 +#define BENCH_FAN_DURATION 2000 +#define BENCH_FUEL_PUMP_DURATION 3000 +#define BENCH_MAIN_RELAY_DURATION 1000 +#define bench_mode_e_BENCH_AC_COMPRESSOR_RELAY 6 +#define bench_mode_e_BENCH_AUXOUT0 20 +#define bench_mode_e_BENCH_AUXOUT1 21 +#define bench_mode_e_BENCH_AUXOUT2 22 +#define bench_mode_e_BENCH_AUXOUT3 23 +#define bench_mode_e_BENCH_AUXOUT4 24 +#define bench_mode_e_BENCH_AUXOUT5 25 +#define bench_mode_e_BENCH_AUXOUT6 26 +#define bench_mode_e_BENCH_AUXOUT7 27 +#define bench_mode_e_BENCH_CANCEL 15 +#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 bench_mode_e_BENCH_VVT0_VALVE 16 +#define bench_mode_e_BENCH_VVT1_VALVE 17 +#define bench_mode_e_BENCH_VVT2_VALVE 18 +#define bench_mode_e_BENCH_VVT3_VALVE 19 +#define bench_mode_e_HD_ACR 28 +#define bench_mode_e_HD_ACR2 29 +#define BENCH_STARTER_DURATION 4000 +#define BENCH_VVT_DURATION 300 +#define blend_table_s_size 188 +#define BLOCKING_FACTOR 750 +#define BOOST_BLEND_COUNT 2 +#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",93="1M - VSS",19="3F - CRANK",8="3G - CAM",78="4B - DIGITAL/FLEX" +#define brain_input_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3G - CAM","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3F - CRANK","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4B - DIGITAL/FLEX","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1M - VSS" +#define brain_pin_diag_e_PIN_DRIVER_OFF 0x20 +#define brain_pin_diag_e_PIN_DRIVER_OVERTEMP 0x10 +#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 brain_pin_diag_e_PIN_UNKNOWN 0x80 +#define C_MC33810_COUNT 1 +#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_BENCH_HEADER2 0x66 +#define CAN_DEFAULT_BASE 0x200 +#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",4="CAN_BUS_BMW_E46",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",13="CAN_BUS_MS_SIMPLE_BROADCAST",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_E46 4 +#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_MS_SIMPLE_BROADCAST 13 +#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",2="BMW_e90",5="HONDA_CIVIC9",4="HYUNDAI_PB",3="NISSAN_350",1="W202" +#define can_vss_nbc_e_BMW_e46 0 +#define can_vss_nbc_e_BMW_e90 2 +#define can_vss_nbc_e_HONDA_CIVIC9 5 +#define can_vss_nbc_e_HYUNDAI_PB 4 +#define can_vss_nbc_e_NISSAN_350 3 +#define can_vss_nbc_e_W202 1 +#define CanGpioType_auto_enum 0="NONE",1="DRT",2="MS" +#define CanGpioType_DRT 1 +#define CanGpioType_enum "None", "DRT protocol", "MS protocol" +#define CanGpioType_MS 2 +#define CanGpioType_NONE 0 +#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_INDIVIDUAL_INJECTION "set_individual_coils_ignition" +#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_RESET_SENSOR_MOCKS "reset_sensor_mocks" +#define CMD_RESET_SIMULATOR "reset_simulator" +#define CMD_RPM "rpm" +#define CMD_SELF_STIMULATION "self_stimulation" +#define CMD_SET "set" +#define CMD_SET_SENSOR_MOCK "set_sensor_mock" +#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 COIL_1_NAME "Spark #1" +#define COIL_2_NAME "Spark #2" +#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_ENRICH_COUNT 6 +#define cranking_parameters_s_size 8 +#define CRITICAL_BUFFER_SIZE 120 +#define CRITICAL_PREFIX "CRITICAL" +#define cyl_trim_s_size 16 +#define DAC_OUTPUT_COUNT 2 +#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_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_io_size 8 +#define DC_PER_STEPPER 2 +#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",12="DBG_12",13="DBG_13",16="DBG_16",19="DBG_19",2="DBG_2",20="DBG_20",21="DBG_21",22="DBG_22",24="DBG_24",25="DBG_25",26="DBG_26",29="DBG_29",32="DBG_32",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",5="DBG_5",6="DBG_6",7="DBG_7",8="DBG_8",9="DBG_9",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",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",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_12 12 +#define debug_mode_e_DBG_13 13 +#define debug_mode_e_DBG_16 16 +#define debug_mode_e_DBG_19 19 +#define debug_mode_e_DBG_2 2 +#define debug_mode_e_DBG_20 20 +#define debug_mode_e_DBG_21 21 +#define debug_mode_e_DBG_22 22 +#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_32 32 +#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_5 5 +#define debug_mode_e_DBG_6 6 +#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_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_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_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_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 DEFAULT_SELT_STIM_RPM 1200 +#define DEFAULT_SELT_STIM_VVT0 23 +#define DEFAULT_SOLENOID_FREQUENCY 300 +#define DIGIPOT_COUNT 4 +#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",4="ES_PLX" +#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM" +#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 4708 +#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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_BMW_M52 22 +#define engine_type_e_BMW_M73_MRE 50 +#define engine_type_e_BMW_M73_MRE_SLAVE 51 +#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_UNUSED_35 35 +#define engine_type_e_ET_UNUSED_55 55 +#define engine_type_e_ET_UNUSED_56 56 +#define engine_type_e_ETB_BENCH_ENGINE 58 +#define engine_type_e_FERRARI_F136 105 +#define engine_type_e_FORD_ASPIRE_1996 3 +#define engine_type_e_FORD_COYOTE 11 +#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_MIATA_NA6_MAP 41 +#define engine_type_e_FRANKENSO_QA_ENGINE 49 +#define engine_type_e_FRANKENSO_TEST_33810 59 +#define engine_type_e_FUEL_BENCH 15 +#define engine_type_e_GM_SBC 98 +#define engine_type_e_GY6_139QMB 8 +#define engine_type_e_HARLEY 6 +#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_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_2CHAN_STIM_QC 75 +#define engine_type_e_HELLEN_4CHAN_STIM_QC 74 +#define engine_type_e_HELLEN_HONDA_BCM 57 +#define engine_type_e_HONDA_600 43 +#define engine_type_e_HONDA_K 90 +#define engine_type_e_HONDA_OBD1 66 +#define engine_type_e_HONDA_OBD2A 91 +#define engine_type_e_HYUNDAI_PB 104 +#define engine_type_e_L9779_BENCH_ENGINE 60 +#define engine_type_e_MAVERICK_X3 54 +#define engine_type_e_MAZDA_MIATA_NA6 34 +#define engine_type_e_MAZDA_MIATA_NA94 80 +#define engine_type_e_MAZDA_MIATA_NA96 10 +#define engine_type_e_MAZDA_MIATA_NB1 83 +#define engine_type_e_MAZDA_MIATA_NB2 69 +#define engine_type_e_MAZDA_MIATA_NB2_36 86 +#define engine_type_e_MAZDA_MIATA_NC 20 +#define engine_type_e_ME17_9_MISC 33 +#define engine_type_e_MIATA_PROTEUS_TCU 1 +#define engine_type_e_MINIMAL_PINS 99 +#define engine_type_e_MITSUBISHI_3A92 12 +#define engine_type_e_MITSUBISHI_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_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_GM_LS_4 27 +#define engine_type_e_PROTEUS_LUA_DEMO 25 +#define engine_type_e_PROTEUS_M111 17 +#define engine_type_e_PROTEUS_NISSAN_VQ35 103 +#define engine_type_e_PROTEUS_QC_TEST_BOARD 42 +#define engine_type_e_PROTEUS_STIM_QC 73 +#define engine_type_e_PROTEUS_VW_B6 39 +#define engine_type_e_SACHS 29 +#define engine_type_e_SIMULATOR_CONFIG 92 +#define engine_type_e_SUBARU_EG33 70 +#define engine_type_e_TEST_100 100 +#define engine_type_e_TEST_101 101 +#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_TOYOTA_1NZ_FE 13 +#define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 +#define engine_type_e_UNUSED102 102 +#define engine_type_e_UNUSED24 24 +#define engine_type_e_UNUSED47 47 +#define engine_type_e_UNUSED67 67 +#define engine_type_e_UNUSED9 9 +#define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 +#define engine_type_e_UNUSED_21 21 +#define engine_type_e_UNUSED_65 65 +#define engine_type_e_UNUSED_97 97 +#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 ETB2_TRIM_SIZE 6 +#define ETB_BIAS_CURVE_LENGTH 8 +#define ETB_COUNT 2 +#define ETB_HW_MAX_FREQUENCY 3000 +#define FLASH_DATA_VERSION 20014 +#define FUEL_LEVEL_TABLE_COUNT 8 +#define FUEL_LOAD_COUNT 16 +#define fuel_pressure_sensor_mode_e_auto_enum 0="FPM_Absolute",2="FPM_Differential",1="FPM_Gauge" +#define fuel_pressure_sensor_mode_e_enum "Absolute", "Gauge", "Differential", "INVALID" +#define fuel_pressure_sensor_mode_e_FPM_Absolute 0 +#define fuel_pressure_sensor_mode_e_FPM_Differential 2 +#define fuel_pressure_sensor_mode_e_FPM_Gauge 1 +#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_SYNC "Sync" +#define GAUGE_CATEGORY_TIMING "Timing" +#define GAUGE_COIL_DWELL_TIME "Ignition: coil charge time" +#define GAUGE_NAME_ACCEL_LAT "Accel: Lateral" +#define GAUGE_NAME_ACCEL_LON "Accel: Longitudinal" +#define GAUGE_NAME_ACCEL_ROLL "Acceleration: Roll" +#define GAUGE_NAME_ACCEL_VERT "Accel: Vertical" +#define GAUGE_NAME_ACCEL_YAW "Acceleration: Yaw" +#define GAUGE_NAME_ADJUSTED_TIMING "Timing: ignition" +#define GAUGE_NAME_AFR "Air/Fuel Ratio" +#define GAUGE_NAME_AFR2 "Air/Fuel Ratio 2" +#define GAUGE_NAME_AFR2_GAS_SCALE "Air/Fuel Ratio 2 (Gas Scale)" +#define GAUGE_NAME_AFR_GAS_SCALE "Air/Fuel Ratio (Gas Scale)" +#define GAUGE_NAME_AIR_FLOW_ESTIMATE "Air: Flow estimate" +#define GAUGE_NAME_AIR_FLOW_MEASURED "MAF" +#define GAUGE_NAME_AIR_FLOW_MEASURED_2 "MAF #2" +#define GAUGE_NAME_AIR_MASS "Air: Cylinder airmass" +#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_CAN_READ_OK "CAN: Rx" +#define GAUGE_NAME_CAN_WRITE_ERR "CAN: Tx err" +#define GAUGE_NAME_CAN_WRITE_OK "CAN: Tx OK" +#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 "TCU: Desired Gear" +#define GAUGE_NAME_DETECTED_GEAR "Detected Gear" +#define GAUGE_NAME_DWELL_DUTY "Ignition: 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 cycle 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_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_INJ_DUTY_STAGE_2 "Fuel: injector duty cycle stage 2" +#define GAUGE_NAME_FUEL_INJECTION_TIMING "Fuel: Injection timing SOI" +#define GAUGE_NAME_FUEL_LAST_INJECTION "Fuel: Last inj pulse width" +#define GAUGE_NAME_FUEL_LAST_INJECTION_STAGE_2 "Fuel: Last inj pulse width stg 2" +#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_TEMPERATURE "Fuel Temperature" +#define GAUGE_NAME_FUEL_TPS_EXTRA "Fuel: TPS AE 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_GYRO_YAW "Gyro: Yaw rate" +#define GAUGE_NAME_IAC "Idle: Position" +#define GAUGE_NAME_IAT "IAT" +#define GAUGE_NAME_IDLE_POSITION "Idle: Position sensor" +#define GAUGE_NAME_IGNITION_LOAD "Ignition: load" +#define GAUGE_NAME_IGNITION_MODE "Ignition: Mode" +#define GAUGE_NAME_INJECTION_MODE "Fuel: Injection mode" +#define GAUGE_NAME_INJECTOR_LAG "Fuel: injector lag" +#define GAUGE_NAME_ISS "TCU: 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 "TCU: Torque Converter Ratio" +#define GAUGE_NAME_TCHARGE "Air: SD tCharge" +#define GAUGE_NAME_THROTTLE_PEDAL "Throttle pedal position" +#define GAUGE_NAME_TIME "Time" +#define GAUGE_NAME_TIMING_ADVANCE "Ignition: 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 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",249="CAN_PIN_0",250="CAN_PIN_1",251="CAN_PIN_2",252="CAN_PIN_3",253="CAN_PIN_4",254="CAN_PIN_5",255="CAN_PIN_6",256="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",215="L9779_IGN_1",216="L9779_IGN_2",217="L9779_IGN_3",218="L9779_IGN_4",219="L9779_OUT_1",228="L9779_OUT_10",229="L9779_OUT_11",230="L9779_OUT_12",231="L9779_OUT_13",232="L9779_OUT_14",233="L9779_OUT_15",234="L9779_OUT_16",235="L9779_OUT_17",236="L9779_OUT_18",237="L9779_OUT_19",220="L9779_OUT_2",238="L9779_OUT_20",243="L9779_OUT_25",244="L9779_OUT_26",245="L9779_OUT_27",246="L9779_OUT_28",221="L9779_OUT_3",222="L9779_OUT_4",223="L9779_OUT_5",224="L9779_OUT_6",225="L9779_OUT_7",226="L9779_OUT_8",227="L9779_OUT_9",239="L9779_OUT_A",240="L9779_OUT_B",241="L9779_OUT_C",242="L9779_OUT_D",247="L9779_OUT_MRD",248="L9779_PIN_KEY",284="MC33810_0_GD_0",285="MC33810_0_GD_1",286="MC33810_0_GD_2",287="MC33810_0_GD_3",280="MC33810_0_OUT_0",281="MC33810_0_OUT_1",282="MC33810_0_OUT_2",283="MC33810_0_OUT_3",294="MC33810_1_GD_0",295="MC33810_1_GD_1",296="MC33810_1_GD_2",297="MC33810_1_GD_3",290="MC33810_1_OUT_0",291="MC33810_1_OUT_1",292="MC33810_1_OUT_2",293="MC33810_1_OUT_3",146="MC33972_PIN_1",155="MC33972_PIN_10",156="MC33972_PIN_11",157="MC33972_PIN_12",158="MC33972_PIN_13",159="MC33972_PIN_14",160="MC33972_PIN_15",161="MC33972_PIN_16",162="MC33972_PIN_17",163="MC33972_PIN_18",164="MC33972_PIN_19",147="MC33972_PIN_2",165="MC33972_PIN_20",166="MC33972_PIN_21",167="MC33972_PIN_22",148="MC33972_PIN_3",149="MC33972_PIN_4",150="MC33972_PIN_5",151="MC33972_PIN_6",152="MC33972_PIN_7",153="MC33972_PIN_8",154="MC33972_PIN_9",257="PROTECTED_PIN_0",258="PROTECTED_PIN_1",267="PROTECTED_PIN_10",268="PROTECTED_PIN_11",269="PROTECTED_PIN_12",270="PROTECTED_PIN_13",271="PROTECTED_PIN_14",272="PROTECTED_PIN_15",259="PROTECTED_PIN_2",260="PROTECTED_PIN_3",261="PROTECTED_PIN_4",262="PROTECTED_PIN_5",263="PROTECTED_PIN_6",264="PROTECTED_PIN_7",265="PROTECTED_PIN_8",266="PROTECTED_PIN_9",199="TLE6240_PIN_1",208="TLE6240_PIN_10",209="TLE6240_PIN_11",210="TLE6240_PIN_12",211="TLE6240_PIN_13",212="TLE6240_PIN_14",213="TLE6240_PIN_15",214="TLE6240_PIN_16",200="TLE6240_PIN_2",201="TLE6240_PIN_3",202="TLE6240_PIN_4",203="TLE6240_PIN_5",204="TLE6240_PIN_6",205="TLE6240_PIN_7",206="TLE6240_PIN_8",207="TLE6240_PIN_9",168="TLE8888_PIN_1",177="TLE8888_PIN_10",178="TLE8888_PIN_11",179="TLE8888_PIN_12",180="TLE8888_PIN_13",181="TLE8888_PIN_14",182="TLE8888_PIN_15",183="TLE8888_PIN_16",184="TLE8888_PIN_17",185="TLE8888_PIN_18",186="TLE8888_PIN_19",169="TLE8888_PIN_2",187="TLE8888_PIN_20",188="TLE8888_PIN_21",189="TLE8888_PIN_22",190="TLE8888_PIN_23",191="TLE8888_PIN_24",192="TLE8888_PIN_25",193="TLE8888_PIN_26",194="TLE8888_PIN_27",195="TLE8888_PIN_28",170="TLE8888_PIN_3",171="TLE8888_PIN_4",172="TLE8888_PIN_5",173="TLE8888_PIN_6",174="TLE8888_PIN_7",175="TLE8888_PIN_8",176="TLE8888_PIN_9",197="TLE8888_PIN_KEY",196="TLE8888_PIN_MR",198="TLE8888_PIN_WAKE",300="TLE9104_0_OUT_0",301="TLE9104_0_OUT_1",302="TLE9104_0_OUT_2",303="TLE9104_0_OUT_3",304="TLE9104_1_OUT_0",305="TLE9104_1_OUT_1",306="TLE9104_1_OUT_2",307="TLE9104_1_OUT_3",308="TLE9104_2_OUT_0",309="TLE9104_2_OUT_1",310="TLE9104_2_OUT_2",311="TLE9104_2_OUT_3",312="TLE9104_3_OUT_0",313="TLE9104_3_OUT_1",314="TLE9104_3_OUT_2",315="TLE9104_3_OUT_3",316="TLE9104_4_OUT_0",317="TLE9104_4_OUT_1",318="TLE9104_4_OUT_2",319="TLE9104_4_OUT_3",320="TLE9104_5_OUT_0",321="TLE9104_5_OUT_1",322="TLE9104_5_OUT_2",323="TLE9104_5_OUT_3" +#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 249 +#define Gpio_CAN_PIN_1 250 +#define Gpio_CAN_PIN_2 251 +#define Gpio_CAN_PIN_3 252 +#define Gpio_CAN_PIN_4 253 +#define Gpio_CAN_PIN_5 254 +#define Gpio_CAN_PIN_6 255 +#define Gpio_CAN_PIN_7 256 +#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_L9779_IGN_1 215 +#define Gpio_L9779_IGN_2 216 +#define Gpio_L9779_IGN_3 217 +#define Gpio_L9779_IGN_4 218 +#define Gpio_L9779_OUT_1 219 +#define Gpio_L9779_OUT_10 228 +#define Gpio_L9779_OUT_11 229 +#define Gpio_L9779_OUT_12 230 +#define Gpio_L9779_OUT_13 231 +#define Gpio_L9779_OUT_14 232 +#define Gpio_L9779_OUT_15 233 +#define Gpio_L9779_OUT_16 234 +#define Gpio_L9779_OUT_17 235 +#define Gpio_L9779_OUT_18 236 +#define Gpio_L9779_OUT_19 237 +#define Gpio_L9779_OUT_2 220 +#define Gpio_L9779_OUT_20 238 +#define Gpio_L9779_OUT_25 243 +#define Gpio_L9779_OUT_26 244 +#define Gpio_L9779_OUT_27 245 +#define Gpio_L9779_OUT_28 246 +#define Gpio_L9779_OUT_3 221 +#define Gpio_L9779_OUT_4 222 +#define Gpio_L9779_OUT_5 223 +#define Gpio_L9779_OUT_6 224 +#define Gpio_L9779_OUT_7 225 +#define Gpio_L9779_OUT_8 226 +#define Gpio_L9779_OUT_9 227 +#define Gpio_L9779_OUT_A 239 +#define Gpio_L9779_OUT_B 240 +#define Gpio_L9779_OUT_C 241 +#define Gpio_L9779_OUT_D 242 +#define Gpio_L9779_OUT_MRD 247 +#define Gpio_L9779_PIN_KEY 248 +#define Gpio_MC33810_0_GD_0 284 +#define Gpio_MC33810_0_GD_1 285 +#define Gpio_MC33810_0_GD_2 286 +#define Gpio_MC33810_0_GD_3 287 +#define Gpio_MC33810_0_OUT_0 280 +#define Gpio_MC33810_0_OUT_1 281 +#define Gpio_MC33810_0_OUT_2 282 +#define Gpio_MC33810_0_OUT_3 283 +#define Gpio_MC33810_1_GD_0 294 +#define Gpio_MC33810_1_GD_1 295 +#define Gpio_MC33810_1_GD_2 296 +#define Gpio_MC33810_1_GD_3 297 +#define Gpio_MC33810_1_OUT_0 290 +#define Gpio_MC33810_1_OUT_1 291 +#define Gpio_MC33810_1_OUT_2 292 +#define Gpio_MC33810_1_OUT_3 293 +#define Gpio_MC33972_PIN_1 146 +#define Gpio_MC33972_PIN_10 155 +#define Gpio_MC33972_PIN_11 156 +#define Gpio_MC33972_PIN_12 157 +#define Gpio_MC33972_PIN_13 158 +#define Gpio_MC33972_PIN_14 159 +#define Gpio_MC33972_PIN_15 160 +#define Gpio_MC33972_PIN_16 161 +#define Gpio_MC33972_PIN_17 162 +#define Gpio_MC33972_PIN_18 163 +#define Gpio_MC33972_PIN_19 164 +#define Gpio_MC33972_PIN_2 147 +#define Gpio_MC33972_PIN_20 165 +#define Gpio_MC33972_PIN_21 166 +#define Gpio_MC33972_PIN_22 167 +#define Gpio_MC33972_PIN_3 148 +#define Gpio_MC33972_PIN_4 149 +#define Gpio_MC33972_PIN_5 150 +#define Gpio_MC33972_PIN_6 151 +#define Gpio_MC33972_PIN_7 152 +#define Gpio_MC33972_PIN_8 153 +#define Gpio_MC33972_PIN_9 154 +#define Gpio_PROTECTED_PIN_0 257 +#define Gpio_PROTECTED_PIN_1 258 +#define Gpio_PROTECTED_PIN_10 267 +#define Gpio_PROTECTED_PIN_11 268 +#define Gpio_PROTECTED_PIN_12 269 +#define Gpio_PROTECTED_PIN_13 270 +#define Gpio_PROTECTED_PIN_14 271 +#define Gpio_PROTECTED_PIN_15 272 +#define Gpio_PROTECTED_PIN_2 259 +#define Gpio_PROTECTED_PIN_3 260 +#define Gpio_PROTECTED_PIN_4 261 +#define Gpio_PROTECTED_PIN_5 262 +#define Gpio_PROTECTED_PIN_6 263 +#define Gpio_PROTECTED_PIN_7 264 +#define Gpio_PROTECTED_PIN_8 265 +#define Gpio_PROTECTED_PIN_9 266 +#define Gpio_TLE6240_PIN_1 199 +#define Gpio_TLE6240_PIN_10 208 +#define Gpio_TLE6240_PIN_11 209 +#define Gpio_TLE6240_PIN_12 210 +#define Gpio_TLE6240_PIN_13 211 +#define Gpio_TLE6240_PIN_14 212 +#define Gpio_TLE6240_PIN_15 213 +#define Gpio_TLE6240_PIN_16 214 +#define Gpio_TLE6240_PIN_2 200 +#define Gpio_TLE6240_PIN_3 201 +#define Gpio_TLE6240_PIN_4 202 +#define Gpio_TLE6240_PIN_5 203 +#define Gpio_TLE6240_PIN_6 204 +#define Gpio_TLE6240_PIN_7 205 +#define Gpio_TLE6240_PIN_8 206 +#define Gpio_TLE6240_PIN_9 207 +#define Gpio_TLE8888_PIN_1 168 +#define Gpio_TLE8888_PIN_10 177 +#define Gpio_TLE8888_PIN_11 178 +#define Gpio_TLE8888_PIN_12 179 +#define Gpio_TLE8888_PIN_13 180 +#define Gpio_TLE8888_PIN_14 181 +#define Gpio_TLE8888_PIN_15 182 +#define Gpio_TLE8888_PIN_16 183 +#define Gpio_TLE8888_PIN_17 184 +#define Gpio_TLE8888_PIN_18 185 +#define Gpio_TLE8888_PIN_19 186 +#define Gpio_TLE8888_PIN_2 169 +#define Gpio_TLE8888_PIN_20 187 +#define Gpio_TLE8888_PIN_21 188 +#define Gpio_TLE8888_PIN_22 189 +#define Gpio_TLE8888_PIN_23 190 +#define Gpio_TLE8888_PIN_24 191 +#define Gpio_TLE8888_PIN_25 192 +#define Gpio_TLE8888_PIN_26 193 +#define Gpio_TLE8888_PIN_27 194 +#define Gpio_TLE8888_PIN_28 195 +#define Gpio_TLE8888_PIN_3 170 +#define Gpio_TLE8888_PIN_4 171 +#define Gpio_TLE8888_PIN_5 172 +#define Gpio_TLE8888_PIN_6 173 +#define Gpio_TLE8888_PIN_7 174 +#define Gpio_TLE8888_PIN_8 175 +#define Gpio_TLE8888_PIN_9 176 +#define Gpio_TLE8888_PIN_KEY 197 +#define Gpio_TLE8888_PIN_MR 196 +#define Gpio_TLE8888_PIN_WAKE 198 +#define Gpio_TLE9104_0_OUT_0 300 +#define Gpio_TLE9104_0_OUT_1 301 +#define Gpio_TLE9104_0_OUT_2 302 +#define Gpio_TLE9104_0_OUT_3 303 +#define Gpio_TLE9104_1_OUT_0 304 +#define Gpio_TLE9104_1_OUT_1 305 +#define Gpio_TLE9104_1_OUT_2 306 +#define Gpio_TLE9104_1_OUT_3 307 +#define Gpio_TLE9104_2_OUT_0 308 +#define Gpio_TLE9104_2_OUT_1 309 +#define Gpio_TLE9104_2_OUT_2 310 +#define Gpio_TLE9104_2_OUT_3 311 +#define Gpio_TLE9104_3_OUT_0 312 +#define Gpio_TLE9104_3_OUT_1 313 +#define Gpio_TLE9104_3_OUT_2 314 +#define Gpio_TLE9104_3_OUT_3 315 +#define Gpio_TLE9104_4_OUT_0 316 +#define Gpio_TLE9104_4_OUT_1 317 +#define Gpio_TLE9104_4_OUT_2 318 +#define Gpio_TLE9104_4_OUT_3 319 +#define Gpio_TLE9104_5_OUT_0 320 +#define Gpio_TLE9104_5_OUT_1 321 +#define Gpio_TLE9104_5_OUT_2 322 +#define Gpio_TLE9104_5_OUT_3 323 +#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",26="GPPWM_BaroPressure",3="GPPWM_Clt",25="GPPWM_DetectedGear",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", "Gear (detected)", "Baro pressure" +#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_BaroPressure 26 +#define gppwm_channel_e_GPPWM_Clt 3 +#define gppwm_channel_e_GPPWM_DetectedGear 25 +#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 IGNITION_OUTPUT "Ignition Output" +#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 switch" +#define INDICATOR_NAME_CLUTCH_DOWN "Clutch: down" +#define INDICATOR_NAME_CLUTCH_UP "Clutch: up" +#define INJ_STAGING_COUNT 6 +#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_1_NAME "Injector #1" +#define INJECTOR_2_NAME "Injector #2" +#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 32 +#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 "https://rusefi.com/s/hellenNA96" +#define MAP_ANGLE_SIZE 8 +#define MAP_sensor_config_s_size 140 +#define MAP_WINDOW_SIZE 8 +#define MAX_CYLINDER_COUNT 12 +#define mc33810maxDwellTimer_e_auto_enum 0="DWELL_2MS",3="DWELL_16MS",4="DWELL_32MS",1="DWELL_4MS",5="DWELL_64MS",2="DWELL_8MS" +#define mc33810maxDwellTimer_e_DWELL_16MS 3 +#define mc33810maxDwellTimer_e_DWELL_2MS 0 +#define mc33810maxDwellTimer_e_DWELL_32MS 4 +#define mc33810maxDwellTimer_e_DWELL_4MS 1 +#define mc33810maxDwellTimer_e_DWELL_64MS 5 +#define mc33810maxDwellTimer_e_DWELL_8MS 2 +#define MLQ_FIELD_HEADER_SIZE 89 +#define MLQ_HEADER_SIZE 24 +#define operation_mode_e_FOUR_STROKE_CAM_SENSOR 2 +#define operation_mode_e_FOUR_STROKE_CRANK_SENSOR 1 +#define operation_mode_e_FOUR_STROKE_SIX_TIMES_CRANK_SENSOR 7 +#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",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" +#define output_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1B - AC Fan Relay","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","ETB EN","ETB +","ETB -","INVALID","INVALID","INVALID","INVALID","3N - IGN_1 (1&4)","INVALID","INVALID","INVALID","INVALID","P18/P22","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4E - VVT","3X - INJ_4","3W - INJ_3","1A - ECF","3L - TACH","3Q - IDLE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3R - IGN_2 (2&3)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4D - BOOST OUT","INVALID","INVALID","INVALID","INVALID","INVALID","1U - Fuel Pump","INVALID","1E - Check Engine Light","INVALID","INVALID","3U - INJ_1","3V - INJ_2","INVALID","INVALID","1G - AC Relay","INVALID","3Z - O2H2" +#define PACK_ADD_TEMPERATURE 40 +#define PACK_MULT_AFR 1000 +#define PACK_MULT_AFR_CFG 10 +#define PACK_MULT_ANGLE 50 +#define PACK_MULT_FLEX 2 +#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_MULT_VSS 100 +#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 22236 +#define pid_s_size 20 +#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_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_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 PRIME_CURVE_COUNT 8 +#define PROTOCOL_ACR_NAME "acr" +#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_HIP_NAME "HIP" +#define PROTOCOL_HPFP_NAME "hpfp" +#define PROTOCOL_INJ1_SHORT_NAME "i1" +#define PROTOCOL_INJ1_STAGE2_SHORT_NAME "j1" +#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 RANGE_INPUT_COUNT 6 +#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 sent_input_pin_e_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 SentEtbType_auto_enum 0="NONE",3="CUSTOM",2="FORD_TYPE_1",1="GM_TYPE_1" +#define SentEtbType_CUSTOM 3 +#define SentEtbType_enum "None", "GM type 1", "Ford type 1", "Custom" +#define SentEtbType_FORD_TYPE_1 2 +#define SentEtbType_GM_TYPE_1 1 +#define SentEtbType_NONE 0 +#define show_Frankenso_presets false +#define show_Hellen96_presets true +#define show_HellenNB1_presets false +#define show_microRusEFI_presets false +#define show_Proteus_presets false +#define show_test_presets false +#define SIGNATURE_HASH 3552802930 +#define SIMULATOR_TUNE_BIN_FILE_NAME "generated/simulator_tune_image.bin" +#define SIMULATOR_TUNE_BIN_FILE_NAME_PREFIX "generated/simulator_tune_image" +#define SIMULATOR_TUNE_BIN_FILE_NAME_SUFFIX ".bin" +#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",5="SPI_DEVICE_5",6="SPI_DEVICE_6" +#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_DEVICE_5 5 +#define spi_device_e_SPI_DEVICE_6 6 +#define spi_device_e_SPI_NONE 0 +#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",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" +#define switch_input_pin_e_fullenum "NONE","INVALID","INVALID","TPS1","INVALID","PPS1","INVALID","INVALID","INVALID","3S - EGR BOOST IN","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2A - Pressure Input","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4C - IN TEMP/PPS2","1K - AC Switch","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1L - Clutch","INVALID","INVALID","INVALID","INVALID","INVALID","2D - O2S2","INVALID","INVALID","INVALID","INVALID","INVALID","1Q - Brake/RES1" +#define TABLE_4_RPM 10 +#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 22236 +#define TPS_2_BYTE_PACKING_MULT 100 +#define TPS_TPS_ACCEL_CLT_CORR_TABLE 4 +#define TPS_TPS_ACCEL_TABLE 8 +#define TRACTION_CONTROL_ETB_DROP_SIZE 6 +#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 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77 +#define TRIGGER_CYCLE_DURATION "cycleDuration" +#define TRIGGER_GAP_FROM "gapFrom" +#define TRIGGER_GAP_TO "gapTo" +#define TRIGGER_GAPS_COUNT "gapsCount" +#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_KNOWN_OPERATION_MODE "knownOperationMode" +#define TRIGGER_SIMULATOR_PIN_COUNT 2 +#define TRIGGER_SYNC_EDGE "syncEdge" +#define trigger_type_e_auto_enum 0="TT_TOOTHED_WHEEL",38="TT_12_TOOTH_CRANK",50="TT_1_16",25="TT_2JZ_3_34_SIMULATION_ONLY",70="TT_36_2_1",71="TT_36_2_1_1",23="TT_36_2_2_2",31="TT_3_1_CAM",72="TT_3_TOOTH_CRANK",77="TT_60DEG_TOOTH",75="TT_60_2_2_F3R",20="TT_60_2_VW",80="TT_6_TOOTH_CRANK",21="TT_BENELLI_TRE",30="TT_CHRYSLER_NGC_36_2_2",6="TT_DAIHATSU_3_CYL",81="TT_DAIHATSU_4_CYL",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",18="TT_HALF_MOON",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",34="TT_MITSU_4G63_CAM",76="TT_MITSU_4G63_CRANK",29="TT_MITSU_4G9x_CAM",11="TT_NARROW_SINGLE_TOOTH",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",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",82="TT_UNUSED",56="TT_VVT_BARRA_3_PLUS_1",47="TT_VVT_BOSCH_QUICK_START",4="TT_VVT_FORD_COYOTE",13="TT_VVT_MAZDA_SKYACTIV",43="TT_VVT_MIATA_NB",62="TT_VVT_MITSUBISHI_3A92",78="TT_VVT_MITSUBISHI_4G69",79="TT_VVT_MITSU_6G72",59="TT_VVT_NISSAN_VQ35",17="TT_VVT_TOYOTA_3_TOOTH",73="TT_VVT_TOYOTA_4_1" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83" +#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_SIMULATION_ONLY 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_3_TOOTH_CRANK 72 +#define trigger_type_e_TT_60_2_2_F3R 75 +#define trigger_type_e_TT_60_2_VW 20 +#define trigger_type_e_TT_60DEG_TOOTH 77 +#define trigger_type_e_TT_6_TOOTH_CRANK 80 +#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_3_CYL 6 +#define trigger_type_e_TT_DAIHATSU_4_CYL 81 +#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_HALF_MOON 18 +#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_4G63_CRANK 76 +#define trigger_type_e_TT_MITSU_4G9x_CAM 29 +#define trigger_type_e_TT_NARROW_SINGLE_TOOTH 11 +#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_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 82 +#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_FORD_COYOTE 4 +#define trigger_type_e_TT_VVT_MAZDA_SKYACTIV 13 +#define trigger_type_e_TT_VVT_MIATA_NB 43 +#define trigger_type_e_TT_VVT_MITSU_6G72 79 +#define trigger_type_e_TT_VVT_MITSUBISHI_3A92 62 +#define trigger_type_e_TT_VVT_MITSUBISHI_4G69 78 +#define trigger_type_e_TT_VVT_NISSAN_VQ35 59 +#define trigger_type_e_TT_VVT_TOYOTA_3_TOOTH 17 +#define trigger_type_e_TT_VVT_TOYOTA_4_1 73 +#define TRIGGER_TYPE_WITH_SECOND_WHEEL trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64 +#define TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 +#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_14_command_TS_14_0 0 +#define ts_14_command_TS_14_1 1 +#define ts_14_command_TS_14_4 4 +#define ts_14_command_TS_14_5 5 +#define ts_14_command_TS_14_9 9 +#define ts_14_command_TS_BURN_WITHOUT_FLASH 0x15 +#define ts_14_command_TS_ETB_AUTOCAL_0 0x0E +#define ts_14_command_TS_ETB_AUTOCAL_1 0x11 +#define ts_14_command_TS_ETB_RESET 0x0B +#define ts_14_command_TS_ETB_START_AUTOTUNE 0x0C +#define ts_14_command_TS_ETB_STOP_AUTOTUNE 0x10 +#define ts_14_command_TS_EXTERNAL_TRIGGER_STIMULATOR_ENABLE 0x13 +#define ts_14_command_TS_GRAB_PEDAL_UP 6 +#define ts_14_command_TS_GRAB_PEDAL_WOT 7 +#define ts_14_command_TS_GRAB_TPS_CLOSED 2 +#define ts_14_command_TS_GRAB_TPS_WOT 3 +#define ts_14_command_TS_RESET_MC33810 0x14 +#define ts_14_command_TS_RESET_TLE8888 8 +#define ts_14_command_TS_TRIGGER_STIMULATOR_DISABLE 0x0F +#define ts_14_command_TS_TRIGGER_STIMULATOR_ENABLE 0x0D +#define ts_14_command_TS_WIDEBAND_UPDATE 0x12 +#define ts_14_command_TS_WRITE_FLASH 0x0A +#define TS_BLOCK_READ_TIMEOUT 3000 +#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_10 10 +#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_2 2 +#define ts_command_e_TS_COMMAND_3 3 +#define ts_command_e_TS_COMMAND_4 4 +#define ts_command_e_TS_COMMAND_5 5 +#define ts_command_e_TS_COMMAND_6 6 +#define ts_command_e_TS_COMMAND_7 7 +#define ts_command_e_TS_COMMAND_8 8 +#define ts_command_e_TS_COMMAND_9 9 +#define ts_command_e_TS_DEBUG_MODE 0 +#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_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_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 20230721 +#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_BOOTLOADER 'L' +#define TS_QUERY_BOOTLOADER_char L +#define TS_QUERY_BOOTLOADER_NONE 0 +#define TS_QUERY_BOOTLOADER_OPENBLT 1 +#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 false +#define ts_show_can_pins false +#define ts_show_clt_iat_pullup true +#define ts_show_communityCommsLedPid false +#define ts_show_cylinder_10 true +#define ts_show_cylinder_11 true +#define ts_show_cylinder_12 true +#define ts_show_cylinder_2 true +#define ts_show_cylinder_3 true +#define ts_show_cylinder_4 true +#define ts_show_cylinder_5 true +#define ts_show_cylinder_6 true +#define ts_show_cylinder_7 true +#define ts_show_cylinder_8 true +#define ts_show_cylinder_9 true +#define ts_show_egt false +#define ts_show_etb true +#define ts_show_etb_pins false +#define ts_show_full_pinout true +#define ts_show_hardware_simulator false +#define ts_show_hip9011 false +#define ts_show_ign_key_analog_input false +#define ts_show_ign_key_switch false +#define ts_show_ignitionPinMode true +#define ts_show_inj_diag false +#define ts_show_injectionPinMode false +#define ts_show_l9779 false +#define ts_show_main_relay true +#define ts_show_main_relay_microRusEFI_message false +#define ts_show_mc33810 false +#define ts_show_onboard_accelerometer false +#define ts_show_output_diag false +#define ts_show_sd_card true +#define ts_show_sd_pins false +#define ts_show_software_knock true +#define ts_show_spi true +#define ts_show_spi2_enable true +#define ts_show_spi2_pins true +#define ts_show_spi3_pins true +#define ts_show_tle8888 false +#define ts_show_tps2 true +#define ts_show_tps_sent false +#define ts_show_trigger_comparator false +#define ts_show_tunerstudio_port true +#define ts_show_vbatt true +#define ts_show_vr_threshold_2 false +#define ts_show_vr_threshold_all false +#define ts_show_vr_threshold_pins true +#define ts_show_vvt_output true +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNA96.3552802930" +#define TS_SIMULATE_CAN '>' +#define TS_SIMULATE_CAN_char > +#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 1468 +#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 UiMode_auto_enum 0="FULL",1="INSTALLATION",2="TUNING" +#define UiMode_enum "Full", "Installation", "Tuning" +#define UiMode_FULL 0 +#define UiMode_INSTALLATION 1 +#define UiMode_TUNING 2 +#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 VOLTAGE_1_BYTE_PACKING_DIV 0.02 +#define VR_THRESHOLD_COUNT 2 +#define vr_threshold_s_size 16 +#define VSS_FILTER_MAX 200 +#define VSS_FILTER_MIN 3 +#define vvt_mode_e_auto_enum 0="VVT_INACTIVE",8="VVT_BARRA_3_PLUS_1",5="VVT_BOSCH_QUICK_START",19="VVT_FORD_COYOTE",7="VVT_FORD_ST170",21="VVT_HONDA_CBR_600",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",4="VVT_MITSUBISHI_4G69",17="VVT_MITSUBISHI_4G9x",20="VVT_MITSUBISHI_6G72",14="VVT_MITSUBISHI_6G75",11="VVT_NISSAN_MR",9="VVT_NISSAN_VQ",1="VVT_SINGLE_TOOTH",2="VVT_TOYOTA_3_TOOTH",6="VVT_TOYOTA_4_1" +#define vvt_mode_e_enum "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23" +#define vvt_mode_e_VVT_BARRA_3_PLUS_1 8 +#define vvt_mode_e_VVT_BOSCH_QUICK_START 5 +#define vvt_mode_e_VVT_FORD_COYOTE 19 +#define vvt_mode_e_VVT_FORD_ST170 7 +#define vvt_mode_e_VVT_HONDA_CBR_600 21 +#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_4G69 4 +#define vvt_mode_e_VVT_MITSUBISHI_4G9x 17 +#define vvt_mode_e_VVT_MITSUBISHI_6G72 20 +#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_SINGLE_TOOTH 1 +#define vvt_mode_e_VVT_TOYOTA_3_TOOTH 2 +#define vvt_mode_e_VVT_TOYOTA_4_1 6 +#define VVT_TRACKING_LENGTH 4 +#define WARNING_BUFFER_SIZE 120 +#define WWAE_TABLE_SIZE 8 diff --git a/firmware/controllers/generated/rusefi_generated_hellenMiataNB1.h b/firmware/controllers/generated/rusefi_generated_hellenMiataNB1.h new file mode 100644 index 0000000000..775ed22269 --- /dev/null +++ b/firmware/controllers/generated/rusefi_generated_hellenMiataNB1.h @@ -0,0 +1,1605 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh integration/rusefi_config.txt +// + +#define adc_channel_e_auto_enum 0="EFI_ADC_NONE",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",17="EFI_ADC_16",18="EFI_ADC_17",19="EFI_ADC_18",20="EFI_ADC_19",3="EFI_ADC_2",21="EFI_ADC_20",22="EFI_ADC_21",23="EFI_ADC_22",24="EFI_ADC_23",25="EFI_ADC_24",26="EFI_ADC_25",27="EFI_ADC_26",28="EFI_ADC_27",29="EFI_ADC_28",30="EFI_ADC_29",4="EFI_ADC_3",31="EFI_ADC_30",32="EFI_ADC_31",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",33="EFI_ADC_LAST_CHANNEL" +#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_16 17 +#define adc_channel_e_EFI_ADC_17 18 +#define adc_channel_e_EFI_ADC_18 19 +#define adc_channel_e_EFI_ADC_19 20 +#define adc_channel_e_EFI_ADC_2 3 +#define adc_channel_e_EFI_ADC_20 21 +#define adc_channel_e_EFI_ADC_21 22 +#define adc_channel_e_EFI_ADC_22 23 +#define adc_channel_e_EFI_ADC_23 24 +#define adc_channel_e_EFI_ADC_24 25 +#define adc_channel_e_EFI_ADC_25 26 +#define adc_channel_e_EFI_ADC_26 27 +#define adc_channel_e_EFI_ADC_27 28 +#define adc_channel_e_EFI_ADC_28 29 +#define adc_channel_e_EFI_ADC_29 30 +#define adc_channel_e_EFI_ADC_3 4 +#define adc_channel_e_EFI_ADC_30 31 +#define adc_channel_e_EFI_ADC_31 32 +#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 33 +#define adc_channel_e_EFI_ADC_NONE 0 +#define adc_channel_e_enum 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" +#define adc_channel_e_fullenum "NONE","2C - O2S","TPS1","intMAP","1G - Steering/RES2","3E - TPS","1B - Battery Sense","2H - CAM","3S - EGR BOOST IN","2A - Pressure Input","2J - CRANK","2L - MAF","3D - MAP","2E - Coolant","2B - IAT","4C - IN TEMP/PPS2","1P - AC Switch" +#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",15="MT_MPXH6300",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_MPXH6300 15 +#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 AUX_SPEED_SENSOR_COUNT 2 +#define BANKS_COUNT 2 +#define BARO_CORR_SIZE 4 +#define BENCH_AC_RELAY_DURATION 800 +#define BENCH_FAN_DURATION 2000 +#define BENCH_FUEL_PUMP_DURATION 3000 +#define BENCH_MAIN_RELAY_DURATION 1000 +#define bench_mode_e_BENCH_AC_COMPRESSOR_RELAY 6 +#define bench_mode_e_BENCH_AUXOUT0 20 +#define bench_mode_e_BENCH_AUXOUT1 21 +#define bench_mode_e_BENCH_AUXOUT2 22 +#define bench_mode_e_BENCH_AUXOUT3 23 +#define bench_mode_e_BENCH_AUXOUT4 24 +#define bench_mode_e_BENCH_AUXOUT5 25 +#define bench_mode_e_BENCH_AUXOUT6 26 +#define bench_mode_e_BENCH_AUXOUT7 27 +#define bench_mode_e_BENCH_CANCEL 15 +#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 bench_mode_e_BENCH_VVT0_VALVE 16 +#define bench_mode_e_BENCH_VVT1_VALVE 17 +#define bench_mode_e_BENCH_VVT2_VALVE 18 +#define bench_mode_e_BENCH_VVT3_VALVE 19 +#define bench_mode_e_HD_ACR 28 +#define bench_mode_e_HD_ACR2 29 +#define BENCH_STARTER_DURATION 4000 +#define BENCH_VVT_DURATION 300 +#define blend_table_s_size 188 +#define BLOCKING_FACTOR 750 +#define BOOST_BLEND_COUNT 2 +#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",93="2D - VSS",8="2H - CAM",19="2J - CRANK",78="4B - DIGITAL/FLEX" +#define brain_input_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2H - CAM","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2J - CRANK","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4B - DIGITAL/FLEX","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2D - VSS" +#define brain_pin_diag_e_PIN_DRIVER_OFF 0x20 +#define brain_pin_diag_e_PIN_DRIVER_OVERTEMP 0x10 +#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 brain_pin_diag_e_PIN_UNKNOWN 0x80 +#define C_MC33810_COUNT 1 +#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_BENCH_HEADER2 0x66 +#define CAN_DEFAULT_BASE 0x200 +#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",4="CAN_BUS_BMW_E46",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",13="CAN_BUS_MS_SIMPLE_BROADCAST",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_E46 4 +#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_MS_SIMPLE_BROADCAST 13 +#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",2="BMW_e90",5="HONDA_CIVIC9",4="HYUNDAI_PB",3="NISSAN_350",1="W202" +#define can_vss_nbc_e_BMW_e46 0 +#define can_vss_nbc_e_BMW_e90 2 +#define can_vss_nbc_e_HONDA_CIVIC9 5 +#define can_vss_nbc_e_HYUNDAI_PB 4 +#define can_vss_nbc_e_NISSAN_350 3 +#define can_vss_nbc_e_W202 1 +#define CanGpioType_auto_enum 0="NONE",1="DRT",2="MS" +#define CanGpioType_DRT 1 +#define CanGpioType_enum "None", "DRT protocol", "MS protocol" +#define CanGpioType_MS 2 +#define CanGpioType_NONE 0 +#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_INDIVIDUAL_INJECTION "set_individual_coils_ignition" +#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_RESET_SENSOR_MOCKS "reset_sensor_mocks" +#define CMD_RESET_SIMULATOR "reset_simulator" +#define CMD_RPM "rpm" +#define CMD_SELF_STIMULATION "self_stimulation" +#define CMD_SET "set" +#define CMD_SET_SENSOR_MOCK "set_sensor_mock" +#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 COIL_1_NAME "Spark #1" +#define COIL_2_NAME "Spark #2" +#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_ENRICH_COUNT 6 +#define cranking_parameters_s_size 8 +#define CRITICAL_BUFFER_SIZE 120 +#define CRITICAL_PREFIX "CRITICAL" +#define cyl_trim_s_size 16 +#define DAC_OUTPUT_COUNT 2 +#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_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_io_size 8 +#define DC_PER_STEPPER 2 +#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",12="DBG_12",13="DBG_13",16="DBG_16",19="DBG_19",2="DBG_2",20="DBG_20",21="DBG_21",22="DBG_22",24="DBG_24",25="DBG_25",26="DBG_26",29="DBG_29",32="DBG_32",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",5="DBG_5",6="DBG_6",7="DBG_7",8="DBG_8",9="DBG_9",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",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",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_12 12 +#define debug_mode_e_DBG_13 13 +#define debug_mode_e_DBG_16 16 +#define debug_mode_e_DBG_19 19 +#define debug_mode_e_DBG_2 2 +#define debug_mode_e_DBG_20 20 +#define debug_mode_e_DBG_21 21 +#define debug_mode_e_DBG_22 22 +#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_32 32 +#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_5 5 +#define debug_mode_e_DBG_6 6 +#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_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_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_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_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 DEFAULT_SELT_STIM_RPM 1200 +#define DEFAULT_SELT_STIM_VVT0 23 +#define DEFAULT_SOLENOID_FREQUENCY 300 +#define DIGIPOT_COUNT 4 +#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",4="ES_PLX" +#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM" +#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 4708 +#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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_BMW_M52 22 +#define engine_type_e_BMW_M73_MRE 50 +#define engine_type_e_BMW_M73_MRE_SLAVE 51 +#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_UNUSED_35 35 +#define engine_type_e_ET_UNUSED_55 55 +#define engine_type_e_ET_UNUSED_56 56 +#define engine_type_e_ETB_BENCH_ENGINE 58 +#define engine_type_e_FERRARI_F136 105 +#define engine_type_e_FORD_ASPIRE_1996 3 +#define engine_type_e_FORD_COYOTE 11 +#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_MIATA_NA6_MAP 41 +#define engine_type_e_FRANKENSO_QA_ENGINE 49 +#define engine_type_e_FRANKENSO_TEST_33810 59 +#define engine_type_e_FUEL_BENCH 15 +#define engine_type_e_GM_SBC 98 +#define engine_type_e_GY6_139QMB 8 +#define engine_type_e_HARLEY 6 +#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_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_2CHAN_STIM_QC 75 +#define engine_type_e_HELLEN_4CHAN_STIM_QC 74 +#define engine_type_e_HELLEN_HONDA_BCM 57 +#define engine_type_e_HONDA_600 43 +#define engine_type_e_HONDA_K 90 +#define engine_type_e_HONDA_OBD1 66 +#define engine_type_e_HONDA_OBD2A 91 +#define engine_type_e_HYUNDAI_PB 104 +#define engine_type_e_L9779_BENCH_ENGINE 60 +#define engine_type_e_MAVERICK_X3 54 +#define engine_type_e_MAZDA_MIATA_NA6 34 +#define engine_type_e_MAZDA_MIATA_NA94 80 +#define engine_type_e_MAZDA_MIATA_NA96 10 +#define engine_type_e_MAZDA_MIATA_NB1 83 +#define engine_type_e_MAZDA_MIATA_NB2 69 +#define engine_type_e_MAZDA_MIATA_NB2_36 86 +#define engine_type_e_MAZDA_MIATA_NC 20 +#define engine_type_e_ME17_9_MISC 33 +#define engine_type_e_MIATA_PROTEUS_TCU 1 +#define engine_type_e_MINIMAL_PINS 99 +#define engine_type_e_MITSUBISHI_3A92 12 +#define engine_type_e_MITSUBISHI_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_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_GM_LS_4 27 +#define engine_type_e_PROTEUS_LUA_DEMO 25 +#define engine_type_e_PROTEUS_M111 17 +#define engine_type_e_PROTEUS_NISSAN_VQ35 103 +#define engine_type_e_PROTEUS_QC_TEST_BOARD 42 +#define engine_type_e_PROTEUS_STIM_QC 73 +#define engine_type_e_PROTEUS_VW_B6 39 +#define engine_type_e_SACHS 29 +#define engine_type_e_SIMULATOR_CONFIG 92 +#define engine_type_e_SUBARU_EG33 70 +#define engine_type_e_TEST_100 100 +#define engine_type_e_TEST_101 101 +#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_TOYOTA_1NZ_FE 13 +#define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 +#define engine_type_e_UNUSED102 102 +#define engine_type_e_UNUSED24 24 +#define engine_type_e_UNUSED47 47 +#define engine_type_e_UNUSED67 67 +#define engine_type_e_UNUSED9 9 +#define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 +#define engine_type_e_UNUSED_21 21 +#define engine_type_e_UNUSED_65 65 +#define engine_type_e_UNUSED_97 97 +#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 ETB2_TRIM_SIZE 6 +#define ETB_BIAS_CURVE_LENGTH 8 +#define ETB_COUNT 2 +#define ETB_HW_MAX_FREQUENCY 3000 +#define FLASH_DATA_VERSION 20014 +#define FUEL_LEVEL_TABLE_COUNT 8 +#define FUEL_LOAD_COUNT 16 +#define fuel_pressure_sensor_mode_e_auto_enum 0="FPM_Absolute",2="FPM_Differential",1="FPM_Gauge" +#define fuel_pressure_sensor_mode_e_enum "Absolute", "Gauge", "Differential", "INVALID" +#define fuel_pressure_sensor_mode_e_FPM_Absolute 0 +#define fuel_pressure_sensor_mode_e_FPM_Differential 2 +#define fuel_pressure_sensor_mode_e_FPM_Gauge 1 +#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_SYNC "Sync" +#define GAUGE_CATEGORY_TIMING "Timing" +#define GAUGE_COIL_DWELL_TIME "Ignition: coil charge time" +#define GAUGE_NAME_ACCEL_LAT "Accel: Lateral" +#define GAUGE_NAME_ACCEL_LON "Accel: Longitudinal" +#define GAUGE_NAME_ACCEL_ROLL "Acceleration: Roll" +#define GAUGE_NAME_ACCEL_VERT "Accel: Vertical" +#define GAUGE_NAME_ACCEL_YAW "Acceleration: Yaw" +#define GAUGE_NAME_ADJUSTED_TIMING "Timing: ignition" +#define GAUGE_NAME_AFR "Air/Fuel Ratio" +#define GAUGE_NAME_AFR2 "Air/Fuel Ratio 2" +#define GAUGE_NAME_AFR2_GAS_SCALE "Air/Fuel Ratio 2 (Gas Scale)" +#define GAUGE_NAME_AFR_GAS_SCALE "Air/Fuel Ratio (Gas Scale)" +#define GAUGE_NAME_AIR_FLOW_ESTIMATE "Air: Flow estimate" +#define GAUGE_NAME_AIR_FLOW_MEASURED "MAF" +#define GAUGE_NAME_AIR_FLOW_MEASURED_2 "MAF #2" +#define GAUGE_NAME_AIR_MASS "Air: Cylinder airmass" +#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_CAN_READ_OK "CAN: Rx" +#define GAUGE_NAME_CAN_WRITE_ERR "CAN: Tx err" +#define GAUGE_NAME_CAN_WRITE_OK "CAN: Tx OK" +#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 "TCU: Desired Gear" +#define GAUGE_NAME_DETECTED_GEAR "Detected Gear" +#define GAUGE_NAME_DWELL_DUTY "Ignition: 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 cycle 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_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_INJ_DUTY_STAGE_2 "Fuel: injector duty cycle stage 2" +#define GAUGE_NAME_FUEL_INJECTION_TIMING "Fuel: Injection timing SOI" +#define GAUGE_NAME_FUEL_LAST_INJECTION "Fuel: Last inj pulse width" +#define GAUGE_NAME_FUEL_LAST_INJECTION_STAGE_2 "Fuel: Last inj pulse width stg 2" +#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_TEMPERATURE "Fuel Temperature" +#define GAUGE_NAME_FUEL_TPS_EXTRA "Fuel: TPS AE 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_GYRO_YAW "Gyro: Yaw rate" +#define GAUGE_NAME_IAC "Idle: Position" +#define GAUGE_NAME_IAT "IAT" +#define GAUGE_NAME_IDLE_POSITION "Idle: Position sensor" +#define GAUGE_NAME_IGNITION_LOAD "Ignition: load" +#define GAUGE_NAME_IGNITION_MODE "Ignition: Mode" +#define GAUGE_NAME_INJECTION_MODE "Fuel: Injection mode" +#define GAUGE_NAME_INJECTOR_LAG "Fuel: injector lag" +#define GAUGE_NAME_ISS "TCU: 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 "TCU: Torque Converter Ratio" +#define GAUGE_NAME_TCHARGE "Air: SD tCharge" +#define GAUGE_NAME_THROTTLE_PEDAL "Throttle pedal position" +#define GAUGE_NAME_TIME "Time" +#define GAUGE_NAME_TIMING_ADVANCE "Ignition: 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 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",249="CAN_PIN_0",250="CAN_PIN_1",251="CAN_PIN_2",252="CAN_PIN_3",253="CAN_PIN_4",254="CAN_PIN_5",255="CAN_PIN_6",256="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",215="L9779_IGN_1",216="L9779_IGN_2",217="L9779_IGN_3",218="L9779_IGN_4",219="L9779_OUT_1",228="L9779_OUT_10",229="L9779_OUT_11",230="L9779_OUT_12",231="L9779_OUT_13",232="L9779_OUT_14",233="L9779_OUT_15",234="L9779_OUT_16",235="L9779_OUT_17",236="L9779_OUT_18",237="L9779_OUT_19",220="L9779_OUT_2",238="L9779_OUT_20",243="L9779_OUT_25",244="L9779_OUT_26",245="L9779_OUT_27",246="L9779_OUT_28",221="L9779_OUT_3",222="L9779_OUT_4",223="L9779_OUT_5",224="L9779_OUT_6",225="L9779_OUT_7",226="L9779_OUT_8",227="L9779_OUT_9",239="L9779_OUT_A",240="L9779_OUT_B",241="L9779_OUT_C",242="L9779_OUT_D",247="L9779_OUT_MRD",248="L9779_PIN_KEY",284="MC33810_0_GD_0",285="MC33810_0_GD_1",286="MC33810_0_GD_2",287="MC33810_0_GD_3",280="MC33810_0_OUT_0",281="MC33810_0_OUT_1",282="MC33810_0_OUT_2",283="MC33810_0_OUT_3",294="MC33810_1_GD_0",295="MC33810_1_GD_1",296="MC33810_1_GD_2",297="MC33810_1_GD_3",290="MC33810_1_OUT_0",291="MC33810_1_OUT_1",292="MC33810_1_OUT_2",293="MC33810_1_OUT_3",146="MC33972_PIN_1",155="MC33972_PIN_10",156="MC33972_PIN_11",157="MC33972_PIN_12",158="MC33972_PIN_13",159="MC33972_PIN_14",160="MC33972_PIN_15",161="MC33972_PIN_16",162="MC33972_PIN_17",163="MC33972_PIN_18",164="MC33972_PIN_19",147="MC33972_PIN_2",165="MC33972_PIN_20",166="MC33972_PIN_21",167="MC33972_PIN_22",148="MC33972_PIN_3",149="MC33972_PIN_4",150="MC33972_PIN_5",151="MC33972_PIN_6",152="MC33972_PIN_7",153="MC33972_PIN_8",154="MC33972_PIN_9",257="PROTECTED_PIN_0",258="PROTECTED_PIN_1",267="PROTECTED_PIN_10",268="PROTECTED_PIN_11",269="PROTECTED_PIN_12",270="PROTECTED_PIN_13",271="PROTECTED_PIN_14",272="PROTECTED_PIN_15",259="PROTECTED_PIN_2",260="PROTECTED_PIN_3",261="PROTECTED_PIN_4",262="PROTECTED_PIN_5",263="PROTECTED_PIN_6",264="PROTECTED_PIN_7",265="PROTECTED_PIN_8",266="PROTECTED_PIN_9",199="TLE6240_PIN_1",208="TLE6240_PIN_10",209="TLE6240_PIN_11",210="TLE6240_PIN_12",211="TLE6240_PIN_13",212="TLE6240_PIN_14",213="TLE6240_PIN_15",214="TLE6240_PIN_16",200="TLE6240_PIN_2",201="TLE6240_PIN_3",202="TLE6240_PIN_4",203="TLE6240_PIN_5",204="TLE6240_PIN_6",205="TLE6240_PIN_7",206="TLE6240_PIN_8",207="TLE6240_PIN_9",168="TLE8888_PIN_1",177="TLE8888_PIN_10",178="TLE8888_PIN_11",179="TLE8888_PIN_12",180="TLE8888_PIN_13",181="TLE8888_PIN_14",182="TLE8888_PIN_15",183="TLE8888_PIN_16",184="TLE8888_PIN_17",185="TLE8888_PIN_18",186="TLE8888_PIN_19",169="TLE8888_PIN_2",187="TLE8888_PIN_20",188="TLE8888_PIN_21",189="TLE8888_PIN_22",190="TLE8888_PIN_23",191="TLE8888_PIN_24",192="TLE8888_PIN_25",193="TLE8888_PIN_26",194="TLE8888_PIN_27",195="TLE8888_PIN_28",170="TLE8888_PIN_3",171="TLE8888_PIN_4",172="TLE8888_PIN_5",173="TLE8888_PIN_6",174="TLE8888_PIN_7",175="TLE8888_PIN_8",176="TLE8888_PIN_9",197="TLE8888_PIN_KEY",196="TLE8888_PIN_MR",198="TLE8888_PIN_WAKE",300="TLE9104_0_OUT_0",301="TLE9104_0_OUT_1",302="TLE9104_0_OUT_2",303="TLE9104_0_OUT_3",304="TLE9104_1_OUT_0",305="TLE9104_1_OUT_1",306="TLE9104_1_OUT_2",307="TLE9104_1_OUT_3",308="TLE9104_2_OUT_0",309="TLE9104_2_OUT_1",310="TLE9104_2_OUT_2",311="TLE9104_2_OUT_3",312="TLE9104_3_OUT_0",313="TLE9104_3_OUT_1",314="TLE9104_3_OUT_2",315="TLE9104_3_OUT_3",316="TLE9104_4_OUT_0",317="TLE9104_4_OUT_1",318="TLE9104_4_OUT_2",319="TLE9104_4_OUT_3",320="TLE9104_5_OUT_0",321="TLE9104_5_OUT_1",322="TLE9104_5_OUT_2",323="TLE9104_5_OUT_3" +#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 249 +#define Gpio_CAN_PIN_1 250 +#define Gpio_CAN_PIN_2 251 +#define Gpio_CAN_PIN_3 252 +#define Gpio_CAN_PIN_4 253 +#define Gpio_CAN_PIN_5 254 +#define Gpio_CAN_PIN_6 255 +#define Gpio_CAN_PIN_7 256 +#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_L9779_IGN_1 215 +#define Gpio_L9779_IGN_2 216 +#define Gpio_L9779_IGN_3 217 +#define Gpio_L9779_IGN_4 218 +#define Gpio_L9779_OUT_1 219 +#define Gpio_L9779_OUT_10 228 +#define Gpio_L9779_OUT_11 229 +#define Gpio_L9779_OUT_12 230 +#define Gpio_L9779_OUT_13 231 +#define Gpio_L9779_OUT_14 232 +#define Gpio_L9779_OUT_15 233 +#define Gpio_L9779_OUT_16 234 +#define Gpio_L9779_OUT_17 235 +#define Gpio_L9779_OUT_18 236 +#define Gpio_L9779_OUT_19 237 +#define Gpio_L9779_OUT_2 220 +#define Gpio_L9779_OUT_20 238 +#define Gpio_L9779_OUT_25 243 +#define Gpio_L9779_OUT_26 244 +#define Gpio_L9779_OUT_27 245 +#define Gpio_L9779_OUT_28 246 +#define Gpio_L9779_OUT_3 221 +#define Gpio_L9779_OUT_4 222 +#define Gpio_L9779_OUT_5 223 +#define Gpio_L9779_OUT_6 224 +#define Gpio_L9779_OUT_7 225 +#define Gpio_L9779_OUT_8 226 +#define Gpio_L9779_OUT_9 227 +#define Gpio_L9779_OUT_A 239 +#define Gpio_L9779_OUT_B 240 +#define Gpio_L9779_OUT_C 241 +#define Gpio_L9779_OUT_D 242 +#define Gpio_L9779_OUT_MRD 247 +#define Gpio_L9779_PIN_KEY 248 +#define Gpio_MC33810_0_GD_0 284 +#define Gpio_MC33810_0_GD_1 285 +#define Gpio_MC33810_0_GD_2 286 +#define Gpio_MC33810_0_GD_3 287 +#define Gpio_MC33810_0_OUT_0 280 +#define Gpio_MC33810_0_OUT_1 281 +#define Gpio_MC33810_0_OUT_2 282 +#define Gpio_MC33810_0_OUT_3 283 +#define Gpio_MC33810_1_GD_0 294 +#define Gpio_MC33810_1_GD_1 295 +#define Gpio_MC33810_1_GD_2 296 +#define Gpio_MC33810_1_GD_3 297 +#define Gpio_MC33810_1_OUT_0 290 +#define Gpio_MC33810_1_OUT_1 291 +#define Gpio_MC33810_1_OUT_2 292 +#define Gpio_MC33810_1_OUT_3 293 +#define Gpio_MC33972_PIN_1 146 +#define Gpio_MC33972_PIN_10 155 +#define Gpio_MC33972_PIN_11 156 +#define Gpio_MC33972_PIN_12 157 +#define Gpio_MC33972_PIN_13 158 +#define Gpio_MC33972_PIN_14 159 +#define Gpio_MC33972_PIN_15 160 +#define Gpio_MC33972_PIN_16 161 +#define Gpio_MC33972_PIN_17 162 +#define Gpio_MC33972_PIN_18 163 +#define Gpio_MC33972_PIN_19 164 +#define Gpio_MC33972_PIN_2 147 +#define Gpio_MC33972_PIN_20 165 +#define Gpio_MC33972_PIN_21 166 +#define Gpio_MC33972_PIN_22 167 +#define Gpio_MC33972_PIN_3 148 +#define Gpio_MC33972_PIN_4 149 +#define Gpio_MC33972_PIN_5 150 +#define Gpio_MC33972_PIN_6 151 +#define Gpio_MC33972_PIN_7 152 +#define Gpio_MC33972_PIN_8 153 +#define Gpio_MC33972_PIN_9 154 +#define Gpio_PROTECTED_PIN_0 257 +#define Gpio_PROTECTED_PIN_1 258 +#define Gpio_PROTECTED_PIN_10 267 +#define Gpio_PROTECTED_PIN_11 268 +#define Gpio_PROTECTED_PIN_12 269 +#define Gpio_PROTECTED_PIN_13 270 +#define Gpio_PROTECTED_PIN_14 271 +#define Gpio_PROTECTED_PIN_15 272 +#define Gpio_PROTECTED_PIN_2 259 +#define Gpio_PROTECTED_PIN_3 260 +#define Gpio_PROTECTED_PIN_4 261 +#define Gpio_PROTECTED_PIN_5 262 +#define Gpio_PROTECTED_PIN_6 263 +#define Gpio_PROTECTED_PIN_7 264 +#define Gpio_PROTECTED_PIN_8 265 +#define Gpio_PROTECTED_PIN_9 266 +#define Gpio_TLE6240_PIN_1 199 +#define Gpio_TLE6240_PIN_10 208 +#define Gpio_TLE6240_PIN_11 209 +#define Gpio_TLE6240_PIN_12 210 +#define Gpio_TLE6240_PIN_13 211 +#define Gpio_TLE6240_PIN_14 212 +#define Gpio_TLE6240_PIN_15 213 +#define Gpio_TLE6240_PIN_16 214 +#define Gpio_TLE6240_PIN_2 200 +#define Gpio_TLE6240_PIN_3 201 +#define Gpio_TLE6240_PIN_4 202 +#define Gpio_TLE6240_PIN_5 203 +#define Gpio_TLE6240_PIN_6 204 +#define Gpio_TLE6240_PIN_7 205 +#define Gpio_TLE6240_PIN_8 206 +#define Gpio_TLE6240_PIN_9 207 +#define Gpio_TLE8888_PIN_1 168 +#define Gpio_TLE8888_PIN_10 177 +#define Gpio_TLE8888_PIN_11 178 +#define Gpio_TLE8888_PIN_12 179 +#define Gpio_TLE8888_PIN_13 180 +#define Gpio_TLE8888_PIN_14 181 +#define Gpio_TLE8888_PIN_15 182 +#define Gpio_TLE8888_PIN_16 183 +#define Gpio_TLE8888_PIN_17 184 +#define Gpio_TLE8888_PIN_18 185 +#define Gpio_TLE8888_PIN_19 186 +#define Gpio_TLE8888_PIN_2 169 +#define Gpio_TLE8888_PIN_20 187 +#define Gpio_TLE8888_PIN_21 188 +#define Gpio_TLE8888_PIN_22 189 +#define Gpio_TLE8888_PIN_23 190 +#define Gpio_TLE8888_PIN_24 191 +#define Gpio_TLE8888_PIN_25 192 +#define Gpio_TLE8888_PIN_26 193 +#define Gpio_TLE8888_PIN_27 194 +#define Gpio_TLE8888_PIN_28 195 +#define Gpio_TLE8888_PIN_3 170 +#define Gpio_TLE8888_PIN_4 171 +#define Gpio_TLE8888_PIN_5 172 +#define Gpio_TLE8888_PIN_6 173 +#define Gpio_TLE8888_PIN_7 174 +#define Gpio_TLE8888_PIN_8 175 +#define Gpio_TLE8888_PIN_9 176 +#define Gpio_TLE8888_PIN_KEY 197 +#define Gpio_TLE8888_PIN_MR 196 +#define Gpio_TLE8888_PIN_WAKE 198 +#define Gpio_TLE9104_0_OUT_0 300 +#define Gpio_TLE9104_0_OUT_1 301 +#define Gpio_TLE9104_0_OUT_2 302 +#define Gpio_TLE9104_0_OUT_3 303 +#define Gpio_TLE9104_1_OUT_0 304 +#define Gpio_TLE9104_1_OUT_1 305 +#define Gpio_TLE9104_1_OUT_2 306 +#define Gpio_TLE9104_1_OUT_3 307 +#define Gpio_TLE9104_2_OUT_0 308 +#define Gpio_TLE9104_2_OUT_1 309 +#define Gpio_TLE9104_2_OUT_2 310 +#define Gpio_TLE9104_2_OUT_3 311 +#define Gpio_TLE9104_3_OUT_0 312 +#define Gpio_TLE9104_3_OUT_1 313 +#define Gpio_TLE9104_3_OUT_2 314 +#define Gpio_TLE9104_3_OUT_3 315 +#define Gpio_TLE9104_4_OUT_0 316 +#define Gpio_TLE9104_4_OUT_1 317 +#define Gpio_TLE9104_4_OUT_2 318 +#define Gpio_TLE9104_4_OUT_3 319 +#define Gpio_TLE9104_5_OUT_0 320 +#define Gpio_TLE9104_5_OUT_1 321 +#define Gpio_TLE9104_5_OUT_2 322 +#define Gpio_TLE9104_5_OUT_3 323 +#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",26="GPPWM_BaroPressure",3="GPPWM_Clt",25="GPPWM_DetectedGear",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", "Gear (detected)", "Baro pressure" +#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_BaroPressure 26 +#define gppwm_channel_e_GPPWM_Clt 3 +#define gppwm_channel_e_GPPWM_DetectedGear 25 +#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 IGNITION_OUTPUT "Ignition Output" +#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 switch" +#define INDICATOR_NAME_CLUTCH_DOWN "Clutch: down" +#define INDICATOR_NAME_CLUTCH_UP "Clutch: up" +#define INJ_STAGING_COUNT 6 +#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_1_NAME "Injector #1" +#define INJECTOR_2_NAME "Injector #2" +#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 32 +#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 "https://rusefi.com/s/hellenNB1" +#define MAP_ANGLE_SIZE 8 +#define MAP_sensor_config_s_size 140 +#define MAP_WINDOW_SIZE 8 +#define MAX_CYLINDER_COUNT 12 +#define mc33810maxDwellTimer_e_auto_enum 0="DWELL_2MS",3="DWELL_16MS",4="DWELL_32MS",1="DWELL_4MS",5="DWELL_64MS",2="DWELL_8MS" +#define mc33810maxDwellTimer_e_DWELL_16MS 3 +#define mc33810maxDwellTimer_e_DWELL_2MS 0 +#define mc33810maxDwellTimer_e_DWELL_32MS 4 +#define mc33810maxDwellTimer_e_DWELL_4MS 1 +#define mc33810maxDwellTimer_e_DWELL_64MS 5 +#define mc33810maxDwellTimer_e_DWELL_8MS 2 +#define MLQ_FIELD_HEADER_SIZE 89 +#define MLQ_HEADER_SIZE 24 +#define operation_mode_e_FOUR_STROKE_CAM_SENSOR 2 +#define operation_mode_e_FOUR_STROKE_CRANK_SENSOR 1 +#define operation_mode_e_FOUR_STROKE_SIX_TIMES_CRANK_SENSOR 7 +#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",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" +#define output_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1I AC Fan Relay","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3D - MAP","INVALID","INVALID","INVALID","INVALID","ETB EN","ETB +","ETB -","INVALID","INVALID","INVALID","INVALID","3G - IGN_1 (1&4)","INVALID","INVALID","INVALID","INVALID","INVALID","1U - O2H","INVALID","INVALID","INVALID","INVALID","INVALID","4E - VVT","3Z - INJ_4","3Y - INJ_3","1R - ECF","2K - TACH","2Q - IDLE","1O - ALTERN","INVALID","INVALID","INVALID","INVALID","INVALID","3H - IGN_2 (2&3)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3T/4D - BOOST OUT","INVALID","3Q - VICS","INVALID","INVALID","INVALID","2M US / 2P EUROPE - FPUMP","INVALID","1E - Check Engine Light","INVALID","INVALID","3W - INJ_1","3X - INJ_2","INVALID","INVALID","1S - AC Relay","1Q - Aternator Warning Lamp","3V - O2H2" +#define PACK_ADD_TEMPERATURE 40 +#define PACK_MULT_AFR 1000 +#define PACK_MULT_AFR_CFG 10 +#define PACK_MULT_ANGLE 50 +#define PACK_MULT_FLEX 2 +#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_MULT_VSS 100 +#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 22236 +#define pid_s_size 20 +#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_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_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 PRIME_CURVE_COUNT 8 +#define PROTOCOL_ACR_NAME "acr" +#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_HIP_NAME "HIP" +#define PROTOCOL_HPFP_NAME "hpfp" +#define PROTOCOL_INJ1_SHORT_NAME "i1" +#define PROTOCOL_INJ1_STAGE2_SHORT_NAME "j1" +#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 RANGE_INPUT_COUNT 6 +#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 sent_input_pin_e_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 SentEtbType_auto_enum 0="NONE",3="CUSTOM",2="FORD_TYPE_1",1="GM_TYPE_1" +#define SentEtbType_CUSTOM 3 +#define SentEtbType_enum "None", "GM type 1", "Ford type 1", "Custom" +#define SentEtbType_FORD_TYPE_1 2 +#define SentEtbType_GM_TYPE_1 1 +#define SentEtbType_NONE 0 +#define show_Frankenso_presets false +#define show_HellenNB1_presets true +#define show_microRusEFI_presets false +#define show_Proteus_presets false +#define show_test_presets false +#define SIGNATURE_HASH 1369714556 +#define SIMULATOR_TUNE_BIN_FILE_NAME "generated/simulator_tune_image.bin" +#define SIMULATOR_TUNE_BIN_FILE_NAME_PREFIX "generated/simulator_tune_image" +#define SIMULATOR_TUNE_BIN_FILE_NAME_SUFFIX ".bin" +#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",5="SPI_DEVICE_5",6="SPI_DEVICE_6" +#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_DEVICE_5 5 +#define spi_device_e_SPI_DEVICE_6 6 +#define spi_device_e_SPI_NONE 0 +#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",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" +#define switch_input_pin_e_fullenum "NONE","INVALID","INVALID","TPS1","INVALID","PPS1","INVALID","INVALID","INVALID","3S - EGR BOOST IN","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2A - Pressure Input","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4C - IN TEMP/PPS2","1P - AC Switch","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3I - Clutch","1V - Neutral","INVALID","INVALID","INVALID","INVALID","3J - O2S2","INVALID","INVALID","INVALID","INVALID","INVALID","1F - Brake/RES1","1G - Steering/RES2" +#define TABLE_4_RPM 10 +#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 22236 +#define TPS_2_BYTE_PACKING_MULT 100 +#define TPS_TPS_ACCEL_CLT_CORR_TABLE 4 +#define TPS_TPS_ACCEL_TABLE 8 +#define TRACTION_CONTROL_ETB_DROP_SIZE 6 +#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 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77 +#define TRIGGER_CYCLE_DURATION "cycleDuration" +#define TRIGGER_GAP_FROM "gapFrom" +#define TRIGGER_GAP_TO "gapTo" +#define TRIGGER_GAPS_COUNT "gapsCount" +#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_KNOWN_OPERATION_MODE "knownOperationMode" +#define TRIGGER_SIMULATOR_PIN_COUNT 2 +#define TRIGGER_SYNC_EDGE "syncEdge" +#define trigger_type_e_auto_enum 0="TT_TOOTHED_WHEEL",38="TT_12_TOOTH_CRANK",50="TT_1_16",25="TT_2JZ_3_34_SIMULATION_ONLY",70="TT_36_2_1",71="TT_36_2_1_1",23="TT_36_2_2_2",31="TT_3_1_CAM",72="TT_3_TOOTH_CRANK",77="TT_60DEG_TOOTH",75="TT_60_2_2_F3R",20="TT_60_2_VW",80="TT_6_TOOTH_CRANK",21="TT_BENELLI_TRE",30="TT_CHRYSLER_NGC_36_2_2",6="TT_DAIHATSU_3_CYL",81="TT_DAIHATSU_4_CYL",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",18="TT_HALF_MOON",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",34="TT_MITSU_4G63_CAM",76="TT_MITSU_4G63_CRANK",29="TT_MITSU_4G9x_CAM",11="TT_NARROW_SINGLE_TOOTH",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",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",82="TT_UNUSED",56="TT_VVT_BARRA_3_PLUS_1",47="TT_VVT_BOSCH_QUICK_START",4="TT_VVT_FORD_COYOTE",13="TT_VVT_MAZDA_SKYACTIV",43="TT_VVT_MIATA_NB",62="TT_VVT_MITSUBISHI_3A92",78="TT_VVT_MITSUBISHI_4G69",79="TT_VVT_MITSU_6G72",59="TT_VVT_NISSAN_VQ35",17="TT_VVT_TOYOTA_3_TOOTH",73="TT_VVT_TOYOTA_4_1" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83" +#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_SIMULATION_ONLY 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_3_TOOTH_CRANK 72 +#define trigger_type_e_TT_60_2_2_F3R 75 +#define trigger_type_e_TT_60_2_VW 20 +#define trigger_type_e_TT_60DEG_TOOTH 77 +#define trigger_type_e_TT_6_TOOTH_CRANK 80 +#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_3_CYL 6 +#define trigger_type_e_TT_DAIHATSU_4_CYL 81 +#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_HALF_MOON 18 +#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_4G63_CRANK 76 +#define trigger_type_e_TT_MITSU_4G9x_CAM 29 +#define trigger_type_e_TT_NARROW_SINGLE_TOOTH 11 +#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_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 82 +#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_FORD_COYOTE 4 +#define trigger_type_e_TT_VVT_MAZDA_SKYACTIV 13 +#define trigger_type_e_TT_VVT_MIATA_NB 43 +#define trigger_type_e_TT_VVT_MITSU_6G72 79 +#define trigger_type_e_TT_VVT_MITSUBISHI_3A92 62 +#define trigger_type_e_TT_VVT_MITSUBISHI_4G69 78 +#define trigger_type_e_TT_VVT_NISSAN_VQ35 59 +#define trigger_type_e_TT_VVT_TOYOTA_3_TOOTH 17 +#define trigger_type_e_TT_VVT_TOYOTA_4_1 73 +#define TRIGGER_TYPE_WITH_SECOND_WHEEL trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64 +#define TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 +#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_14_command_TS_14_0 0 +#define ts_14_command_TS_14_1 1 +#define ts_14_command_TS_14_4 4 +#define ts_14_command_TS_14_5 5 +#define ts_14_command_TS_14_9 9 +#define ts_14_command_TS_BURN_WITHOUT_FLASH 0x15 +#define ts_14_command_TS_ETB_AUTOCAL_0 0x0E +#define ts_14_command_TS_ETB_AUTOCAL_1 0x11 +#define ts_14_command_TS_ETB_RESET 0x0B +#define ts_14_command_TS_ETB_START_AUTOTUNE 0x0C +#define ts_14_command_TS_ETB_STOP_AUTOTUNE 0x10 +#define ts_14_command_TS_EXTERNAL_TRIGGER_STIMULATOR_ENABLE 0x13 +#define ts_14_command_TS_GRAB_PEDAL_UP 6 +#define ts_14_command_TS_GRAB_PEDAL_WOT 7 +#define ts_14_command_TS_GRAB_TPS_CLOSED 2 +#define ts_14_command_TS_GRAB_TPS_WOT 3 +#define ts_14_command_TS_RESET_MC33810 0x14 +#define ts_14_command_TS_RESET_TLE8888 8 +#define ts_14_command_TS_TRIGGER_STIMULATOR_DISABLE 0x0F +#define ts_14_command_TS_TRIGGER_STIMULATOR_ENABLE 0x0D +#define ts_14_command_TS_WIDEBAND_UPDATE 0x12 +#define ts_14_command_TS_WRITE_FLASH 0x0A +#define TS_BLOCK_READ_TIMEOUT 3000 +#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_10 10 +#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_2 2 +#define ts_command_e_TS_COMMAND_3 3 +#define ts_command_e_TS_COMMAND_4 4 +#define ts_command_e_TS_COMMAND_5 5 +#define ts_command_e_TS_COMMAND_6 6 +#define ts_command_e_TS_COMMAND_7 7 +#define ts_command_e_TS_COMMAND_8 8 +#define ts_command_e_TS_COMMAND_9 9 +#define ts_command_e_TS_DEBUG_MODE 0 +#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_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_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 20230721 +#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_BOOTLOADER 'L' +#define TS_QUERY_BOOTLOADER_char L +#define TS_QUERY_BOOTLOADER_NONE 0 +#define TS_QUERY_BOOTLOADER_OPENBLT 1 +#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 false +#define ts_show_can_pins false +#define ts_show_clt_iat_pullup true +#define ts_show_communityCommsLedPid false +#define ts_show_cylinder_10 true +#define ts_show_cylinder_11 true +#define ts_show_cylinder_12 true +#define ts_show_cylinder_2 true +#define ts_show_cylinder_3 true +#define ts_show_cylinder_4 true +#define ts_show_cylinder_5 true +#define ts_show_cylinder_6 true +#define ts_show_cylinder_7 true +#define ts_show_cylinder_8 true +#define ts_show_cylinder_9 true +#define ts_show_egt false +#define ts_show_etb true +#define ts_show_etb_pins false +#define ts_show_full_pinout true +#define ts_show_hardware_simulator false +#define ts_show_hip9011 false +#define ts_show_ign_key_analog_input false +#define ts_show_ign_key_switch false +#define ts_show_ignitionPinMode true +#define ts_show_inj_diag false +#define ts_show_injectionPinMode false +#define ts_show_l9779 false +#define ts_show_main_relay true +#define ts_show_main_relay_microRusEFI_message false +#define ts_show_mc33810 false +#define ts_show_onboard_accelerometer false +#define ts_show_output_diag false +#define ts_show_sd_card true +#define ts_show_sd_pins false +#define ts_show_software_knock true +#define ts_show_spi true +#define ts_show_spi2_enable true +#define ts_show_spi2_pins true +#define ts_show_spi3_pins true +#define ts_show_tle8888 false +#define ts_show_tps2 true +#define ts_show_tps_sent false +#define ts_show_trigger_comparator false +#define ts_show_tunerstudio_port true +#define ts_show_vbatt true +#define ts_show_vr_threshold_2 false +#define ts_show_vr_threshold_all false +#define ts_show_vr_threshold_pins true +#define ts_show_vvt_output true +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNB1.1369714556" +#define TS_SIMULATE_CAN '>' +#define TS_SIMULATE_CAN_char > +#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 1468 +#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 UiMode_auto_enum 0="FULL",1="INSTALLATION",2="TUNING" +#define UiMode_enum "Full", "Installation", "Tuning" +#define UiMode_FULL 0 +#define UiMode_INSTALLATION 1 +#define UiMode_TUNING 2 +#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 VOLTAGE_1_BYTE_PACKING_DIV 0.02 +#define VR_THRESHOLD_COUNT 2 +#define vr_threshold_s_size 16 +#define VSS_FILTER_MAX 200 +#define VSS_FILTER_MIN 3 +#define vvt_mode_e_auto_enum 0="VVT_INACTIVE",8="VVT_BARRA_3_PLUS_1",5="VVT_BOSCH_QUICK_START",19="VVT_FORD_COYOTE",7="VVT_FORD_ST170",21="VVT_HONDA_CBR_600",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",4="VVT_MITSUBISHI_4G69",17="VVT_MITSUBISHI_4G9x",20="VVT_MITSUBISHI_6G72",14="VVT_MITSUBISHI_6G75",11="VVT_NISSAN_MR",9="VVT_NISSAN_VQ",1="VVT_SINGLE_TOOTH",2="VVT_TOYOTA_3_TOOTH",6="VVT_TOYOTA_4_1" +#define vvt_mode_e_enum "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23" +#define vvt_mode_e_VVT_BARRA_3_PLUS_1 8 +#define vvt_mode_e_VVT_BOSCH_QUICK_START 5 +#define vvt_mode_e_VVT_FORD_COYOTE 19 +#define vvt_mode_e_VVT_FORD_ST170 7 +#define vvt_mode_e_VVT_HONDA_CBR_600 21 +#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_4G69 4 +#define vvt_mode_e_VVT_MITSUBISHI_4G9x 17 +#define vvt_mode_e_VVT_MITSUBISHI_6G72 20 +#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_SINGLE_TOOTH 1 +#define vvt_mode_e_VVT_TOYOTA_3_TOOTH 2 +#define vvt_mode_e_VVT_TOYOTA_4_1 6 +#define VVT_TRACKING_LENGTH 4 +#define WARNING_BUFFER_SIZE 120 +#define WWAE_TABLE_SIZE 8 diff --git a/firmware/controllers/generated/rusefi_generated_hellenMiataNB2.h b/firmware/controllers/generated/rusefi_generated_hellenMiataNB2.h new file mode 100644 index 0000000000..dda5ecbe86 --- /dev/null +++ b/firmware/controllers/generated/rusefi_generated_hellenMiataNB2.h @@ -0,0 +1,1605 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh integration/rusefi_config.txt +// + +#define adc_channel_e_auto_enum 0="EFI_ADC_NONE",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",17="EFI_ADC_16",18="EFI_ADC_17",19="EFI_ADC_18",20="EFI_ADC_19",3="EFI_ADC_2",21="EFI_ADC_20",22="EFI_ADC_21",23="EFI_ADC_22",24="EFI_ADC_23",25="EFI_ADC_24",26="EFI_ADC_25",27="EFI_ADC_26",28="EFI_ADC_27",29="EFI_ADC_28",30="EFI_ADC_29",4="EFI_ADC_3",31="EFI_ADC_30",32="EFI_ADC_31",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",33="EFI_ADC_LAST_CHANNEL" +#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_16 17 +#define adc_channel_e_EFI_ADC_17 18 +#define adc_channel_e_EFI_ADC_18 19 +#define adc_channel_e_EFI_ADC_19 20 +#define adc_channel_e_EFI_ADC_2 3 +#define adc_channel_e_EFI_ADC_20 21 +#define adc_channel_e_EFI_ADC_21 22 +#define adc_channel_e_EFI_ADC_22 23 +#define adc_channel_e_EFI_ADC_23 24 +#define adc_channel_e_EFI_ADC_24 25 +#define adc_channel_e_EFI_ADC_25 26 +#define adc_channel_e_EFI_ADC_26 27 +#define adc_channel_e_EFI_ADC_27 28 +#define adc_channel_e_EFI_ADC_28 29 +#define adc_channel_e_EFI_ADC_29 30 +#define adc_channel_e_EFI_ADC_3 4 +#define adc_channel_e_EFI_ADC_30 31 +#define adc_channel_e_EFI_ADC_31 32 +#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 33 +#define adc_channel_e_EFI_ADC_NONE 0 +#define adc_channel_e_enum 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)" +#define adc_channel_e_fullenum "NONE","5N - TPS2","3L - IGN_7 / AFR","intMAP (A15)","5P - PPS1","4V - TPS (A17)","4S/4T - Alternator voltage","3V - CAM (A19)","4J - VTCS/AUX4 (A20)","4F - AC_PRES/AUX1 (A23)","3Y - CRANK (A24)","4X - MAF (A9)","4U - MAP2/Ign8 (A10)","4P - CLT (A11)","4N - IAT (A14)","5M - PPS2 OR TEMPERATURE SENSOR","4AE - EGR/MAP4 (A22)" +#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",15="MT_MPXH6300",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_MPXH6300 15 +#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 AUX_SPEED_SENSOR_COUNT 2 +#define BANKS_COUNT 2 +#define BARO_CORR_SIZE 4 +#define BENCH_AC_RELAY_DURATION 800 +#define BENCH_FAN_DURATION 2000 +#define BENCH_FUEL_PUMP_DURATION 3000 +#define BENCH_MAIN_RELAY_DURATION 1000 +#define bench_mode_e_BENCH_AC_COMPRESSOR_RELAY 6 +#define bench_mode_e_BENCH_AUXOUT0 20 +#define bench_mode_e_BENCH_AUXOUT1 21 +#define bench_mode_e_BENCH_AUXOUT2 22 +#define bench_mode_e_BENCH_AUXOUT3 23 +#define bench_mode_e_BENCH_AUXOUT4 24 +#define bench_mode_e_BENCH_AUXOUT5 25 +#define bench_mode_e_BENCH_AUXOUT6 26 +#define bench_mode_e_BENCH_AUXOUT7 27 +#define bench_mode_e_BENCH_CANCEL 15 +#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 bench_mode_e_BENCH_VVT0_VALVE 16 +#define bench_mode_e_BENCH_VVT1_VALVE 17 +#define bench_mode_e_BENCH_VVT2_VALVE 18 +#define bench_mode_e_BENCH_VVT3_VALVE 19 +#define bench_mode_e_HD_ACR 28 +#define bench_mode_e_HD_ACR2 29 +#define BENCH_STARTER_DURATION 4000 +#define BENCH_VVT_DURATION 300 +#define blend_table_s_size 188 +#define BLOCKING_FACTOR 750 +#define BOOST_BLEND_COUNT 2 +#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",93="3T - VSS (D5)",8="3V - CAM (A19)",19="3Y - CRANK (A24)",80="4H - Neutral",81="5C - Digital Input",78="5I - Digital Input" +#define brain_input_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3V - CAM (A19)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3Y - CRANK (A24)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","5I - Digital Input","INVALID","4H - Neutral","5C - Digital Input","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3T - VSS (D5)" +#define brain_pin_diag_e_PIN_DRIVER_OFF 0x20 +#define brain_pin_diag_e_PIN_DRIVER_OVERTEMP 0x10 +#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 brain_pin_diag_e_PIN_UNKNOWN 0x80 +#define C_MC33810_COUNT 1 +#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_BENCH_HEADER2 0x66 +#define CAN_DEFAULT_BASE 0x200 +#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",4="CAN_BUS_BMW_E46",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",13="CAN_BUS_MS_SIMPLE_BROADCAST",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_E46 4 +#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_MS_SIMPLE_BROADCAST 13 +#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",2="BMW_e90",5="HONDA_CIVIC9",4="HYUNDAI_PB",3="NISSAN_350",1="W202" +#define can_vss_nbc_e_BMW_e46 0 +#define can_vss_nbc_e_BMW_e90 2 +#define can_vss_nbc_e_HONDA_CIVIC9 5 +#define can_vss_nbc_e_HYUNDAI_PB 4 +#define can_vss_nbc_e_NISSAN_350 3 +#define can_vss_nbc_e_W202 1 +#define CanGpioType_auto_enum 0="NONE",1="DRT",2="MS" +#define CanGpioType_DRT 1 +#define CanGpioType_enum "None", "DRT protocol", "MS protocol" +#define CanGpioType_MS 2 +#define CanGpioType_NONE 0 +#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_INDIVIDUAL_INJECTION "set_individual_coils_ignition" +#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_RESET_SENSOR_MOCKS "reset_sensor_mocks" +#define CMD_RESET_SIMULATOR "reset_simulator" +#define CMD_RPM "rpm" +#define CMD_SELF_STIMULATION "self_stimulation" +#define CMD_SET "set" +#define CMD_SET_SENSOR_MOCK "set_sensor_mock" +#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 COIL_1_NAME "Spark #1" +#define COIL_2_NAME "Spark #2" +#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_ENRICH_COUNT 6 +#define cranking_parameters_s_size 8 +#define CRITICAL_BUFFER_SIZE 120 +#define CRITICAL_PREFIX "CRITICAL" +#define cyl_trim_s_size 16 +#define DAC_OUTPUT_COUNT 2 +#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_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_io_size 8 +#define DC_PER_STEPPER 2 +#define debug_mode_e_auto_enum 0="DBG_0",10="DBG_10",11="DBG_11",12="DBG_12",13="DBG_13",16="DBG_16",19="DBG_19",2="DBG_2",20="DBG_20",21="DBG_21",22="DBG_22",24="DBG_24",25="DBG_25",26="DBG_26",29="DBG_29",32="DBG_32",34="DBG_34",35="DBG_35",36="DBG_36",37="DBG_37",38="DBG_38",43="DBG_43",46="DBG_46",5="DBG_5",6="DBG_6",7="DBG_7",8="DBG_8",9="DBG_9",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",30="DBG_ION",15="DBG_KNOCK",45="DBG_LOGIC_ANALYZER",48="DBG_LUA",27="DBG_MAP",28="DBG_METRICS",14="DBG_SR5_PROTOCOL",3="DBG_STEPPER_IDLE_CONTROL",47="DBG_TCU",31="DBG_TLE8888",1="DBG_TPS_ACCEL",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_12 12 +#define debug_mode_e_DBG_13 13 +#define debug_mode_e_DBG_16 16 +#define debug_mode_e_DBG_19 19 +#define debug_mode_e_DBG_2 2 +#define debug_mode_e_DBG_20 20 +#define debug_mode_e_DBG_21 21 +#define debug_mode_e_DBG_22 22 +#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_32 32 +#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_5 5 +#define debug_mode_e_DBG_6 6 +#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_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_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_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_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 DEFAULT_SELT_STIM_RPM 1200 +#define DEFAULT_SELT_STIM_VVT0 23 +#define DEFAULT_SOLENOID_FREQUENCY 300 +#define DIGIPOT_COUNT 4 +#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",4="ES_PLX" +#define ego_sensor_e_enum "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM" +#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 4708 +#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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_BMW_M52 22 +#define engine_type_e_BMW_M73_MRE 50 +#define engine_type_e_BMW_M73_MRE_SLAVE 51 +#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_UNUSED_35 35 +#define engine_type_e_ET_UNUSED_55 55 +#define engine_type_e_ET_UNUSED_56 56 +#define engine_type_e_ETB_BENCH_ENGINE 58 +#define engine_type_e_FERRARI_F136 105 +#define engine_type_e_FORD_ASPIRE_1996 3 +#define engine_type_e_FORD_COYOTE 11 +#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_MIATA_NA6_MAP 41 +#define engine_type_e_FRANKENSO_QA_ENGINE 49 +#define engine_type_e_FRANKENSO_TEST_33810 59 +#define engine_type_e_FUEL_BENCH 15 +#define engine_type_e_GM_SBC 98 +#define engine_type_e_GY6_139QMB 8 +#define engine_type_e_HARLEY 6 +#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_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_2CHAN_STIM_QC 75 +#define engine_type_e_HELLEN_4CHAN_STIM_QC 74 +#define engine_type_e_HELLEN_HONDA_BCM 57 +#define engine_type_e_HONDA_600 43 +#define engine_type_e_HONDA_K 90 +#define engine_type_e_HONDA_OBD1 66 +#define engine_type_e_HONDA_OBD2A 91 +#define engine_type_e_HYUNDAI_PB 104 +#define engine_type_e_L9779_BENCH_ENGINE 60 +#define engine_type_e_MAVERICK_X3 54 +#define engine_type_e_MAZDA_MIATA_NA6 34 +#define engine_type_e_MAZDA_MIATA_NA94 80 +#define engine_type_e_MAZDA_MIATA_NA96 10 +#define engine_type_e_MAZDA_MIATA_NB1 83 +#define engine_type_e_MAZDA_MIATA_NB2 69 +#define engine_type_e_MAZDA_MIATA_NB2_36 86 +#define engine_type_e_MAZDA_MIATA_NC 20 +#define engine_type_e_ME17_9_MISC 33 +#define engine_type_e_MIATA_PROTEUS_TCU 1 +#define engine_type_e_MINIMAL_PINS 99 +#define engine_type_e_MITSUBISHI_3A92 12 +#define engine_type_e_MITSUBISHI_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_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_GM_LS_4 27 +#define engine_type_e_PROTEUS_LUA_DEMO 25 +#define engine_type_e_PROTEUS_M111 17 +#define engine_type_e_PROTEUS_NISSAN_VQ35 103 +#define engine_type_e_PROTEUS_QC_TEST_BOARD 42 +#define engine_type_e_PROTEUS_STIM_QC 73 +#define engine_type_e_PROTEUS_VW_B6 39 +#define engine_type_e_SACHS 29 +#define engine_type_e_SIMULATOR_CONFIG 92 +#define engine_type_e_SUBARU_EG33 70 +#define engine_type_e_TEST_100 100 +#define engine_type_e_TEST_101 101 +#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_TOYOTA_1NZ_FE 13 +#define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 +#define engine_type_e_UNUSED102 102 +#define engine_type_e_UNUSED24 24 +#define engine_type_e_UNUSED47 47 +#define engine_type_e_UNUSED67 67 +#define engine_type_e_UNUSED9 9 +#define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 +#define engine_type_e_UNUSED_21 21 +#define engine_type_e_UNUSED_65 65 +#define engine_type_e_UNUSED_97 97 +#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 ETB2_TRIM_SIZE 6 +#define ETB_BIAS_CURVE_LENGTH 8 +#define ETB_COUNT 2 +#define ETB_HW_MAX_FREQUENCY 3000 +#define FLASH_DATA_VERSION 20014 +#define FUEL_LEVEL_TABLE_COUNT 8 +#define FUEL_LOAD_COUNT 16 +#define fuel_pressure_sensor_mode_e_auto_enum 0="FPM_Absolute",2="FPM_Differential",1="FPM_Gauge" +#define fuel_pressure_sensor_mode_e_enum "Absolute", "Gauge", "Differential", "INVALID" +#define fuel_pressure_sensor_mode_e_FPM_Absolute 0 +#define fuel_pressure_sensor_mode_e_FPM_Differential 2 +#define fuel_pressure_sensor_mode_e_FPM_Gauge 1 +#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_SYNC "Sync" +#define GAUGE_CATEGORY_TIMING "Timing" +#define GAUGE_COIL_DWELL_TIME "Ignition: coil charge time" +#define GAUGE_NAME_ACCEL_LAT "Accel: Lateral" +#define GAUGE_NAME_ACCEL_LON "Accel: Longitudinal" +#define GAUGE_NAME_ACCEL_ROLL "Acceleration: Roll" +#define GAUGE_NAME_ACCEL_VERT "Accel: Vertical" +#define GAUGE_NAME_ACCEL_YAW "Acceleration: Yaw" +#define GAUGE_NAME_ADJUSTED_TIMING "Timing: ignition" +#define GAUGE_NAME_AFR "Air/Fuel Ratio" +#define GAUGE_NAME_AFR2 "Air/Fuel Ratio 2" +#define GAUGE_NAME_AFR2_GAS_SCALE "Air/Fuel Ratio 2 (Gas Scale)" +#define GAUGE_NAME_AFR_GAS_SCALE "Air/Fuel Ratio (Gas Scale)" +#define GAUGE_NAME_AIR_FLOW_ESTIMATE "Air: Flow estimate" +#define GAUGE_NAME_AIR_FLOW_MEASURED "MAF" +#define GAUGE_NAME_AIR_FLOW_MEASURED_2 "MAF #2" +#define GAUGE_NAME_AIR_MASS "Air: Cylinder airmass" +#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_CAN_READ_OK "CAN: Rx" +#define GAUGE_NAME_CAN_WRITE_ERR "CAN: Tx err" +#define GAUGE_NAME_CAN_WRITE_OK "CAN: Tx OK" +#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 "TCU: Desired Gear" +#define GAUGE_NAME_DETECTED_GEAR "Detected Gear" +#define GAUGE_NAME_DWELL_DUTY "Ignition: 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 cycle 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_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_INJ_DUTY_STAGE_2 "Fuel: injector duty cycle stage 2" +#define GAUGE_NAME_FUEL_INJECTION_TIMING "Fuel: Injection timing SOI" +#define GAUGE_NAME_FUEL_LAST_INJECTION "Fuel: Last inj pulse width" +#define GAUGE_NAME_FUEL_LAST_INJECTION_STAGE_2 "Fuel: Last inj pulse width stg 2" +#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_TEMPERATURE "Fuel Temperature" +#define GAUGE_NAME_FUEL_TPS_EXTRA "Fuel: TPS AE 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_GYRO_YAW "Gyro: Yaw rate" +#define GAUGE_NAME_IAC "Idle: Position" +#define GAUGE_NAME_IAT "IAT" +#define GAUGE_NAME_IDLE_POSITION "Idle: Position sensor" +#define GAUGE_NAME_IGNITION_LOAD "Ignition: load" +#define GAUGE_NAME_IGNITION_MODE "Ignition: Mode" +#define GAUGE_NAME_INJECTION_MODE "Fuel: Injection mode" +#define GAUGE_NAME_INJECTOR_LAG "Fuel: injector lag" +#define GAUGE_NAME_ISS "TCU: 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 "TCU: Torque Converter Ratio" +#define GAUGE_NAME_TCHARGE "Air: SD tCharge" +#define GAUGE_NAME_THROTTLE_PEDAL "Throttle pedal position" +#define GAUGE_NAME_TIME "Time" +#define GAUGE_NAME_TIMING_ADVANCE "Ignition: 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 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",249="CAN_PIN_0",250="CAN_PIN_1",251="CAN_PIN_2",252="CAN_PIN_3",253="CAN_PIN_4",254="CAN_PIN_5",255="CAN_PIN_6",256="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",215="L9779_IGN_1",216="L9779_IGN_2",217="L9779_IGN_3",218="L9779_IGN_4",219="L9779_OUT_1",228="L9779_OUT_10",229="L9779_OUT_11",230="L9779_OUT_12",231="L9779_OUT_13",232="L9779_OUT_14",233="L9779_OUT_15",234="L9779_OUT_16",235="L9779_OUT_17",236="L9779_OUT_18",237="L9779_OUT_19",220="L9779_OUT_2",238="L9779_OUT_20",243="L9779_OUT_25",244="L9779_OUT_26",245="L9779_OUT_27",246="L9779_OUT_28",221="L9779_OUT_3",222="L9779_OUT_4",223="L9779_OUT_5",224="L9779_OUT_6",225="L9779_OUT_7",226="L9779_OUT_8",227="L9779_OUT_9",239="L9779_OUT_A",240="L9779_OUT_B",241="L9779_OUT_C",242="L9779_OUT_D",247="L9779_OUT_MRD",248="L9779_PIN_KEY",284="MC33810_0_GD_0",285="MC33810_0_GD_1",286="MC33810_0_GD_2",287="MC33810_0_GD_3",280="MC33810_0_OUT_0",281="MC33810_0_OUT_1",282="MC33810_0_OUT_2",283="MC33810_0_OUT_3",294="MC33810_1_GD_0",295="MC33810_1_GD_1",296="MC33810_1_GD_2",297="MC33810_1_GD_3",290="MC33810_1_OUT_0",291="MC33810_1_OUT_1",292="MC33810_1_OUT_2",293="MC33810_1_OUT_3",146="MC33972_PIN_1",155="MC33972_PIN_10",156="MC33972_PIN_11",157="MC33972_PIN_12",158="MC33972_PIN_13",159="MC33972_PIN_14",160="MC33972_PIN_15",161="MC33972_PIN_16",162="MC33972_PIN_17",163="MC33972_PIN_18",164="MC33972_PIN_19",147="MC33972_PIN_2",165="MC33972_PIN_20",166="MC33972_PIN_21",167="MC33972_PIN_22",148="MC33972_PIN_3",149="MC33972_PIN_4",150="MC33972_PIN_5",151="MC33972_PIN_6",152="MC33972_PIN_7",153="MC33972_PIN_8",154="MC33972_PIN_9",257="PROTECTED_PIN_0",258="PROTECTED_PIN_1",267="PROTECTED_PIN_10",268="PROTECTED_PIN_11",269="PROTECTED_PIN_12",270="PROTECTED_PIN_13",271="PROTECTED_PIN_14",272="PROTECTED_PIN_15",259="PROTECTED_PIN_2",260="PROTECTED_PIN_3",261="PROTECTED_PIN_4",262="PROTECTED_PIN_5",263="PROTECTED_PIN_6",264="PROTECTED_PIN_7",265="PROTECTED_PIN_8",266="PROTECTED_PIN_9",199="TLE6240_PIN_1",208="TLE6240_PIN_10",209="TLE6240_PIN_11",210="TLE6240_PIN_12",211="TLE6240_PIN_13",212="TLE6240_PIN_14",213="TLE6240_PIN_15",214="TLE6240_PIN_16",200="TLE6240_PIN_2",201="TLE6240_PIN_3",202="TLE6240_PIN_4",203="TLE6240_PIN_5",204="TLE6240_PIN_6",205="TLE6240_PIN_7",206="TLE6240_PIN_8",207="TLE6240_PIN_9",168="TLE8888_PIN_1",177="TLE8888_PIN_10",178="TLE8888_PIN_11",179="TLE8888_PIN_12",180="TLE8888_PIN_13",181="TLE8888_PIN_14",182="TLE8888_PIN_15",183="TLE8888_PIN_16",184="TLE8888_PIN_17",185="TLE8888_PIN_18",186="TLE8888_PIN_19",169="TLE8888_PIN_2",187="TLE8888_PIN_20",188="TLE8888_PIN_21",189="TLE8888_PIN_22",190="TLE8888_PIN_23",191="TLE8888_PIN_24",192="TLE8888_PIN_25",193="TLE8888_PIN_26",194="TLE8888_PIN_27",195="TLE8888_PIN_28",170="TLE8888_PIN_3",171="TLE8888_PIN_4",172="TLE8888_PIN_5",173="TLE8888_PIN_6",174="TLE8888_PIN_7",175="TLE8888_PIN_8",176="TLE8888_PIN_9",197="TLE8888_PIN_KEY",196="TLE8888_PIN_MR",198="TLE8888_PIN_WAKE",300="TLE9104_0_OUT_0",301="TLE9104_0_OUT_1",302="TLE9104_0_OUT_2",303="TLE9104_0_OUT_3",304="TLE9104_1_OUT_0",305="TLE9104_1_OUT_1",306="TLE9104_1_OUT_2",307="TLE9104_1_OUT_3",308="TLE9104_2_OUT_0",309="TLE9104_2_OUT_1",310="TLE9104_2_OUT_2",311="TLE9104_2_OUT_3",312="TLE9104_3_OUT_0",313="TLE9104_3_OUT_1",314="TLE9104_3_OUT_2",315="TLE9104_3_OUT_3",316="TLE9104_4_OUT_0",317="TLE9104_4_OUT_1",318="TLE9104_4_OUT_2",319="TLE9104_4_OUT_3",320="TLE9104_5_OUT_0",321="TLE9104_5_OUT_1",322="TLE9104_5_OUT_2",323="TLE9104_5_OUT_3" +#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 249 +#define Gpio_CAN_PIN_1 250 +#define Gpio_CAN_PIN_2 251 +#define Gpio_CAN_PIN_3 252 +#define Gpio_CAN_PIN_4 253 +#define Gpio_CAN_PIN_5 254 +#define Gpio_CAN_PIN_6 255 +#define Gpio_CAN_PIN_7 256 +#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_L9779_IGN_1 215 +#define Gpio_L9779_IGN_2 216 +#define Gpio_L9779_IGN_3 217 +#define Gpio_L9779_IGN_4 218 +#define Gpio_L9779_OUT_1 219 +#define Gpio_L9779_OUT_10 228 +#define Gpio_L9779_OUT_11 229 +#define Gpio_L9779_OUT_12 230 +#define Gpio_L9779_OUT_13 231 +#define Gpio_L9779_OUT_14 232 +#define Gpio_L9779_OUT_15 233 +#define Gpio_L9779_OUT_16 234 +#define Gpio_L9779_OUT_17 235 +#define Gpio_L9779_OUT_18 236 +#define Gpio_L9779_OUT_19 237 +#define Gpio_L9779_OUT_2 220 +#define Gpio_L9779_OUT_20 238 +#define Gpio_L9779_OUT_25 243 +#define Gpio_L9779_OUT_26 244 +#define Gpio_L9779_OUT_27 245 +#define Gpio_L9779_OUT_28 246 +#define Gpio_L9779_OUT_3 221 +#define Gpio_L9779_OUT_4 222 +#define Gpio_L9779_OUT_5 223 +#define Gpio_L9779_OUT_6 224 +#define Gpio_L9779_OUT_7 225 +#define Gpio_L9779_OUT_8 226 +#define Gpio_L9779_OUT_9 227 +#define Gpio_L9779_OUT_A 239 +#define Gpio_L9779_OUT_B 240 +#define Gpio_L9779_OUT_C 241 +#define Gpio_L9779_OUT_D 242 +#define Gpio_L9779_OUT_MRD 247 +#define Gpio_L9779_PIN_KEY 248 +#define Gpio_MC33810_0_GD_0 284 +#define Gpio_MC33810_0_GD_1 285 +#define Gpio_MC33810_0_GD_2 286 +#define Gpio_MC33810_0_GD_3 287 +#define Gpio_MC33810_0_OUT_0 280 +#define Gpio_MC33810_0_OUT_1 281 +#define Gpio_MC33810_0_OUT_2 282 +#define Gpio_MC33810_0_OUT_3 283 +#define Gpio_MC33810_1_GD_0 294 +#define Gpio_MC33810_1_GD_1 295 +#define Gpio_MC33810_1_GD_2 296 +#define Gpio_MC33810_1_GD_3 297 +#define Gpio_MC33810_1_OUT_0 290 +#define Gpio_MC33810_1_OUT_1 291 +#define Gpio_MC33810_1_OUT_2 292 +#define Gpio_MC33810_1_OUT_3 293 +#define Gpio_MC33972_PIN_1 146 +#define Gpio_MC33972_PIN_10 155 +#define Gpio_MC33972_PIN_11 156 +#define Gpio_MC33972_PIN_12 157 +#define Gpio_MC33972_PIN_13 158 +#define Gpio_MC33972_PIN_14 159 +#define Gpio_MC33972_PIN_15 160 +#define Gpio_MC33972_PIN_16 161 +#define Gpio_MC33972_PIN_17 162 +#define Gpio_MC33972_PIN_18 163 +#define Gpio_MC33972_PIN_19 164 +#define Gpio_MC33972_PIN_2 147 +#define Gpio_MC33972_PIN_20 165 +#define Gpio_MC33972_PIN_21 166 +#define Gpio_MC33972_PIN_22 167 +#define Gpio_MC33972_PIN_3 148 +#define Gpio_MC33972_PIN_4 149 +#define Gpio_MC33972_PIN_5 150 +#define Gpio_MC33972_PIN_6 151 +#define Gpio_MC33972_PIN_7 152 +#define Gpio_MC33972_PIN_8 153 +#define Gpio_MC33972_PIN_9 154 +#define Gpio_PROTECTED_PIN_0 257 +#define Gpio_PROTECTED_PIN_1 258 +#define Gpio_PROTECTED_PIN_10 267 +#define Gpio_PROTECTED_PIN_11 268 +#define Gpio_PROTECTED_PIN_12 269 +#define Gpio_PROTECTED_PIN_13 270 +#define Gpio_PROTECTED_PIN_14 271 +#define Gpio_PROTECTED_PIN_15 272 +#define Gpio_PROTECTED_PIN_2 259 +#define Gpio_PROTECTED_PIN_3 260 +#define Gpio_PROTECTED_PIN_4 261 +#define Gpio_PROTECTED_PIN_5 262 +#define Gpio_PROTECTED_PIN_6 263 +#define Gpio_PROTECTED_PIN_7 264 +#define Gpio_PROTECTED_PIN_8 265 +#define Gpio_PROTECTED_PIN_9 266 +#define Gpio_TLE6240_PIN_1 199 +#define Gpio_TLE6240_PIN_10 208 +#define Gpio_TLE6240_PIN_11 209 +#define Gpio_TLE6240_PIN_12 210 +#define Gpio_TLE6240_PIN_13 211 +#define Gpio_TLE6240_PIN_14 212 +#define Gpio_TLE6240_PIN_15 213 +#define Gpio_TLE6240_PIN_16 214 +#define Gpio_TLE6240_PIN_2 200 +#define Gpio_TLE6240_PIN_3 201 +#define Gpio_TLE6240_PIN_4 202 +#define Gpio_TLE6240_PIN_5 203 +#define Gpio_TLE6240_PIN_6 204 +#define Gpio_TLE6240_PIN_7 205 +#define Gpio_TLE6240_PIN_8 206 +#define Gpio_TLE6240_PIN_9 207 +#define Gpio_TLE8888_PIN_1 168 +#define Gpio_TLE8888_PIN_10 177 +#define Gpio_TLE8888_PIN_11 178 +#define Gpio_TLE8888_PIN_12 179 +#define Gpio_TLE8888_PIN_13 180 +#define Gpio_TLE8888_PIN_14 181 +#define Gpio_TLE8888_PIN_15 182 +#define Gpio_TLE8888_PIN_16 183 +#define Gpio_TLE8888_PIN_17 184 +#define Gpio_TLE8888_PIN_18 185 +#define Gpio_TLE8888_PIN_19 186 +#define Gpio_TLE8888_PIN_2 169 +#define Gpio_TLE8888_PIN_20 187 +#define Gpio_TLE8888_PIN_21 188 +#define Gpio_TLE8888_PIN_22 189 +#define Gpio_TLE8888_PIN_23 190 +#define Gpio_TLE8888_PIN_24 191 +#define Gpio_TLE8888_PIN_25 192 +#define Gpio_TLE8888_PIN_26 193 +#define Gpio_TLE8888_PIN_27 194 +#define Gpio_TLE8888_PIN_28 195 +#define Gpio_TLE8888_PIN_3 170 +#define Gpio_TLE8888_PIN_4 171 +#define Gpio_TLE8888_PIN_5 172 +#define Gpio_TLE8888_PIN_6 173 +#define Gpio_TLE8888_PIN_7 174 +#define Gpio_TLE8888_PIN_8 175 +#define Gpio_TLE8888_PIN_9 176 +#define Gpio_TLE8888_PIN_KEY 197 +#define Gpio_TLE8888_PIN_MR 196 +#define Gpio_TLE8888_PIN_WAKE 198 +#define Gpio_TLE9104_0_OUT_0 300 +#define Gpio_TLE9104_0_OUT_1 301 +#define Gpio_TLE9104_0_OUT_2 302 +#define Gpio_TLE9104_0_OUT_3 303 +#define Gpio_TLE9104_1_OUT_0 304 +#define Gpio_TLE9104_1_OUT_1 305 +#define Gpio_TLE9104_1_OUT_2 306 +#define Gpio_TLE9104_1_OUT_3 307 +#define Gpio_TLE9104_2_OUT_0 308 +#define Gpio_TLE9104_2_OUT_1 309 +#define Gpio_TLE9104_2_OUT_2 310 +#define Gpio_TLE9104_2_OUT_3 311 +#define Gpio_TLE9104_3_OUT_0 312 +#define Gpio_TLE9104_3_OUT_1 313 +#define Gpio_TLE9104_3_OUT_2 314 +#define Gpio_TLE9104_3_OUT_3 315 +#define Gpio_TLE9104_4_OUT_0 316 +#define Gpio_TLE9104_4_OUT_1 317 +#define Gpio_TLE9104_4_OUT_2 318 +#define Gpio_TLE9104_4_OUT_3 319 +#define Gpio_TLE9104_5_OUT_0 320 +#define Gpio_TLE9104_5_OUT_1 321 +#define Gpio_TLE9104_5_OUT_2 322 +#define Gpio_TLE9104_5_OUT_3 323 +#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",26="GPPWM_BaroPressure",3="GPPWM_Clt",25="GPPWM_DetectedGear",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", "Gear (detected)", "Baro pressure" +#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_BaroPressure 26 +#define gppwm_channel_e_GPPWM_Clt 3 +#define gppwm_channel_e_GPPWM_DetectedGear 25 +#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 IGNITION_OUTPUT "Ignition Output" +#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 switch" +#define INDICATOR_NAME_CLUTCH_DOWN "Clutch: down" +#define INDICATOR_NAME_CLUTCH_UP "Clutch: up" +#define INJ_STAGING_COUNT 6 +#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_1_NAME "Injector #1" +#define INJECTOR_2_NAME "Injector #2" +#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 32 +#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 "https://rusefi.com/s/hellen72" +#define MAP_ANGLE_SIZE 8 +#define MAP_sensor_config_s_size 140 +#define MAP_WINDOW_SIZE 8 +#define MAX_CYLINDER_COUNT 12 +#define mc33810maxDwellTimer_e_auto_enum 0="DWELL_2MS",3="DWELL_16MS",4="DWELL_32MS",1="DWELL_4MS",5="DWELL_64MS",2="DWELL_8MS" +#define mc33810maxDwellTimer_e_DWELL_16MS 3 +#define mc33810maxDwellTimer_e_DWELL_2MS 0 +#define mc33810maxDwellTimer_e_DWELL_32MS 4 +#define mc33810maxDwellTimer_e_DWELL_4MS 1 +#define mc33810maxDwellTimer_e_DWELL_64MS 5 +#define mc33810maxDwellTimer_e_DWELL_8MS 2 +#define MLQ_FIELD_HEADER_SIZE 89 +#define MLQ_HEADER_SIZE 24 +#define operation_mode_e_FOUR_STROKE_CAM_SENSOR 2 +#define operation_mode_e_FOUR_STROKE_CRANK_SENSOR 1 +#define operation_mode_e_FOUR_STROKE_SIX_TIMES_CRANK_SENSOR 7 +#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",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" +#define output_pin_e_fullenum "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3P - O2H2 (O7)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","ETB EN","ETB +","ETB -","5E - SOLENOID OUTPUT","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2C - AC Fan / INJ_5","2J - INJ_4","2G - INJ_3","2B - ECF (PWM8)","3O - TACH (PWM7)","2Q - IDLE (PWM5)","3M - ALTERN (PWM6)","INVALID","INVALID","3Z - IGN_5 / GNDA","3N - IGN_4","2O - IGN_3","3I - IGN_2 (2&3)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2N - VTSC / INJ_6","3C - Purge Solenoid / INJ_7","3D - EGR Solenoid / INJ_8","INVALID","INVALID","INVALID","2M - FPUMP (O9)","3E - CANIST (O10)","2R - CE (O11)","INVALID","INVALID","2A - INJ_1","2D - INJ_2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3U - AWARN (O2)","3J - O2H (O3)","2K - AC (O4)","4R - VVT (O5)","INVALID","3H - MAIN (O1)","INVALID","INVALID","4K - IGN_6 / +5V_MAP","3L - IGN_7 / AFR","4U - MAP2/Ign8 (A10)","3F - IGN_1 (1&4)" +#define PACK_ADD_TEMPERATURE 40 +#define PACK_MULT_AFR 1000 +#define PACK_MULT_AFR_CFG 10 +#define PACK_MULT_ANGLE 50 +#define PACK_MULT_FLEX 2 +#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_MULT_VSS 100 +#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 22236 +#define pid_s_size 20 +#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_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_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 PRIME_CURVE_COUNT 8 +#define PROTOCOL_ACR_NAME "acr" +#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_HIP_NAME "HIP" +#define PROTOCOL_HPFP_NAME "hpfp" +#define PROTOCOL_INJ1_SHORT_NAME "i1" +#define PROTOCOL_INJ1_STAGE2_SHORT_NAME "j1" +#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 RANGE_INPUT_COUNT 6 +#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 sent_input_pin_e_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 SentEtbType_auto_enum 0="NONE",3="CUSTOM",2="FORD_TYPE_1",1="GM_TYPE_1" +#define SentEtbType_CUSTOM 3 +#define SentEtbType_enum "None", "GM type 1", "Ford type 1", "Custom" +#define SentEtbType_FORD_TYPE_1 2 +#define SentEtbType_GM_TYPE_1 1 +#define SentEtbType_NONE 0 +#define show_Frankenso_presets false +#define show_HellenNB2_presets true +#define show_microRusEFI_presets false +#define show_Proteus_presets false +#define show_test_presets false +#define SIGNATURE_HASH 945630656 +#define SIMULATOR_TUNE_BIN_FILE_NAME "generated/simulator_tune_image.bin" +#define SIMULATOR_TUNE_BIN_FILE_NAME_PREFIX "generated/simulator_tune_image" +#define SIMULATOR_TUNE_BIN_FILE_NAME_SUFFIX ".bin" +#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",5="SPI_DEVICE_5",6="SPI_DEVICE_6" +#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_DEVICE_5 5 +#define spi_device_e_SPI_DEVICE_6 6 +#define spi_device_e_SPI_NONE 0 +#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",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" +#define switch_input_pin_e_fullenum "NONE","INVALID","5N - TPS2","INVALID","INVALID","5P - PPS1","INVALID","INVALID","INVALID","4J - VTCS/AUX4 (A20)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4F - AC_PRES/AUX1 (A23)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","5A - Pressure Input","INVALID","INVALID","INVALID","5M - PPS2 OR TEMPERATURE SENSOR","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4I - Clutch rev E/F","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","5D - SENSOR INPUT","INVALID","INVALID","4I - Clutch rev D","4B - Brake/RES1 (A7)" +#define TABLE_4_RPM 10 +#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 22236 +#define TPS_2_BYTE_PACKING_MULT 100 +#define TPS_TPS_ACCEL_CLT_CORR_TABLE 4 +#define TPS_TPS_ACCEL_TABLE 8 +#define TRACTION_CONTROL_ETB_DROP_SIZE 6 +#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 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77 +#define TRIGGER_CYCLE_DURATION "cycleDuration" +#define TRIGGER_GAP_FROM "gapFrom" +#define TRIGGER_GAP_TO "gapTo" +#define TRIGGER_GAPS_COUNT "gapsCount" +#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_KNOWN_OPERATION_MODE "knownOperationMode" +#define TRIGGER_SIMULATOR_PIN_COUNT 2 +#define TRIGGER_SYNC_EDGE "syncEdge" +#define trigger_type_e_auto_enum 0="TT_TOOTHED_WHEEL",38="TT_12_TOOTH_CRANK",50="TT_1_16",25="TT_2JZ_3_34_SIMULATION_ONLY",70="TT_36_2_1",71="TT_36_2_1_1",23="TT_36_2_2_2",31="TT_3_1_CAM",72="TT_3_TOOTH_CRANK",77="TT_60DEG_TOOTH",75="TT_60_2_2_F3R",20="TT_60_2_VW",80="TT_6_TOOTH_CRANK",21="TT_BENELLI_TRE",30="TT_CHRYSLER_NGC_36_2_2",6="TT_DAIHATSU_3_CYL",81="TT_DAIHATSU_4_CYL",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",18="TT_HALF_MOON",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",34="TT_MITSU_4G63_CAM",76="TT_MITSU_4G63_CRANK",29="TT_MITSU_4G9x_CAM",11="TT_NARROW_SINGLE_TOOTH",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",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",82="TT_UNUSED",56="TT_VVT_BARRA_3_PLUS_1",47="TT_VVT_BOSCH_QUICK_START",4="TT_VVT_FORD_COYOTE",13="TT_VVT_MAZDA_SKYACTIV",43="TT_VVT_MIATA_NB",62="TT_VVT_MITSUBISHI_3A92",78="TT_VVT_MITSUBISHI_4G69",79="TT_VVT_MITSU_6G72",59="TT_VVT_NISSAN_VQ35",17="TT_VVT_TOYOTA_3_TOOTH",73="TT_VVT_TOYOTA_4_1" +#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83" +#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_SIMULATION_ONLY 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_3_TOOTH_CRANK 72 +#define trigger_type_e_TT_60_2_2_F3R 75 +#define trigger_type_e_TT_60_2_VW 20 +#define trigger_type_e_TT_60DEG_TOOTH 77 +#define trigger_type_e_TT_6_TOOTH_CRANK 80 +#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_3_CYL 6 +#define trigger_type_e_TT_DAIHATSU_4_CYL 81 +#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_HALF_MOON 18 +#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_4G63_CRANK 76 +#define trigger_type_e_TT_MITSU_4G9x_CAM 29 +#define trigger_type_e_TT_NARROW_SINGLE_TOOTH 11 +#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_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 82 +#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_FORD_COYOTE 4 +#define trigger_type_e_TT_VVT_MAZDA_SKYACTIV 13 +#define trigger_type_e_TT_VVT_MIATA_NB 43 +#define trigger_type_e_TT_VVT_MITSU_6G72 79 +#define trigger_type_e_TT_VVT_MITSUBISHI_3A92 62 +#define trigger_type_e_TT_VVT_MITSUBISHI_4G69 78 +#define trigger_type_e_TT_VVT_NISSAN_VQ35 59 +#define trigger_type_e_TT_VVT_TOYOTA_3_TOOTH 17 +#define trigger_type_e_TT_VVT_TOYOTA_4_1 73 +#define TRIGGER_TYPE_WITH_SECOND_WHEEL trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64 +#define TRIGGER_TYPE_WITHOUT_KNOWN_LOCATION trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73 +#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_14_command_TS_14_0 0 +#define ts_14_command_TS_14_1 1 +#define ts_14_command_TS_14_4 4 +#define ts_14_command_TS_14_5 5 +#define ts_14_command_TS_14_9 9 +#define ts_14_command_TS_BURN_WITHOUT_FLASH 0x15 +#define ts_14_command_TS_ETB_AUTOCAL_0 0x0E +#define ts_14_command_TS_ETB_AUTOCAL_1 0x11 +#define ts_14_command_TS_ETB_RESET 0x0B +#define ts_14_command_TS_ETB_START_AUTOTUNE 0x0C +#define ts_14_command_TS_ETB_STOP_AUTOTUNE 0x10 +#define ts_14_command_TS_EXTERNAL_TRIGGER_STIMULATOR_ENABLE 0x13 +#define ts_14_command_TS_GRAB_PEDAL_UP 6 +#define ts_14_command_TS_GRAB_PEDAL_WOT 7 +#define ts_14_command_TS_GRAB_TPS_CLOSED 2 +#define ts_14_command_TS_GRAB_TPS_WOT 3 +#define ts_14_command_TS_RESET_MC33810 0x14 +#define ts_14_command_TS_RESET_TLE8888 8 +#define ts_14_command_TS_TRIGGER_STIMULATOR_DISABLE 0x0F +#define ts_14_command_TS_TRIGGER_STIMULATOR_ENABLE 0x0D +#define ts_14_command_TS_WIDEBAND_UPDATE 0x12 +#define ts_14_command_TS_WRITE_FLASH 0x0A +#define TS_BLOCK_READ_TIMEOUT 3000 +#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_10 10 +#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_2 2 +#define ts_command_e_TS_COMMAND_3 3 +#define ts_command_e_TS_COMMAND_4 4 +#define ts_command_e_TS_COMMAND_5 5 +#define ts_command_e_TS_COMMAND_6 6 +#define ts_command_e_TS_COMMAND_7 7 +#define ts_command_e_TS_COMMAND_8 8 +#define ts_command_e_TS_COMMAND_9 9 +#define ts_command_e_TS_DEBUG_MODE 0 +#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_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_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 20230721 +#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_BOOTLOADER 'L' +#define TS_QUERY_BOOTLOADER_char L +#define TS_QUERY_BOOTLOADER_NONE 0 +#define TS_QUERY_BOOTLOADER_OPENBLT 1 +#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 false +#define ts_show_can_pins false +#define ts_show_clt_iat_pullup true +#define ts_show_communityCommsLedPid false +#define ts_show_cylinder_10 true +#define ts_show_cylinder_11 true +#define ts_show_cylinder_12 true +#define ts_show_cylinder_2 true +#define ts_show_cylinder_3 true +#define ts_show_cylinder_4 true +#define ts_show_cylinder_5 true +#define ts_show_cylinder_6 true +#define ts_show_cylinder_7 true +#define ts_show_cylinder_8 true +#define ts_show_cylinder_9 true +#define ts_show_egt false +#define ts_show_etb true +#define ts_show_etb_pins false +#define ts_show_full_pinout true +#define ts_show_hardware_simulator false +#define ts_show_hip9011 false +#define ts_show_ign_key_analog_input false +#define ts_show_ign_key_switch false +#define ts_show_ignitionPinMode true +#define ts_show_inj_diag false +#define ts_show_injectionPinMode false +#define ts_show_l9779 false +#define ts_show_main_relay true +#define ts_show_main_relay_microRusEFI_message false +#define ts_show_mc33810 false +#define ts_show_onboard_accelerometer false +#define ts_show_output_diag false +#define ts_show_sd_card true +#define ts_show_sd_pins false +#define ts_show_software_knock true +#define ts_show_spi true +#define ts_show_spi2_enable true +#define ts_show_spi2_pins true +#define ts_show_spi3_pins true +#define ts_show_tle8888 false +#define ts_show_tps2 true +#define ts_show_tps_sent false +#define ts_show_trigger_comparator false +#define ts_show_tunerstudio_port true +#define ts_show_vbatt true +#define ts_show_vr_threshold_2 false +#define ts_show_vr_threshold_all false +#define ts_show_vr_threshold_pins true +#define ts_show_vvt_output true +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNB2.945630656" +#define TS_SIMULATE_CAN '>' +#define TS_SIMULATE_CAN_char > +#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 1468 +#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 UiMode_auto_enum 0="FULL",1="INSTALLATION",2="TUNING" +#define UiMode_enum "Full", "Installation", "Tuning" +#define UiMode_FULL 0 +#define UiMode_INSTALLATION 1 +#define UiMode_TUNING 2 +#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 VOLTAGE_1_BYTE_PACKING_DIV 0.02 +#define VR_THRESHOLD_COUNT 2 +#define vr_threshold_s_size 16 +#define VSS_FILTER_MAX 200 +#define VSS_FILTER_MIN 3 +#define vvt_mode_e_auto_enum 0="VVT_INACTIVE",8="VVT_BARRA_3_PLUS_1",5="VVT_BOSCH_QUICK_START",19="VVT_FORD_COYOTE",7="VVT_FORD_ST170",21="VVT_HONDA_CBR_600",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",4="VVT_MITSUBISHI_4G69",17="VVT_MITSUBISHI_4G9x",20="VVT_MITSUBISHI_6G72",14="VVT_MITSUBISHI_6G75",11="VVT_NISSAN_MR",9="VVT_NISSAN_VQ",1="VVT_SINGLE_TOOTH",2="VVT_TOYOTA_3_TOOTH",6="VVT_TOYOTA_4_1" +#define vvt_mode_e_enum "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23" +#define vvt_mode_e_VVT_BARRA_3_PLUS_1 8 +#define vvt_mode_e_VVT_BOSCH_QUICK_START 5 +#define vvt_mode_e_VVT_FORD_COYOTE 19 +#define vvt_mode_e_VVT_FORD_ST170 7 +#define vvt_mode_e_VVT_HONDA_CBR_600 21 +#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_4G69 4 +#define vvt_mode_e_VVT_MITSUBISHI_4G9x 17 +#define vvt_mode_e_VVT_MITSUBISHI_6G72 20 +#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_SINGLE_TOOTH 1 +#define vvt_mode_e_VVT_TOYOTA_3_TOOTH 2 +#define vvt_mode_e_VVT_TOYOTA_4_1 6 +#define VVT_TRACKING_LENGTH 4 +#define WARNING_BUFFER_SIZE 120 +#define WWAE_TABLE_SIZE 8 diff --git a/firmware/controllers/generated/rusefi_generated_m74_9.h b/firmware/controllers/generated/rusefi_generated_m74_9.h index 5fb254a6c3..b23390592b 100644 --- a/firmware/controllers/generated/rusefi_generated_m74_9.h +++ b/firmware/controllers/generated/rusefi_generated_m74_9.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_mre_f4.h b/firmware/controllers/generated/rusefi_generated_mre_f4.h index 01bdcda96d..c7da32b3bf 100644 --- a/firmware/controllers/generated/rusefi_generated_mre_f4.h +++ b/firmware/controllers/generated/rusefi_generated_mre_f4.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_mre_f7.h b/firmware/controllers/generated/rusefi_generated_mre_f7.h index 07e8175d46..faa294e37a 100644 --- a/firmware/controllers/generated/rusefi_generated_mre_f7.h +++ b/firmware/controllers/generated/rusefi_generated_mre_f7.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_nucleo_h743.h b/firmware/controllers/generated/rusefi_generated_nucleo_h743.h index 76cf613841..184dc3df43 100644 --- a/firmware/controllers/generated/rusefi_generated_nucleo_h743.h +++ b/firmware/controllers/generated/rusefi_generated_nucleo_h743.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_prometheus_405.h b/firmware/controllers/generated/rusefi_generated_prometheus_405.h index 1f68a65ca4..2ba5dc06e6 100644 --- a/firmware/controllers/generated/rusefi_generated_prometheus_405.h +++ b/firmware/controllers/generated/rusefi_generated_prometheus_405.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_prometheus_469.h b/firmware/controllers/generated/rusefi_generated_prometheus_469.h index 010bfd7365..874694debf 100644 --- a/firmware/controllers/generated/rusefi_generated_prometheus_469.h +++ b/firmware/controllers/generated/rusefi_generated_prometheus_469.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_proteus_f4.h b/firmware/controllers/generated/rusefi_generated_proteus_f4.h index 1d05008e5c..1313cb34a7 100644 --- a/firmware/controllers/generated/rusefi_generated_proteus_f4.h +++ b/firmware/controllers/generated/rusefi_generated_proteus_f4.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_proteus_f7.h b/firmware/controllers/generated/rusefi_generated_proteus_f7.h index ed7c3179ee..b288099942 100644 --- a/firmware/controllers/generated/rusefi_generated_proteus_f7.h +++ b/firmware/controllers/generated/rusefi_generated_proteus_f7.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_proteus_h7.h b/firmware/controllers/generated/rusefi_generated_proteus_h7.h index be1f6d2d36..cd336da75a 100644 --- a/firmware/controllers/generated/rusefi_generated_proteus_h7.h +++ b/firmware/controllers/generated/rusefi_generated_proteus_h7.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_s105.h b/firmware/controllers/generated/rusefi_generated_s105.h index 691bc33cad..0492fe9011 100644 --- a/firmware/controllers/generated/rusefi_generated_s105.h +++ b/firmware/controllers/generated/rusefi_generated_s105.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_small-can-board.h b/firmware/controllers/generated/rusefi_generated_small-can-board.h index 7781184fdc..75fb4c6ec1 100644 --- a/firmware/controllers/generated/rusefi_generated_small-can-board.h +++ b/firmware/controllers/generated/rusefi_generated_small-can-board.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_stm32f413_nucleo.h b/firmware/controllers/generated/rusefi_generated_stm32f413_nucleo.h index 9aa0ef0ef1..e60dfa42a2 100644 --- a/firmware/controllers/generated/rusefi_generated_stm32f413_nucleo.h +++ b/firmware/controllers/generated/rusefi_generated_stm32f413_nucleo.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_stm32f429_nucleo.h b/firmware/controllers/generated/rusefi_generated_stm32f429_nucleo.h index 12e49b6755..3c85b7fe20 100644 --- a/firmware/controllers/generated/rusefi_generated_stm32f429_nucleo.h +++ b/firmware/controllers/generated/rusefi_generated_stm32f429_nucleo.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_stm32f767_nucleo.h b/firmware/controllers/generated/rusefi_generated_stm32f767_nucleo.h index 31e99c092b..61d1078030 100644 --- a/firmware/controllers/generated/rusefi_generated_stm32f767_nucleo.h +++ b/firmware/controllers/generated/rusefi_generated_stm32f767_nucleo.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_t-b-g.h b/firmware/controllers/generated/rusefi_generated_t-b-g.h index c33da02b38..74d5275c3c 100644 --- a/firmware/controllers/generated/rusefi_generated_t-b-g.h +++ b/firmware/controllers/generated/rusefi_generated_t-b-g.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_tdg-pdm8.h b/firmware/controllers/generated/rusefi_generated_tdg-pdm8.h index a0071b2408..2c3b062e0f 100644 --- a/firmware/controllers/generated/rusefi_generated_tdg-pdm8.h +++ b/firmware/controllers/generated/rusefi_generated_tdg-pdm8.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/rusefi_generated_uaefi.h b/firmware/controllers/generated/rusefi_generated_uaefi.h index db19b1907b..ab164c2cb9 100644 --- a/firmware/controllers/generated/rusefi_generated_uaefi.h +++ b/firmware/controllers/generated/rusefi_generated_uaefi.h @@ -331,7 +331,7 @@ #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",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +#define engine_type_e_auto_enum 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" #define engine_type_e_BMW_M52 22 #define engine_type_e_BMW_M73_MRE 50 #define engine_type_e_BMW_M73_MRE_SLAVE 51 @@ -376,7 +376,6 @@ #define engine_type_e_HELLEN_2CHAN_STIM_QC 75 #define engine_type_e_HELLEN_4CHAN_STIM_QC 74 #define engine_type_e_HELLEN_HONDA_BCM 57 -#define engine_type_e_HELLEN_NB1_36 94 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_K 90 #define engine_type_e_HONDA_OBD1 66 @@ -433,6 +432,7 @@ #define engine_type_e_UNUSED67 67 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED93 93 +#define engine_type_e_UNUSED94 94 #define engine_type_e_UNUSED_21 21 #define engine_type_e_UNUSED_65 65 #define engine_type_e_UNUSED_97 97 diff --git a/firmware/controllers/generated/signature_hellenMiataNA6.h b/firmware/controllers/generated/signature_hellenMiataNA6.h new file mode 100644 index 0000000000..b3822ace06 --- /dev/null +++ b/firmware/controllers/generated/signature_hellenMiataNA6.h @@ -0,0 +1,6 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh by SignatureConsumer +// + +#define SIGNATURE_HASH 739850940 +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNA6.739850940" diff --git a/firmware/controllers/generated/signature_hellenMiataNA96.h b/firmware/controllers/generated/signature_hellenMiataNA96.h new file mode 100644 index 0000000000..83b985c2ec --- /dev/null +++ b/firmware/controllers/generated/signature_hellenMiataNA96.h @@ -0,0 +1,6 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh by SignatureConsumer +// + +#define SIGNATURE_HASH 3552802930 +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNA96.3552802930" diff --git a/firmware/controllers/generated/signature_hellenMiataNB1.h b/firmware/controllers/generated/signature_hellenMiataNB1.h new file mode 100644 index 0000000000..9848182536 --- /dev/null +++ b/firmware/controllers/generated/signature_hellenMiataNB1.h @@ -0,0 +1,6 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh by SignatureConsumer +// + +#define SIGNATURE_HASH 1369714556 +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNB1.1369714556" diff --git a/firmware/controllers/generated/signature_hellenMiataNB2.h b/firmware/controllers/generated/signature_hellenMiataNB2.h new file mode 100644 index 0000000000..67e147a905 --- /dev/null +++ b/firmware/controllers/generated/signature_hellenMiataNB2.h @@ -0,0 +1,6 @@ +// +// was generated automatically by rusEFI tool config_definition-all.jar based on gen_config.sh by SignatureConsumer +// + +#define SIGNATURE_HASH 945630656 +#define TS_SIGNATURE "rusEFI master.2024.03.06.hellenMiataNB2.945630656" diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index e15c51331d..4ebde70d08 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:39 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:08 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini b/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini index d542fba50d..09cbce354c 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-2chan.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","B4 - O2","On-board MAP","INVALID","B5 - TPS","A2 Battery Sense","C7 - CAM Hall/Digital","INVALID","X1 - AIN1","INVALID","INVALID","B2 - MAP","B7 - CLT","B3 - IAT","X3 - AIN2","X7 - AIN4" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:40 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:10 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini b/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini index 33ffd5512f..8d5e175cda 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-4chan.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","B4 - O2","On-board MAP","D5 - PPS","B5 - TPS","F7 - Ignition Key Voltage","C7 - CAM Hall/Digital","X7 - AIN4","D4 - TPS2","INVALID","X5 - AIN3","B2 - MAP","B7 - CLT","B3 - IAT","F6 - PPS2","INVALID","INVALID","INVALID","INVALID","X3 - AIN2","X1 - AIN1 and D5 on older boards" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:41 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:12 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_alphax-4chan_f7.ini b/firmware/tunerstudio/generated/rusefi_alphax-4chan_f7.ini index 7f0d4492dd..42d0ae9e18 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-4chan_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-4chan_f7.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","B4 - O2","On-board MAP","D5 - PPS","B5 - TPS","F7 - Ignition Key Voltage","C7 - CAM Hall/Digital","X7 - AIN4","D4 - TPS2","INVALID","X5 - AIN3","B2 - MAP","B7 - CLT","B3 - IAT","F6 - PPS2","INVALID","INVALID","INVALID","INVALID","X3 - AIN2","X1 - AIN1 and D5 on older boards" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:43 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:13 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_alphax-8chan-revA.ini b/firmware/tunerstudio/generated/rusefi_alphax-8chan-revA.ini index df0004c985..cc091c8d58 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-8chan-revA.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-8chan-revA.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","INVALID","INVALID","17A - PPS","23C - TPS","Battery Sense","INVALID","15D - AN5","24C - TPS2","14A - Analog 1","22A - Analog 22","On-board MAP","16A - CLT","15A - IAT","31C - PPS2","33A - AN3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","16D - AN6","INVALID","INVALID","INVALID","INVALID","7C - AT4","INVALID","6C - AT3","14D - AN4" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:47 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:17 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini b/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini index 96e031d310..47fb483df0 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-8chan.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","3A - Aux Analog 2","On-board MAP","32A - PPS Sensor Input","31A - TPS Sensor Input","24 - Ignition Key Voltage","INVALID","INVALID","19A - Aux Analog 6","1A - Aux Analog 1","2A - Aux Analog 4","INVALID","29A - CLT Sensor Input","27A - IAT Sensor Input","INVALID","12A - Aux Analog 8","INVALID","11A - Aux Analog 3","INVALID","34A - PPS2 Sensor Input","33A - TPS2 Sensor Input","INVALID","INVALID","INVALID","4A - Aux Analog 7","INVALID","10A - Aux Analog 5","INVALID","28A - Aux Temp 2","28A - Aux Temp 1","INVALID","20A - Aux Analog 9" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:44 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:15 UTC 2024 pageSize = 22252 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_alphax-8chan_f7.ini b/firmware/tunerstudio/generated/rusefi_alphax-8chan_f7.ini index 59835ebdab..8526762af3 100644 --- a/firmware/tunerstudio/generated/rusefi_alphax-8chan_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_alphax-8chan_f7.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","3A - Aux Analog 2","On-board MAP","32A - PPS Sensor Input","31A - TPS Sensor Input","24 - Ignition Key Voltage","INVALID","INVALID","19A - Aux Analog 6","1A - Aux Analog 1","2A - Aux Analog 4","INVALID","29A - CLT Sensor Input","27A - IAT Sensor Input","INVALID","12A - Aux Analog 8","INVALID","11A - Aux Analog 3","INVALID","34A - PPS2 Sensor Input","33A - TPS2 Sensor Input","INVALID","INVALID","INVALID","4A - Aux Analog 7","INVALID","10A - Aux Analog 5","INVALID","28A - Aux Temp 2","28A - Aux Temp 1","INVALID","20A - Aux Analog 9" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:46 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:16 UTC 2024 pageSize = 22252 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_at_start_f435.ini b/firmware/tunerstudio/generated/rusefi_at_start_f435.ini index d4c4e84438..2c11720782 100644 --- a/firmware/tunerstudio/generated/rusefi_at_start_f435.ini +++ b/firmware/tunerstudio/generated/rusefi_at_start_f435.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:36 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:42 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_atlas.ini b/firmware/tunerstudio/generated/rusefi_atlas.ini index 3d54d8f9cf..481757f22d 100644 --- a/firmware/tunerstudio/generated/rusefi_atlas.ini +++ b/firmware/tunerstudio/generated/rusefi_atlas.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:32 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:04 UTC 2024 pageSize = 21736 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_cypress.ini b/firmware/tunerstudio/generated/rusefi_cypress.ini index 59401b1379..2de418e440 100644 --- a/firmware/tunerstudio/generated/rusefi_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_cypress.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:38 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:08 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_f407-discovery.ini b/firmware/tunerstudio/generated/rusefi_f407-discovery.ini index 88bce02bda..e9b40c52d0 100644 --- a/firmware/tunerstudio/generated/rusefi_f407-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f407-discovery.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:35 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:55 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini index e2682a3d2d..447eafbd5c 100644 --- a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:25 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:56 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_f469-discovery.ini b/firmware/tunerstudio/generated/rusefi_f469-discovery.ini index 7457214497..c07b2548e0 100644 --- a/firmware/tunerstudio/generated/rusefi_f469-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f469-discovery.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:26 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:58 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index 35d339c59c..d0ee4e2086 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","Analog 3O","Analog 3L","Analog 3M","Analog 3J","Analog 3I","INVALID","Analog 3H","Analog 3G","INVALID","INVALID","INVALID","Analog 3P","Analog 3Q","Analog 3N","Analog VBatt","Analog 3E" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:16 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:47 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen-112-17.ini b/firmware/tunerstudio/generated/rusefi_hellen-112-17.ini index 16d1ff17e2..ec7cf51fce 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-112-17.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-112-17.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","B20 TPS Throttle Position 2","A14 Analog Input","INVALID","A21 PPS1","B03 TPS Throttle Position 1","INVALID","A07 TODO","A12 Analog Input","A10 Analog Input","INVALID","B19 MAP","A09 Analog Input","B15 CLT","B27 IAT","A11 Analog Input","A19 Analog Input" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:58 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:29 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini b/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini index 53598e041e..d8fc8fa9e7 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-gm-e67.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","C2-60 - Oil Pressure","C3-58 - Baro","C1-47 - PPS1","C2-64 - TPS1","C1-19 Battery Sense","C1-45 Secondary Fuel Level","C3-57 - A/C Pressure","C2-66 - TPS2","C1-44 Primary Fuel Level","C2-65 - Trans Fluids","C3-59 - MAP","C3-55 - CLT","C3-56 - IAT","C1-49 - PPS2","C1-46 Vac Sense" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:04 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:37 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini b/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini index f1883a44bc..f661b68ca3 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-honda-k.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","INVALID","INVALID","INVALID","A15 TPS","E9 Ignition Key Voltage","INVALID","Aux Analog 3","Aux Analog 1","INVALID","A19 - MAP","INVALID","B8 - CLT","B17 IAT","Aux Analog 2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:53 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:23 UTC 2024 pageSize = 22908 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini index 36099761e4..df8c5231ed 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","51 - MAF","INVALID","Aux P68","106 - PPS 1","50 - TPS 1","109 Ignition Key Voltage","INVALID","INVALID","69 - TPS 2","INVALID","Aux P66","Aux P67","73 - CLT","34 - IAT","98 - PPS 2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:51 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:22 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini index 47cf8e89bd..abf6718205 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","14 - O2","INVALID","INVALID","34 In PPS1","92 - TPS 1","106 - KNOCK","86 - CAM1","87 - CAM2","84 - TPS2","INVALID","29 In Maf","101 - MAP2","93 - CLT","85 - IAT","35 In PPS2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:50 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:20 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen128.ini b/firmware/tunerstudio/generated/rusefi_hellen128.ini index fa1ddd6f77..065794194e 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen128.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen128.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","P36_IN_O2S","P32_IN_O2S2","P40_IN_MAP3","C24 - PPS1","E31 - TPS1","Battery Sense","E40 - IN_CAM","P30_IN_AUX4","E34 - TPS2","E37 - Crank Input","E47 - MAF","E23 - MAP","E29 - Coolant Temp","E45 - IAT","C25 - PPS2","P41_IN_AUX3" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:49 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:19 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini index 38def58cae..ac6e9df57d 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","K21 Ambient Temperature","K58 Oil Temp","K54 A/C pressure","PPS 1","TPS 1","K2 Ignition Key Voltage","X10 AIN2","INVALID","TPS 2","X11 AIN1","Map Sensor K31","K10 Sensor","CLT","IAT","PPS 2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:54 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:24 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen81.ini b/firmware/tunerstudio/generated/rusefi_hellen81.ini index 65fa2d5051..a8835154f2 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen81.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen81.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","18 - IN_O2S","55 - IN_O2S2","41 - IN_MAP3","78 - IN_PPS","16 - IN_TPS","13 - IN_VIGN","79 - IN_CAM","77 - IN_AUX4","74 - IN_AUX1","15 - IN_CRANK (A24)","37 - IN_MAP1","38 - IN_MAP2","39 - IN_CLT","40 - IN_IAT","75 - IN_AUX2","76 - IN_AUX3" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:01 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:30 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini index 1f952a44f5..b0714fd3a8 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","VIN5","VIN6","INVALID","PPS1","73 - TPS","56 - Battery Sense","17 - CAM","Aux BARO","Aux TPS2","16 - CRANK","41 - MAF","Aux MAP","78 - CLT","77 - IAT","Aux PPS2","Aux TPS3" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:56 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:26 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellenMiataNA6.ini b/firmware/tunerstudio/generated/rusefi_hellenMiataNA6.ini new file mode 100644 index 0000000000..df3ad4c3c4 --- /dev/null +++ b/firmware/tunerstudio/generated/rusefi_hellenMiataNA6.ini @@ -0,0 +1,9214 @@ +; This is a TunerStudio project for the rusEFI.com engine management system +; +; This file has been generated by invoking gen_config.bat. +; The input files are +; rusefi.input the common template +; rusefi_config.txt the project specific file +; +; In TunerStudio some fields have little question mark on the left of the name for additional field tips. +; Those tips are defined in ../integration/rusefi_config.txt +; +; For example +; +; float bias_resistor;Pull-up resistor value on your board;"Ohm" +; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip +; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio +; +; +; field = "# blue text" +; field = "! red text" +; field = "normal text" +; +; pok +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + settingGroup = connectivityProfile, "Protocol Profile" + settingOption = CONN_SLOW, "Slower / Wireless" + settingOption = CONN_FAST, "High Speed / USB" + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI master.2024.03.06.hellenMiataNA6.739850940" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI master.2024.03.06.hellenMiataNA6.739850940" ; signature is expected to be 7 or more characters. + + ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C + useLegacyFTempUnits = false + ignoreMissingBitOptions = true + + ; Optimize comms for fast rusEFI ECUs + noCommReadDelay = true; + defaultRuntimeRecordPerSec = 100; +#if CONN_SLOW +#else + maxUnusedRuntimeRange = 1000; +#endif + + ; Set default IP/port to our IP/port + defaultIpAddress = localhost + defaultIpPort = 29000; + +[Constants] +; new packet serial format with CRC + messageEnvelopeFormat = msEnvelope_1.0 + + endianness = little + nPages = 1 + + pageIdentifier = "\x00\x00" + pageReadCommand = "R%2o%2c" + burnCommand = "B" + pageActivate = "P" + pageValueWrite = "W%2o%v" + pageChunkWrite = "C%2o%2c%v" + crc32CheckCommand = "k%2o%2c" + retrieveConfigError = "e" + +;communication settings + 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 +#define gpio_list="NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +#define switch_input_pin_e_list="NONE","INVALID","INVALID","2N - Temperature Sensor","INVALID","4I - PPS1","INVALID","INVALID","INVALID","4G - PPS2 OR TEMPERATURE SENSOR","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4H - TPS2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2M - Pressure Sensor","INVALID","INVALID","1V - Clutch Switch","1Q AC Switch" +#define output_pin_e_list="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","ETB EN","ETB +","ETB -","INVALID","INVALID","INVALID","INVALID","1G - Ignition 1 & 4 (rev D)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3S - A/C Fan 94-95","3Z - Injector 4","3Y - Injector 3","Radiator Fan","INVALID","3W - IDLE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1H - Ignition 2 & 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2J - Boost Control","INVALID","2I - VVT","INVALID","INVALID","INVALID","Fuel Pump Relay","INVALID","INVALID","INVALID","INVALID","3U - Injector 1","3V - Injector 2","1E - Check Engine Light","INVALID","INVALID","Tachometer (rev D)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1J - AC Relay","Tachometer (rev C)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1G - Ignition 1 & 4 (rev C)" +#define brain_input_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3G - CAM","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3E - CRANK","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2L - Flex Fuel","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1M - VSS" +#define adc_channel_e_list="NONE","3N - O2S","2N - Temperature Sensor","intMAP (A15)","4I - PPS1","TPS Input","1B - Battery Sense","INVALID","4G - PPS2 OR TEMPERATURE SENSOR","4H - TPS2","INVALID","3O - MAF","2M - Pressure Sensor","3Q - CLT","3P - IAT","1V - Clutch Switch","1Q AC Switch" + +; CONFIG_DEFINITION_START +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:31 UTC 2024 + +pageSize = 22236 +page = 1 +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 +sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 +launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 +rpmHardLimit = scalar, U16, 8, "rpm", 1, 0, 0, 20000, 0 +engineSnifferRpmThreshold = scalar, U16, 10, "RPM", 1, 0, 0, 30000, 0 +multisparkMaxRpm = scalar, U08, 12, "rpm", 50.0, 0, 0, 3000, 0 +maxAcRpm = scalar, U08, 13, "rpm", 50.0, 0, 0, 10000, 0 +maxAcTps = scalar, U08, 14, "%", 1, 0, 0, 100, 0 +maxAcClt = scalar, U08, 15, "deg C", 1, 0, 0, 150, 0 +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 +injectorSecondary_flow = scalar, F32, 120, "cm3/min", 1, 0, 0, 99999, 2 +injectorSecondary_battLagCorrBins = array, F32, 124, [8], "volts", 1, 0, 0, 20, 2 +injectorSecondary_battLagCorr = array, F32, 156, [8], "ms", 1, 0, 0, 50, 2 +isForcedInduction = bits, U32, 188, [0:0], "false", "true" +useFordRedundantTps = bits, U32, 188, [1:1], "false", "true" +enableKline = bits, U32, 188, [2:2], "false", "true" +overrideTriggerGaps = bits, U32, 188, [3:3], "false", "true" +enableFan1WithAc = bits, U32, 188, [4:4], "false", "true" +enableFan2WithAc = bits, U32, 188, [5:5], "false", "true" +disableFan1WhenStopped = bits, U32, 188, [6:6], "false", "true" +disableFan2WhenStopped = bits, U32, 188, [7:7], "false", "true" +enableTrailingSparks = bits, U32, 188, [8:8], "false", "true" +etb_use_two_wires = bits, U32, 188, [9:9], "false", "true" +isDoubleSolenoidIdle = bits, U32, 188, [10:10], "false", "true" +useEeprom = bits, U32, 188, [11:11], "false", "true" +useCicPidForIdle = bits, U32, 188, [12:12], "false", "true" +useTLE8888_cranking_hack = bits, U32, 188, [13:13], "false", "true" +kickStartCranking = bits, U32, 188, [14:14], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 188, [15:15], "false", "true" +launchControlEnabled = bits, U32, 188, [16:16], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 188, [17:17], "with filter", "without filter" +antiLagEnabled = bits, U32, 188, [18:18], "false", "true" +useRunningMathForCranking = bits, U32, 188, [19:19], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 188, [20:20], "false", "true" +useTLE8888_stepper = bits, U32, 188, [21:21], "false", "true" +usescriptTableForCanSniffingFiltering = bits, U32, 188, [22:22], "false", "true" +verboseCan = bits, U32, 188, [23:23], "Do not print", "Print all" +artificialTestMisfire = bits, U32, 188, [24:24], "No thank you", "Danger Mode" +useFordRedundantPps = bits, U32, 188, [25:25], "false", "true" +cltSensorPulldown = bits, U32, 188, [26:26], "false", "true" +iatSensorPulldown = bits, U32, 188, [27:27], "false", "true" +allowIdenticalPps = bits, U32, 188, [28:28], "false", "true" +overrideVvtTriggerGaps = bits, U32, 188, [29:29], "false", "true" +useSpiImu = bits, U32, 188, [30:30], "false", "true" +enableStagedInjection = bits, U32, 188, [31:31], "false", "true" +tpsMin = scalar, S16, 192, "ADC", 1, 0, 0, 1023, 0 +tpsMax = scalar, S16, 194, "ADC", 1, 0, 0, 1023, 0 +tpsErrorDetectionTooLow = scalar, S16, 196, "%", 1, 0, -10, 0, 0 +tpsErrorDetectionTooHigh = scalar, S16, 198, "%", 1, 0, 100, 110, 0 +cranking_baseFuel = scalar, F32, 200, "mg", 1, 0, 0, 500, 1 +cranking_rpm = scalar, S16, 204, "RPM", 1, 0, 0, 12000, 0 +ignitionDwellForCrankingMs = scalar, F32, 208, "ms", 1, 0, 0, 200, 1 +etbRevLimitStart = scalar, U16, 212, "rpm", 1, 0, 0, 15000, 0 +etbRevLimitRange = scalar, U16, 214, "rpm", 1, 0, 0, 2000, 0 +map_samplingAngleBins = array, F32, 216, [8], "", 1, 0, 0, 18000, 2 +map_samplingAngle = array, F32, 248, [8], "deg", 1, 0, -720, 720, 2 +map_samplingWindowBins = array, F32, 280, [8], "", 1, 0, 0, 18000, 2 +map_samplingWindow = array, F32, 312, [8], "deg", 1, 0, -720, 720, 2 +map_sensor_lowValue = scalar, F32, 344, "kpa", 1, 0, -400, 800, 2 +map_sensor_highValue = scalar, F32, 348, "kpa", 1, 0, -400, 800, 2 +map_sensor_type = bits, U08, 352, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +map_sensor_hwChannel = bits, U08, 353, [0:5], $adc_channel_e_list +clt_tempC_1 = scalar, F32, 356, "*C", 1, 0, -55, 200, 1 +clt_tempC_2 = scalar, F32, 360, "*C", 1, 0, -55, 200, 1 +clt_tempC_3 = scalar, F32, 364, "*C", 1, 0, -55, 200, 1 +clt_resistance_1 = scalar, F32, 368, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_2 = scalar, F32, 372, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_3 = scalar, F32, 376, "Ohm", 1, 0, 0, 1000000, 1 +clt_bias_resistor = scalar, F32, 380, "Ohm", 1, 0, 0, 200000, 1 +clt_adcChannel = bits, U08, 384, [0:5], $adc_channel_e_list +iat_tempC_1 = scalar, F32, 388, "*C", 1, 0, -55, 200, 1 +iat_tempC_2 = scalar, F32, 392, "*C", 1, 0, -55, 200, 1 +iat_tempC_3 = scalar, F32, 396, "*C", 1, 0, -55, 200, 1 +iat_resistance_1 = scalar, F32, 400, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_2 = scalar, F32, 404, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_3 = scalar, F32, 408, "Ohm", 1, 0, 0, 1000000, 1 +iat_bias_resistor = scalar, F32, 412, "Ohm", 1, 0, 0, 200000, 1 +iat_adcChannel = bits, U08, 416, [0:5], $adc_channel_e_list +launchTimingRetard = scalar, S32, 420, "deg", 1, 0, -180, 180, 2 +hip9011PrescalerAndSDO = scalar, S32, 424, "integer", 1, 0, 0, 32, 0 +knockBandCustom = scalar, F32, 428, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, U16, 432, "L", 0.001, 0, 0, 65, 3 +triggerSimulatorRpm = scalar, U16, 434, "RPM", 1, 0, 0, 30000, 0 +cylindersCount = scalar, U32, 436, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 440, [0:6], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "1-5-4-8-3-7-2-6", "fo33", "fo34", "fo35", "fo36", "fo37", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +communityCommsLedPid = bits, U16, 442, [0:7], $gpio_list +cylinderBore = scalar, F32, 444, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 448, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua", "INVALID", "INVALID", "INVALID", "INVALID" +ALSMaxTPS = scalar, U08, 449, "%", 1, 0, 0, 10, 0 +crankingInjectionMode = bits, U08, 450, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 451, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 452, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 454, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 455, "", 1, 0, 0, 250, 0 +crankingTimingAngle = scalar, F32, 456, "deg", 1, 0, -30, 30, 0 +ignitionMode = bits, U08, 460, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" +gapTrackingLengthOverride = scalar, S08, 461, "count", 1, 0, 1, 18, 0 +maxIdleVss = scalar, U08, 462, "kph", 1, 0, 0, 100, 0 +minOilPressureAfterStart = scalar, U16, 464, "kPa", 1, 0, 0, 1000, 0 +timingMode = bits, U08, 466, [0:0], "dynamic", "fixed" +fixedModeTiming = scalar, F32, 468, "RPM", 1, 0, 0, 3000, 0 +globalTriggerAngleOffset = scalar, F32, 472, "deg btdc", 1, 0, -720, 720, 0 +analogInputDividerCoefficient = scalar, F32, 476, "coef", 1, 0, 0.01, 10, 2 +vbattDividerCoeff = scalar, F32, 480, "coef", 1, 0, 0.01, 99, 2 +fanOnTemperature = scalar, F32, 484, "deg C", 1, 0, 0, 150, 0 +fanOffTemperature = scalar, F32, 488, "deg C", 1, 0, 0, 150, 0 +acrPin = bits, U16, 492, [0:8], $output_pin_e_list +driveWheelRevPerKm = scalar, F32, 496, "revs/km", 1, 0, 100, 1000, 1 +canNbcType = bits, U08, 500, [0:4], "None", "FIAT", "VAG", "MAZDA RX8", "BMW E46", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "MS Simplified Broadcast", "type 14", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canSleepPeriodMs = scalar, S32, 504, "ms", 1, 0, 0, 1000, 2 +camDecoder2jzPrecision = scalar, U08, 508, "", 1, 0, 0, 100, 0 +justATempTest = scalar, U08, 509, "", 1, 0, 0, 100, 0 +unusedHere333 = scalar, U08, 510, "", 1, 0, 0, 100, 0 +unusedHere334 = scalar, U08, 511, "", 1, 0, 0, 100, 0 +byFirmwareVersion = scalar, S32, 512, "index", 1, 0, 0, 300, 0 +tps1_1AdcChannel = bits, U08, 516, [0:5], $adc_channel_e_list +vbattAdcChannel = bits, U08, 517, [0:5], $adc_channel_e_list +fuelLevelSensor = bits, U08, 518, [0:5], $adc_channel_e_list +tps2_1AdcChannel = bits, U08, 519, [0:5], $adc_channel_e_list +idle_derivativeFilterLoss = scalar, F32, 520, "x", 1, 0, -1000000, 1000000, 4 +trailingSparkAngle = scalar, S32, 524, "angle", 1, 0, 0, 720, 0 +trigger_type = bits, U32, 528, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +trigger_customTotalToothCount = scalar, S32, 532, "number", 1, 0, 1, 300, 0 +trigger_customSkippedToothCount = scalar, S32, 536, "number", 1, 0, 0, 300, 0 +airByRpmTaper = scalar, F32, 540, "%", 1, 0, 0, 50, 1 +hip9011SpiDevice = bits, U08, 544, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +boostControlSafeDutyCycle = scalar, U08, 545, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 546, [0:5], $adc_channel_e_list +acrRevolutions = scalar, U08, 547, "", 1, 0, 0, 100, 0 +unused4bytesHere = scalar, F32, 548, "", 1, 0, 0, 100, 0 +adcVcc = scalar, F32, 552, "volts", 1, 0, 0, 6, 3 +mapCamDetectionAnglePosition = scalar, F32, 556, "Deg", 1, 0, 0, 360, 0 +camInputs1 = bits, U16, 560, [0:7], $brain_input_pin_e_list +camInputs2 = bits, U16, 562, [0:7], $brain_input_pin_e_list +camInputs3 = bits, U16, 564, [0:7], $brain_input_pin_e_list +camInputs4 = bits, U16, 566, [0:7], $brain_input_pin_e_list +afr_hwChannel = bits, U08, 568, [0:5], $adc_channel_e_list +afr_hwChannel2 = bits, U08, 569, [0:5], $adc_channel_e_list +afr_v1 = scalar, F32, 572, "volts", 1, 0, 0, 10, 2 +afr_value1 = scalar, F32, 576, "AFR", 1, 0, 0, 1000, 2 +afr_v2 = scalar, F32, 580, "volts", 1, 0, 0, 10, 2 +afr_value2 = scalar, F32, 584, "AFR", 1, 0, 0, 1000, 2 +throttlePedalPositionAdcChannel = bits, U08, 588, [0:5], $adc_channel_e_list +etbSplit = scalar, U08, 589, "%", 0.1, 0, 0, 20, 1 +tle6240_cs = bits, U16, 590, [0:7], $gpio_list +tle6240_csPinMode = bits, U08, 592, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33810_csPinMode = bits, U08, 593, [0:1], "default", "default inverted", "open collector", "open collector inverted" +throttlePedalUpPin = bits, U16, 594, [0:7], $switch_input_pin_e_list +baroSensor_lowValue = scalar, F32, 596, "kpa", 1, 0, -400, 800, 2 +baroSensor_highValue = scalar, F32, 600, "kpa", 1, 0, -400, 800, 2 +baroSensor_type = bits, U08, 604, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +baroSensor_hwChannel = bits, U08, 605, [0:5], $adc_channel_e_list +idle_solenoidFrequency = scalar, S32, 608, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 612, [0:8], $output_pin_e_list +idle_stepperDirectionPin = bits, U16, 614, [0:7], $gpio_list +idle_stepperStepPin = bits, U16, 616, [0:7], $gpio_list +idle_solenoidPinMode = bits, U08, 618, [0:1], "default", "default inverted", "open collector", "open collector inverted" +manIdlePosition = scalar, F32, 620, "%", 1, 0, 0, 100, 0 +knockRetardAggression = scalar, U08, 624, "%", 0.1, 0, 0, 20, 1 +knockRetardReapplyRate = scalar, U08, 625, "deg/s", 0.1, 0, 0, 10, 1 +engineSyncCam = bits, S08, 626, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" +vssFilterReciprocal = scalar, U08, 627, "", 1, 0, 3, 200 0 +vssGearRatio = scalar, U16, 628, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 630, "count", 1, 0, 1, 100, 0 +idleVeOverrideMode = bits, U08, 631, [0:1], "None", "MAP", "TPS", "INVALID" +l9779_cs = bits, U16, 632, [0:7], $gpio_list +injectionPins1 = bits, U16, 634, [0:8], $output_pin_e_list +injectionPins2 = bits, U16, 636, [0:8], $output_pin_e_list +injectionPins3 = bits, U16, 638, [0:8], $output_pin_e_list +injectionPins4 = bits, U16, 640, [0:8], $output_pin_e_list +injectionPins5 = bits, U16, 642, [0:8], $output_pin_e_list +injectionPins6 = bits, U16, 644, [0:8], $output_pin_e_list +injectionPins7 = bits, U16, 646, [0:8], $output_pin_e_list +injectionPins8 = bits, U16, 648, [0:8], $output_pin_e_list +injectionPins9 = bits, U16, 650, [0:8], $output_pin_e_list +injectionPins10 = bits, U16, 652, [0:8], $output_pin_e_list +injectionPins11 = bits, U16, 654, [0:8], $output_pin_e_list +injectionPins12 = bits, U16, 656, [0:8], $output_pin_e_list +ignitionPins1 = bits, U16, 658, [0:8], $output_pin_e_list +ignitionPins2 = bits, U16, 660, [0:8], $output_pin_e_list +ignitionPins3 = bits, U16, 662, [0:8], $output_pin_e_list +ignitionPins4 = bits, U16, 664, [0:8], $output_pin_e_list +ignitionPins5 = bits, U16, 666, [0:8], $output_pin_e_list +ignitionPins6 = bits, U16, 668, [0:8], $output_pin_e_list +ignitionPins7 = bits, U16, 670, [0:8], $output_pin_e_list +ignitionPins8 = bits, U16, 672, [0:8], $output_pin_e_list +ignitionPins9 = bits, U16, 674, [0:8], $output_pin_e_list +ignitionPins10 = bits, U16, 676, [0:8], $output_pin_e_list +ignitionPins11 = bits, U16, 678, [0:8], $output_pin_e_list +ignitionPins12 = bits, U16, 680, [0:8], $output_pin_e_list +injectionPinMode = bits, U08, 682, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 683, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 684, [0:8], $output_pin_e_list +fuelPumpPinMode = bits, U08, 686, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gapVvtTrackingLengthOverride = scalar, S08, 687, "count", 1, 0, 1, 4, 0 +malfunctionIndicatorPin = bits, U16, 688, [0:8], $output_pin_e_list +malfunctionIndicatorPinMode = bits, U08, 690, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 691, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 692, [0:8], $output_pin_e_list +clutchDownPin = bits, U16, 694, [0:7], $switch_input_pin_e_list +alternatorControlPin = bits, U16, 696, [0:8], $output_pin_e_list +alternatorControlPinMode = bits, U08, 698, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 699, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +digitalPotentiometerChipSelect1 = bits, U16, 700, [0:7], $gpio_list +digitalPotentiometerChipSelect2 = bits, U16, 702, [0:7], $gpio_list +digitalPotentiometerChipSelect3 = bits, U16, 704, [0:7], $gpio_list +digitalPotentiometerChipSelect4 = bits, U16, 706, [0:7], $gpio_list +electronicThrottlePin1Mode = bits, U08, 708, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 709, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +debugTriggerSync = bits, U16, 710, [0:7], $gpio_list +digitalPotentiometerSpiDevice = bits, U08, 712, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33972_cs = bits, U16, 714, [0:7], $gpio_list +mc33972_csPinMode = bits, U08, 716, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 717, [0:5], $adc_channel_e_list +tps1_2AdcChannel = bits, U08, 718, [0:5], $adc_channel_e_list +tps2_2AdcChannel = bits, U08, 719, [0:5], $adc_channel_e_list +throttlePedalPositionSecondAdcChannel = bits, U08, 720, [0:5], $adc_channel_e_list +fuelLevelValues = array, U08, 721, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 729, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM", "INVALID" +mc33810_cs1 = bits, U16, 730, [0:7], $gpio_list +idle_antiwindupFreq = scalar, F32, 732, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 736, [0:7], $brain_input_pin_e_list +triggerInputPins2 = bits, U16, 738, [0:7], $brain_input_pin_e_list +mc33_t_min_boost = scalar, U16, 740, "us", 1, 0, 0, 10000, 0 +hip9011CsPinMode = bits, U08, 742, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tachOutputPin = bits, U16, 744, [0:8], $output_pin_e_list +tachOutputPinMode = bits, U08, 746, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 748, [0:8], $output_pin_e_list +sdCardCsPin = bits, U16, 750, [0:7], $gpio_list +canTxPin = bits, U16, 752, [0:7], $gpio_list +canRxPin = bits, U16, 754, [0:7], $gpio_list +throttlePedalUpPinMode = bits, U08, 756, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acIdleExtraOffset = scalar, U08, 757, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 758, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 760, [0:7], $brain_input_pin_e_list +tcuInputSpeedSensorTeeth = scalar, U08, 762, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 764, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 766, "mv", 1, 0, 0, 5000, 0 +idlePositionMin = scalar, U16, 768, "mv", 1, 0, 0, 5000, 0 +idlePositionMax = scalar, U16, 770, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 772, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 776, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 780, [0:7], $gpio_list +triggerSimulatorPins2 = bits, U16, 782, [0:7], $gpio_list +fordInjectorSmallPulseSlope = scalar, U16, 784, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 786, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 787, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 788, [0:5], $adc_channel_e_list +o2heaterPin = bits, U16, 790, [0:8], $output_pin_e_list +o2heaterPinModeTodO = bits, U08, 792, [0:1], "default", "default inverted", "open collector", "open collector inverted" +lambdaProtectionMinRpm = scalar, U08, 793, "RPM", 100.0, 0, 0, 25000, 0 +lambdaProtectionMinLoad = scalar, U08, 794, "%", 10.0, 0, 0, 1000, 0 +is_enabled_spi_1 = bits, U32, 796, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 796, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 796, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 796, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 796, [4:4], "11 bit", "29 bit" +rethrowHardFault = bits, U32, 796, [5:5], "false", "true" +isHip9011Enabled = bits, U32, 796, [6:6], "false", "true" +requireFootOnBrakeToCrank = bits, U32, 796, [7:7], "false", "true" +verboseQuad = bits, U32, 796, [8:8], "false", "true" +useStepperIdle = bits, U32, 796, [9:9], "false", "true" +enabledStep1Limiter = bits, U32, 796, [10:10], "false", "true" +useTpicAdvancedMode = bits, U32, 796, [11:11], "false", "true" +lambdaProtectionEnable = bits, U32, 796, [12:12], "false", "true" +verboseTLE8888 = bits, U32, 796, [13:13], "false", "true" +enableVerboseCanTx = bits, U32, 796, [14:14], "false", "true" +etb1configured = bits, U32, 796, [15:15], "false", "true" +etb2configured = bits, U32, 796, [16:16], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 796, [17:17], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 796, [18:18], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 796, [19:19], "false", "true" +coastingFuelCutEnabled = bits, U32, 796, [20:20], "false", "true" +useIacTableForCoasting = bits, U32, 796, [21:21], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 796, [22:22], "false", "true" +useIdleTimingPidControl = bits, U32, 796, [23:23], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 796, [24:24], "false", "true" +is_enabled_spi_4 = bits, U32, 796, [25:25], "false", "true" +pauseEtbControl = bits, U32, 796, [26:26], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 796, [27:27], "false", "true" +verboseKLine = bits, U32, 796, [28:28], "false", "true" +idleIncrementalPidCic = bits, U32, 796, [29:29], "false", "true" +enableAemXSeries = bits, U32, 796, [30:30], "false", "true" +logicAnalyzerPins1 = bits, U16, 800, [0:7], $brain_input_pin_e_list +logicAnalyzerPins2 = bits, U16, 802, [0:7], $brain_input_pin_e_list +logicAnalyzerPins3 = bits, U16, 804, [0:7], $brain_input_pin_e_list +logicAnalyzerPins4 = bits, U16, 806, [0:7], $brain_input_pin_e_list +mainRelayPinMode = bits, U08, 808, [0:1], "default", "default inverted", "open collector", "open collector inverted" +hip9011CsPin = bits, U16, 810, [0:7], $gpio_list +hip9011IntHoldPin = bits, U16, 812, [0:7], $gpio_list +hip9011IntHoldPinMode = bits, U08, 814, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 816, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 820, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 821, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 822, [0:8], $output_pin_e_list +acFanPinMode = bits, U08, 824, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 825, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +dwellVoltageCorrVoltBins = array, U08, 826, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 834, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +dwellVoltageCorrValues = array, U08, 835, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 844, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 846, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 848, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 850, [0:7], $gpio_list +lps25BaroSensorSda = bits, U16, 852, [0:7], $gpio_list +vehicleSpeedSensorInputPin = bits, U16, 854, [0:7], $brain_input_pin_e_list +clutchUpPin = bits, U16, 856, [0:7], $switch_input_pin_e_list +injectorNonlinearMode = bits, U08, 858, [0:1], "None", "Polynomial", "Ford (dual slope)", "INVALID" +clutchUpPinMode = bits, U08, 859, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +max31855_cs1 = bits, U16, 860, [0:7], $gpio_list +max31855_cs2 = bits, U16, 862, [0:7], $gpio_list +max31855_cs3 = bits, U16, 864, [0:7], $gpio_list +max31855_cs4 = bits, U16, 866, [0:7], $gpio_list +max31855_cs5 = bits, U16, 868, [0:7], $gpio_list +max31855_cs6 = bits, U16, 870, [0:7], $gpio_list +max31855_cs7 = bits, U16, 872, [0:7], $gpio_list +max31855_cs8 = bits, U16, 874, [0:7], $gpio_list +flexSensorPin = bits, U16, 876, [0:7], $brain_input_pin_e_list +test557pin = bits, U16, 878, [0:7], $gpio_list +stepperDirectionPinMode = bits, U08, 880, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 881, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioSecondary = scalar, U08, 882, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 883, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 884, "hz", 1, 0, 1, 250, 0 +idlePositionChannel = bits, U08, 886, [0:5], $adc_channel_e_list +debugMapAveraging = bits, U16, 888, [0:7], $gpio_list +starterRelayDisablePin = bits, U16, 890, [0:8], $output_pin_e_list +starterRelayDisablePinMode = bits, U08, 892, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 894, [0:8], $output_pin_e_list +startStopButtonPin = bits, U16, 896, [0:7], $switch_input_pin_e_list +mapMinBufferLength = scalar, S32, 900, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 904, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 906, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 908, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 910, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 912, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 914, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 916, [0:7], $gpio_list +triggerErrorPinMode = bits, U08, 918, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 920, [0:8], $output_pin_e_list +lambdaProtectionMinTps = scalar, U08, 922, "%", 1, 0, 0, 100, 0 +lambdaProtectionTimeout = scalar, U08, 923, "s", 0.1, 0, 0, 10, 1 +lambdaProtectionRestoreRpm = scalar, U08, 924, "RPM", 100.0, 0, 0, 25000, 0 +acRelayPinMode = bits, U08, 925, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 928, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 932, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 936, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 940, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 944, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 948, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 952, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 956, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 960, [0:7], $gpio_list +spi1misoPin = bits, U16, 962, [0:7], $gpio_list +spi1sckPin = bits, U16, 964, [0:7], $gpio_list +spi2mosiPin = bits, U16, 966, [0:7], $gpio_list +spi2misoPin = bits, U16, 968, [0:7], $gpio_list +spi2sckPin = bits, U16, 970, [0:7], $gpio_list +spi3mosiPin = bits, U16, 972, [0:7], $gpio_list +spi3misoPin = bits, U16, 974, [0:7], $gpio_list +spi3sckPin = bits, U16, 976, [0:7], $gpio_list +cdmInputPin = bits, U16, 978, [0:7], $gpio_list +consoleUartDevice = bits, U08, 980, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 981, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1", "INVALID", "INVALID" +mafSensorType = bits, S08, 982, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 984, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 984, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 984, [2:2], "false", "true" +multisparkEnable = bits, U32, 984, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 984, [4:4], "false", "true" +canInputBCM = bits, U32, 984, [5:5], "false", "true" +consumeObdSensors = bits, U32, 984, [6:6], "false", "true" +enableCanVss = bits, U32, 984, [7:7], "false", "true" +enableInnovateLC2 = bits, U32, 984, [8:8], "false", "true" +showHumanReadableWarning = bits, U32, 984, [9:9], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 984, [10:10], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 984, [11:11], "false", "true" +enableSoftwareKnock = bits, U32, 984, [12:12], "false", "true" +verboseVVTDecoding = bits, U32, 984, [13:13], "false", "true" +invertCamVVTSignal = bits, U32, 984, [14:14], "Rising", "Falling" +alphaNUseIat = bits, U32, 984, [15:15], "false", "true" +knockBankCyl1 = bits, U32, 984, [16:16], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 984, [17:17], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 984, [18:18], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 984, [19:19], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 984, [20:20], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 984, [21:21], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 984, [22:22], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 984, [23:23], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 984, [24:24], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 984, [25:25], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 984, [26:26], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 984, [27:27], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 984, [28:28], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 984, [29:29], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 984, [30:30], "false", "true" +verboseCan2 = bits, U32, 984, [31:31], "Do not print", "Print all" +etbIo1_directionPin1 = bits, U16, 988, [0:7], $gpio_list +etbIo1_directionPin2 = bits, U16, 990, [0:7], $gpio_list +etbIo1_controlPin = bits, U16, 992, [0:7], $gpio_list +etbIo1_disablePin = bits, U16, 994, [0:7], $gpio_list +etbIo2_directionPin1 = bits, U16, 996, [0:7], $gpio_list +etbIo2_directionPin2 = bits, U16, 998, [0:7], $gpio_list +etbIo2_controlPin = bits, U16, 1000, [0:7], $gpio_list +etbIo2_disablePin = bits, U16, 1002, [0:7], $gpio_list +boostControlPin = bits, U16, 1004, [0:8], $output_pin_e_list +boostControlPinMode = bits, U08, 1006, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 1008, [0:7], $switch_input_pin_e_list +launchActivatePin = bits, U16, 1010, [0:7], $switch_input_pin_e_list +boostPid_pFactor = scalar, F32, 1012, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 1016, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 1020, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 1024, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 1026, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 1028, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 1030, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 1032, [0:0], "Open Loop", "Open + Closed Loop" +ignitionKeyDigitalPinMode = bits, U08, 1033, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +ignitionKeyDigitalPin = bits, U16, 1034, [0:7], $gpio_list +boostPwmFrequency = scalar, S32, 1036, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 1040, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)", "INVALID" +antiLagActivationMode = bits, S08, 1041, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 1044, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 1048, "RPM", 1, 0, 0, 8000, 0 +launchSparkSkipPercent = scalar, S32, 1052, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 1056, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 1060, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 1064, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 1068, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 1072, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 1076, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 1077, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 1078, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 1079, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 1080, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 1081, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 1082, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 1083, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 1084, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 1085, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 1086, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 1088, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 1089, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 1090, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1092, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1093, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1094, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1096, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1097, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1098, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1100, [0:7], $gpio_list +stepperDcIo1_directionPin2 = bits, U16, 1102, [0:7], $gpio_list +stepperDcIo1_controlPin = bits, U16, 1104, [0:7], $gpio_list +stepperDcIo1_disablePin = bits, U16, 1106, [0:7], $gpio_list +stepperDcIo2_directionPin1 = bits, U16, 1108, [0:7], $gpio_list +stepperDcIo2_directionPin2 = bits, U16, 1110, [0:7], $gpio_list +stepperDcIo2_controlPin = bits, U16, 1112, [0:7], $gpio_list +stepperDcIo2_disablePin = bits, U16, 1114, [0:7], $gpio_list +engineMake = string, ASCII, 1116, 32 +engineCode = string, ASCII, 1148, 32 +vehicleName = string, ASCII, 1180, 32 +tcu_solenoid1 = bits, U16, 1212, [0:8], $output_pin_e_list +tcu_solenoid2 = bits, U16, 1214, [0:8], $output_pin_e_list +tcu_solenoid3 = bits, U16, 1216, [0:8], $output_pin_e_list +tcu_solenoid4 = bits, U16, 1218, [0:8], $output_pin_e_list +tcu_solenoid5 = bits, U16, 1220, [0:8], $output_pin_e_list +tcu_solenoid6 = bits, U16, 1222, [0:8], $output_pin_e_list +etbFunctions1 = bits, U08, 1224, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +etbFunctions2 = bits, U08, 1225, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +drv8860spiDevice = bits, U08, 1226, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +drv8860_cs = bits, U16, 1228, [0:7], $gpio_list +drv8860_csPinMode = bits, U08, 1230, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1232, [0:7], $gpio_list +fuelLevelBins = array, U16, 1234, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1250, [0:8], $output_pin_e_list +luaOutputPins2 = bits, U16, 1252, [0:8], $output_pin_e_list +luaOutputPins3 = bits, U16, 1254, [0:8], $output_pin_e_list +luaOutputPins4 = bits, U16, 1256, [0:8], $output_pin_e_list +luaOutputPins5 = bits, U16, 1258, [0:8], $output_pin_e_list +luaOutputPins6 = bits, U16, 1260, [0:8], $output_pin_e_list +luaOutputPins7 = bits, U16, 1262, [0:8], $output_pin_e_list +luaOutputPins8 = bits, U16, 1264, [0:8], $output_pin_e_list +vvtOffsets1 = scalar, F32, 1268, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1272, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1276, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1280, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1284, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1290, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1296, [0:7], $gpio_list +vrThreshold2_rpmBins = array, U08, 1300, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1306, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_pin = bits, U16, 1312, [0:7], $gpio_list +gpPwmNote1 = string, ASCII, 1316, 16 +gpPwmNote2 = string, ASCII, 1332, 16 +gpPwmNote3 = string, ASCII, 1348, 16 +gpPwmNote4 = string, ASCII, 1364, 16 +tps2SecondaryMin = scalar, U16, 1380, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1382, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1384, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1384, [1:1], "false", "true" +oddFireEngine = bits, U32, 1384, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1384, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1384, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1384, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1384, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1384, [7:7], "false", "true" +canReadEnabled = bits, U32, 1384, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1384, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1384, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1384, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1384, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1384, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1384, [14:14], "Rising", "Falling" +invertSecondaryTriggerSignal = bits, U32, 1384, [15:15], "Rising", "Falling" +cutFuelOnHardLimit = bits, U32, 1384, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1384, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1384, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1384, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1384, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1384, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1384, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1384, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1384, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1384, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1384, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1384, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1384, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1384, [29:29], "false", "true" +twoStroke = bits, U32, 1384, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1384, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1388, [0:5], $adc_channel_e_list +acSwitch = bits, U16, 1390, [0:7], $switch_input_pin_e_list +vRefAdcChannel = bits, U08, 1392, [0:5], $adc_channel_e_list +etbNeutralPosition = scalar, U08, 1393, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1394, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1396, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1396, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1396, [2:2], "false", "true" +complexWallModel = bits, U32, 1396, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1396, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1396, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1396, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1396, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1396, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1396, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1396, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1396, [11:11], "false", "true" +cutFuelInAcr = bits, U32, 1396, [12:12], "false", "true" +hondaK = bits, U32, 1396, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1396, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1396, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1396, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1396, [17:17], "false", "true" +flexCranking = bits, U32, 1396, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1396, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1396, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1396, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1396, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1396, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1396, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1396, [25:25], "advance", "retard" +invertVvtControlExhaust = bits, U32, 1396, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1396, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1396, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1396, [29:29], "false", "true" +stepper_dc_use_two_wires = bits, U32, 1396, [30:30], "false", "true" +watchOutForLinearTime = bits, U32, 1396, [31:31], "false", "true" +engineChartSize = scalar, U32, 1400, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1404, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1408, [0:7], $gpio_list +camInputsDebug2 = bits, U16, 1410, [0:7], $gpio_list +camInputsDebug3 = bits, U16, 1412, [0:7], $gpio_list +camInputsDebug4 = bits, U16, 1414, [0:7], $gpio_list +acIdleRpmTarget = scalar, S16, 1416, "RPM", 1, 0, 0, 2000, 0 +warningPeriod = scalar, S16, 1418, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1420, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1424, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1428, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1432, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1436, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1440, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1444, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1448, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1452, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1456, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1460, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1464, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1466, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1468, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1470, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1472, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1476, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1480, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1484, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1486, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1488, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1490, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1492, [0:7], $gpio_list +triggerInputDebugPins2 = bits, U16, 1494, [0:7], $gpio_list +airTaperRpmRange = scalar, S16, 1496, "RPM", 1, 0, 0, 1500, 0 +turboSpeedSensorInputPin = bits, U16, 1498, [0:7], $brain_input_pin_e_list +tps2Min = scalar, S16, 1500, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1502, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1504, [0:8], $output_pin_e_list +startStopButtonMode = bits, U08, 1506, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +mc33816_flag0 = bits, U16, 1508, [0:7], $gpio_list +tachPulsePerRev = scalar, U08, 1510, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1512, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1516, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1520, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1522, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1524, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1528, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1532, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1536, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1538, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1540, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1542, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1544, "Fraction", 1, 0, 0, 1, 2 +binarySerialTxPin = bits, U16, 1548, [0:7], $gpio_list +binarySerialRxPin = bits, U16, 1550, [0:7], $gpio_list +auxValves1 = bits, U16, 1552, [0:7], $gpio_list +auxValves2 = bits, U16, 1554, [0:7], $gpio_list +tcuUpshiftButtonPin = bits, U16, 1556, [0:7], $switch_input_pin_e_list +tcuDownshiftButtonPin = bits, U16, 1558, [0:7], $switch_input_pin_e_list +throttlePedalUpVoltage = scalar, F32, 1560, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1564, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1568, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1570, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1572, "Volts", 1, 0, 0, 30, 1 +mc33810DisableRecoveryMode = bits, U32, 1576, [0:0], "false", "true" +mc33810Gpgd0Mode = bits, U32, 1576, [1:1], "false", "true" +mc33810Gpgd1Mode = bits, U32, 1576, [2:2], "false", "true" +mc33810Gpgd2Mode = bits, U32, 1576, [3:3], "false", "true" +mc33810Gpgd3Mode = bits, U32, 1576, [4:4], "false", "true" +enableExtendedCanBroadcast = bits, U32, 1576, [5:5], "false", "true" +luaCanRxWorkaround = bits, U32, 1576, [6:6], "false", "true" +flexSensorInverted = bits, U32, 1576, [7:7], "false", "true" +useHardSkipInTraction = bits, U32, 1576, [8:8], "false", "true" +useAuxSpeedForSlipRatio = bits, U32, 1576, [11:11], "false", "true" +useVssAsSecondWheelSpeed = bits, U32, 1576, [12:12], "false", "true" +is_enabled_spi_5 = bits, U32, 1576, [13:13], "false", "true" +is_enabled_spi_6 = bits, U32, 1576, [14:14], "false", "true" +afterCrankingIACtaperDuration = scalar, S16, 1580, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1582, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1584, [0:7], $gpio_list +auxSerialRxPin = bits, U16, 1586, [0:7], $gpio_list +accelerometerCsPin = bits, U16, 1588, [0:7], $gpio_list +tpsAccelLookback = scalar, U08, 1590, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1591, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1592, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1593, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1596, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1600, [0:7], $brain_input_pin_e_list +auxSpeedSensorInputPin2 = bits, U16, 1602, [0:7], $brain_input_pin_e_list +totalGearsCount = scalar, U08, 1604, "", 1, 0, 1, 10, 0 +injectionTimingMode = bits, U08, 1605, [0:1], "End of injection", "Start of injection", "Center of injection", "INVALID" +debugMode = bits, U08, 1606, [0:5], "INVALID", "TPS acceleration enrichment", "INVALID", "Stepper Idle Control", "Engine Load accl enrich", "Trigger Counters", "Soft Spark Cut", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "SD card", "sr5", "Knock", "INVALID", "Electronic Throttle", "Executor", "Bench Test / TS commands", "INVALID", "Analog inputs #1", "INSTANT_RPM", "INVALID", "Status", "INVALID", "INVALID", "MAP", "Metrics", "INVALID", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "INVALID", "Boost Control", "INVALID", "INVALID", "ETB Autotune", "Composite Log", "INVALID", "INVALID", "INVALID", "Dyno_View", "Logic_Analyzer", "INVALID", "TCU", "Lua", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan1ExtraIdle = scalar, U08, 1607, "%", 1, 0, 0, 100, 0 +uartConsoleSerialSpeed = scalar, U32, 1608, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1612, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1616, "coeff", 1, 0, 0, 200, 2 +auxSerialSpeed = scalar, U32, 1620, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1624, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1628, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1632, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +veOverrideMode = bits, U08, 1633, [0:1], "None", "MAP", "TPS", "INVALID" +can2BaudRate = bits, U08, 1634, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +afrOverrideMode = bits, U08, 1635, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +mc33_hpfp_i_peak = scalar, U08, 1636, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1637, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1638, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1639, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1640, [0:0], "false", "true" +canOpenBLT = bits, U32, 1640, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1640, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1640, [3:3], "volumetric flow", "mass flow" +boardUseCanTerminator = bits, U32, 1640, [4:4], "false", "true" +kLineDoHondaSend = bits, U32, 1640, [5:5], "false", "true" +can1ListenMode = bits, U32, 1640, [6:6], "false", "true" +can2ListenMode = bits, U32, 1640, [7:7], "false", "true" +camDecoder2jzPosition = scalar, U08, 1644, "", 1, 0, 0, 100, 0 +mc33810maxDwellTimer = bits, U08, 1645, [0:2], "2 mS", "4 mS", "8 mS", "16 mS", "32 mS", "64 mS", "INVALID", "INVALID" +benchTestOnTime = scalar, U16, 1646, "ms", 0.01, 0, 0, 500, 2 +lambdaProtectionRestoreTps = scalar, U08, 1648, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1649, "%", 10.0, 0, 0, 1000, 0 +launchActivatePinMode = bits, U08, 1650, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +can2TxPin = bits, U16, 1652, [0:7], $gpio_list +can2RxPin = bits, U16, 1654, [0:7], $gpio_list +starterControlPinMode = bits, U08, 1656, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1657, [0:5], $adc_channel_e_list +ignOverrideMode = bits, U08, 1658, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +injectorPressureType = bits, U08, 1659, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1660, [0:8], $output_pin_e_list +hpfpValvePinMode = bits, U08, 1662, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1664, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1668, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1684, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1700, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1704, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1708, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1712, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1716, [0:8], $output_pin_e_list +vvtPins2 = bits, U16, 1718, [0:8], $output_pin_e_list +vvtPins3 = bits, U16, 1720, [0:8], $output_pin_e_list +vvtPins4 = bits, U16, 1722, [0:8], $output_pin_e_list +sdCardCsPinMode = bits, U08, 1724, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1728, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1732, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1736, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1740, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1744, "", 1, 0, 0, 3, 4 +vvtOutputFrequency = scalar, U16, 1748, "Hz", 1, 0, 0, 3000, 0 +minimumIgnitionTiming = scalar, S08, 1750, "deg BTDC", 1, 0, -90, 90, 0 +maximumIgnitionTiming = scalar, S08, 1751, "deg BTDC", 1, 0, -90, 90, 0 +alternatorPwmFrequency = scalar, S32, 1752, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1756, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vvtMode2 = bits, U08, 1757, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan2ExtraIdle = scalar, U08, 1758, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1759, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1760, [0:5], $adc_channel_e_list +auxAnalogInputs2 = bits, U08, 1761, [0:5], $adc_channel_e_list +auxAnalogInputs3 = bits, U08, 1762, [0:5], $adc_channel_e_list +auxAnalogInputs4 = bits, U08, 1763, [0:5], $adc_channel_e_list +auxAnalogInputs5 = bits, U08, 1764, [0:5], $adc_channel_e_list +auxAnalogInputs6 = bits, U08, 1765, [0:5], $adc_channel_e_list +auxAnalogInputs7 = bits, U08, 1766, [0:5], $adc_channel_e_list +auxAnalogInputs8 = bits, U08, 1767, [0:5], $adc_channel_e_list +trailingCoilPins1 = bits, U16, 1768, [0:8], $output_pin_e_list +trailingCoilPins2 = bits, U16, 1770, [0:8], $output_pin_e_list +trailingCoilPins3 = bits, U16, 1772, [0:8], $output_pin_e_list +trailingCoilPins4 = bits, U16, 1774, [0:8], $output_pin_e_list +trailingCoilPins5 = bits, U16, 1776, [0:8], $output_pin_e_list +trailingCoilPins6 = bits, U16, 1778, [0:8], $output_pin_e_list +trailingCoilPins7 = bits, U16, 1780, [0:8], $output_pin_e_list +trailingCoilPins8 = bits, U16, 1782, [0:8], $output_pin_e_list +trailingCoilPins9 = bits, U16, 1784, [0:8], $output_pin_e_list +trailingCoilPins10 = bits, U16, 1786, [0:8], $output_pin_e_list +trailingCoilPins11 = bits, U16, 1788, [0:8], $output_pin_e_list +trailingCoilPins12 = bits, U16, 1790, [0:8], $output_pin_e_list +tle8888mode = bits, U08, 1792, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +accelerometerCsPinMode = bits, U08, 1793, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1794, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure", "INVALID" +fan2PinMode = bits, U08, 1795, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1796, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = array, F32, 1800, [6x6], "mult", 1, 0, 1, 3, 2 +postCrankingDurationBins = array, F32, 1944, [6], "count", 1, 0, 0, 1000, 0 +postCrankingCLTBins = array, F32, 1968, [6], "C", 1, 0, -100, 100, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1992, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1996, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 2000, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 2004, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 2008, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 2012, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 2016, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 2020, [0:5], $adc_channel_e_list +auxTempSensor2_tempC_1 = scalar, F32, 2024, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 2028, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 2032, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 2036, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 2040, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 2044, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 2048, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 2052, [0:5], $adc_channel_e_list +knockSamplingDuration = scalar, S16, 2056, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 2058, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 2060, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 2064, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 2068, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 2072, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 2074, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 2076, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 2078, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 2080, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperMinDutyCycle = scalar, U08, 2081, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 2082, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 2083, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +timing_offset_cylinder1 = scalar, F32, 2084, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 2088, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 2092, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 2096, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 2100, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 2104, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 2108, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 2112, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 2116, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 2120, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 2124, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 2128, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 2132, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 2136, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MosiMode = bits, U08, 2137, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MisoMode = bits, U08, 2138, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2SckMode = bits, U08, 2139, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MosiMode = bits, U08, 2140, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MisoMode = bits, U08, 2141, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3SckMode = bits, U08, 2142, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MosiMode = bits, U08, 2143, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MisoMode = bits, U08, 2144, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperEnablePinMode = bits, U08, 2145, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 2146, [0:7], $gpio_list +mc33816_driven = bits, U16, 2148, [0:7], $gpio_list +brakePedalPin = bits, U16, 2150, [0:7], $switch_input_pin_e_list +brakePedalPinMode = bits, U08, 2152, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +auxPid1_pFactor = scalar, F32, 2156, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 2160, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 2164, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 2168, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 2170, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 2172, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 2174, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 2176, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 2180, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 2184, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 2188, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 2190, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 2192, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 2194, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2196, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2200, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2204, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2208, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2212, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2216, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2220, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2224, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 2228, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 2236, [0:5], $adc_channel_e_list +oilPressure_v1 = scalar, F32, 2240, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 2244, "", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 2248, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 2252, "", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 2256, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +fan2Pin = bits, U16, 2258, [0:8], $output_pin_e_list +fan2OnTemperature = scalar, U08, 2260, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 2261, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 2262, [0:7], $gpio_list +tle8888_cs = bits, U16, 2264, [0:7], $gpio_list +tle8888_csPinMode = bits, U08, 2266, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_cs = bits, U16, 2268, [0:7], $gpio_list +auxFrequencyFilter = scalar, F32, 2272, "hz", 1, 0, 0, 100, 1 +vvtControlMinRpm = scalar, S16, 2276, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2278, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +launchFuelAdderPercent = scalar, S08, 2280, "%", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2281, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2282, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2284, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2288, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2290, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2292, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2294, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2296, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2298, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2300, [0:5], $adc_channel_e_list +highPressureFuel_v1 = scalar, F32, 2304, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2308, "", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2312, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2316, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2320, [0:5], $adc_channel_e_list +lowPressureFuel_v1 = scalar, F32, 2324, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2328, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2332, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2336, "", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2340, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2344, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2352, 16 +scriptCurveName2 = string, ASCII, 2368, 16 +scriptCurveName3 = string, ASCII, 2384, 16 +scriptCurveName4 = string, ASCII, 2400, 16 +scriptCurveName5 = string, ASCII, 2416, 16 +scriptCurveName6 = string, ASCII, 2432, 16 +scriptTableName1 = string, ASCII, 2448, 16 +scriptTableName2 = string, ASCII, 2464, 16 +scriptTableName3 = string, ASCII, 2480, 16 +scriptTableName4 = string, ASCII, 2496, 16 +scriptSettingName1 = string, ASCII, 2512, 16 +scriptSettingName2 = string, ASCII, 2528, 16 +scriptSettingName3 = string, ASCII, 2544, 16 +scriptSettingName4 = string, ASCII, 2560, 16 +scriptSettingName5 = string, ASCII, 2576, 16 +scriptSettingName6 = string, ASCII, 2592, 16 +scriptSettingName7 = string, ASCII, 2608, 16 +scriptSettingName8 = string, ASCII, 2624, 16 +tChargeAirCoefMin = scalar, F32, 2640, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2644, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2648, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2652, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2656, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2660, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table", "INVALID" +hip9011Gain = scalar, F32, 2664, "", 1, 0, 0, 100, 2 +etb_iTermMin = scalar, S16, 2668, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2670, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2672, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2676, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2680, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2684, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2686, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2688, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2690, "", 1, 0, -30000, 30000, 0 +idleTimingSoftEntryTime = scalar, F32, 2692, "", 1, 0, 0, 100, 1 +etbRocExpAverageLength = scalar, S16, 2696, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2698, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2700, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2704, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33816spiDevice = bits, U08, 2705, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +idlerpmpid_iTermMin = scalar, S16, 2706, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2708, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioPrimary = scalar, U08, 2709, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2710, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2712, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2716, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2717, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2718, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2719, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2720, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2721, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2722, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2723, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2724, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2725, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2726, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2727, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2728, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2736, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2737, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2738, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2739, "RPM", 50.0, 0, 0, 12000, 0 +tractionControlSlipBins = array, U16, 2740, [6], "ratio", 0.01, 0, 0, 999, 2 +tractionControlSpeedBins = array, U08, 2752, [6], "RPM", 1, 0, 0, 250, 0 +disableFan1AtSpeed = scalar, S08, 2758, "", 1, 0, 0, 100, 0 +disableFan2AtSpeed = scalar, S08, 2759, "", 1, 0, 0, 100, 0 +canVssNbcType = bits, U08, 2760, [0:2], "BMW_e46", "W202", "BMW E8x/E9x MK60e5", "Nissan 350", "Hyundai PB", "Honda Civic9", "INVALID", "INVALID" +gppwm1_pin = bits, U16, 2764, [0:8], $output_pin_e_list +gppwm1_dutyIfError = scalar, U08, 2766, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2768, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2770, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2771, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2772, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_rpmAxis = bits, U08, 2773, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadBins = array, S16, 2774, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm1_rpmBins = array, S16, 2790, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2806, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2872, [0:8], $output_pin_e_list +gppwm2_dutyIfError = scalar, U08, 2874, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2876, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2878, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2879, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2880, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_rpmAxis = bits, U08, 2881, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadBins = array, S16, 2882, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm2_rpmBins = array, S16, 2898, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2914, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2980, [0:8], $output_pin_e_list +gppwm3_dutyIfError = scalar, U08, 2982, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2984, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2986, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2987, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2988, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_rpmAxis = bits, U08, 2989, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadBins = array, S16, 2990, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm3_rpmBins = array, S16, 3006, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 3022, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 3088, [0:8], $output_pin_e_list +gppwm4_dutyIfError = scalar, U08, 3090, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 3092, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 3094, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 3095, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 3096, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_rpmAxis = bits, U08, 3097, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadBins = array, S16, 3098, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm4_rpmBins = array, S16, 3114, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 3130, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 3196, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 3198, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 3200, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 3202, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 3204, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 3206, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 3208, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 3210, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 3212, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 3214, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcuDownshiftButtonPinMode = bits, U08, 3215, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acSwitchMode = bits, U08, 3216, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_solenoid_mode1 = bits, U08, 3217, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 3218, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 3219, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 3220, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 3221, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 3222, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 3223, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 3240, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 3244, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 3248, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 3252, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 3256, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 3260, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 3264, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 3268, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3272, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3276, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3280, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3284, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3288, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3292, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3296, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3300, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3304, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3308, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3312, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3316, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3320, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3324, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3328, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3332, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3336, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3340, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3344, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3348, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3352, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3356, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3360, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3364, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3368, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3372, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3376, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3380, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3384, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3385, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3386, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3388, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3390, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3394, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3395, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3396, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2", "INVALID", "INVALID", "INVALID" +auxiliarySetting1 = scalar, U08, 3397, "", 1, 0, 0, 100, 0 +hpfpMinAngle = scalar, U08, 3398, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3400, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3402, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3403, "", 1, 0, 0, 255, 0 +hpfpPidP = scalar, U16, 3404, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3406, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3408, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3410, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3426, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3442, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3450, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3466, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3666, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3686, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3696, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3796, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3816, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3826, [0:8], $output_pin_e_list +stepper_raw_output2 = bits, U16, 3828, [0:8], $output_pin_e_list +stepper_raw_output3 = bits, U16, 3830, [0:8], $output_pin_e_list +stepper_raw_output4 = bits, U16, 3832, [0:8], $output_pin_e_list +gearRatio1 = scalar, U16, 3834, "ratio", 0.01, 0, 0, 30, 2 +gearRatio2 = scalar, U16, 3836, "ratio", 0.01, 0, 0, 30, 2 +gearRatio3 = scalar, U16, 3838, "ratio", 0.01, 0, 0, 30, 2 +gearRatio4 = scalar, U16, 3840, "ratio", 0.01, 0, 0, 30, 2 +gearRatio5 = scalar, U16, 3842, "ratio", 0.01, 0, 0, 30, 2 +gearRatio6 = scalar, U16, 3844, "ratio", 0.01, 0, 0, 30, 2 +gearRatio7 = scalar, U16, 3846, "ratio", 0.01, 0, 0, 30, 2 +gearRatio8 = scalar, U16, 3848, "ratio", 0.01, 0, 0, 30, 2 +gearRatio9 = scalar, U16, 3850, "ratio", 0.01, 0, 0, 30, 2 +gearRatio10 = scalar, U16, 3852, "ratio", 0.01, 0, 0, 30, 2 +vvtActivationDelayMs = scalar, U16, 3854, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3856, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3864, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3872, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3880, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3888, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3896, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3904, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3940, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3952, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3964, [0:1], "None", "Button Shift", "INVALID", "INVALID" +transmissionControllerMode = bits, U08, 3965, [0:1], "None", "Simple Transmission", "GM 4L6X", "INVALID" +acrDisablePhase = scalar, U16, 3966, "deg", 1, 0, 0, 720, 0 +auxLinear1_hwChannel = bits, U08, 3968, [0:5], $adc_channel_e_list +auxLinear1_v1 = scalar, F32, 3972, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3976, "", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3980, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3984, "", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3988, [0:5], $adc_channel_e_list +auxLinear2_v1 = scalar, F32, 3992, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3996, "", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 4000, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 4004, "", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 4008, [0:8], $output_pin_e_list +tcu_tcc_onoff_solenoid_mode = bits, U08, 4010, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 4012, [0:8], $output_pin_e_list +tcu_tcc_pwm_solenoid_mode = bits, U08, 4014, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 4016, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 4018, [0:8], $output_pin_e_list +tcu_pc_solenoid_pin_mode = bits, U08, 4020, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 4022, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 4024, [0:8], $output_pin_e_list +tcu_32_solenoid_pin_mode = bits, U08, 4026, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 4028, "Hz", 1, 0, 0, 3000, 0 +acrPin2 = bits, U16, 4030, [0:8], $output_pin_e_list +etbMinimumPosition = scalar, F32, 4032, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 4036, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 4038, 17 +highSpeedOffsets = array, U16, 4056, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 4120, "", 1, 0, 0, 100, 0 +fuelPressureSensorMode = bits, U08, 4124, [0:1], "Absolute", "Gauge", "Differential", "INVALID" +luaDigitalInputPins1 = bits, U16, 4126, [0:7], $switch_input_pin_e_list +luaDigitalInputPins2 = bits, U16, 4128, [0:7], $switch_input_pin_e_list +luaDigitalInputPins3 = bits, U16, 4130, [0:7], $switch_input_pin_e_list +luaDigitalInputPins4 = bits, U16, 4132, [0:7], $switch_input_pin_e_list +luaDigitalInputPins5 = bits, U16, 4134, [0:7], $switch_input_pin_e_list +luaDigitalInputPins6 = bits, U16, 4136, [0:7], $switch_input_pin_e_list +luaDigitalInputPins7 = bits, U16, 4138, [0:7], $switch_input_pin_e_list +luaDigitalInputPins8 = bits, U16, 4140, [0:7], $switch_input_pin_e_list +tpsTspCorrValuesBins = array, U08, 4142, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 4146, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 4148, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 4150, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 4152, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 4153, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 4154, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 4155, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 4156, "%", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 4157, [0:1], "None", "GM type 1", "Ford type 1", "Custom" +customSentTpsMin = scalar, U16, 4158, "", 1, 0, 0, 32000, 0 +ALSIdleAdd = scalar, S32, 4160, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 4164, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, F32, 4168, "", 1, 0, 0, 1, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 4172, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 4173, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tpsSecondaryMaximum = scalar, U08, 4174, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 4175, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 4176, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes2 = bits, U08, 4177, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes3 = bits, U08, 4178, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes4 = bits, U08, 4179, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes5 = bits, U08, 4180, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes6 = bits, U08, 4181, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes7 = bits, U08, 4182, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes8 = bits, U08, 4183, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +customSentTpsMax = scalar, U16, 4184, "", 1, 0, 0, 32000, 0 +kLineBaudRate = scalar, U16, 4186, "", 1, 0, 0, 32000, 0 +canGpioType = bits, S08, 4188, [0:1], "None", "DRT protocol", "MS protocol", "INVALID" +uiMode = bits, S08, 4189, [0:1], "Full", "Installation", "Tuning", "INVALID" +hpfpPeakPos = scalar, S16, 4190, "deg", 1, 0, -719, 719, 0 +kLinePeriodUs = scalar, S16, 4192, "us", 1, 0, 0, 30000, 0 +rpmSoftLimitWindowSize = scalar, U08, 4194, "RPM", 10.0, 0, 0, 2500, 0 +rpmSoftLimitTimingRetard = scalar, U08, 4195, "deg", 0.2, 0, 0, 50, 1 +rpmSoftLimitFuelAdded = scalar, U08, 4196, "%", 0.2, 0, 0, 50, 1 +rpmHardLimitHyst = scalar, U08, 4197, "RPM", 10.0, 0, 0, 2500, 0 +benchTestOffTime = scalar, U16, 4198, "ms", 0.1, 0, 0, 2000, 1 +boostCutPressureHyst = scalar, U08, 4200, "kPa (absolute)", 0.5, 0, 0, 125, 1 +gearBasedOpenLoopBoostAdder = array, U08, 4201, [10], "%", 0.5, 0, 0, 100, 1 +benchTestCount = scalar, U32, 4212, "", 1, 0, 0, 10000000, 0 +iacByTpsHoldTime = scalar, U08, 4216, "seconds", 0.1, 0, 0, 25, 1 +iacByTpsDecayTime = scalar, U08, 4217, "seconds", 0.1, 0, 0, 25, 1 +tcu_rangeInput1 = bits, U16, 4218, [0:7], $switch_input_pin_e_list +tcu_rangeInput2 = bits, U16, 4220, [0:7], $switch_input_pin_e_list +tcu_rangeInput3 = bits, U16, 4222, [0:7], $switch_input_pin_e_list +tcu_rangeInput4 = bits, U16, 4224, [0:7], $switch_input_pin_e_list +tcu_rangeInput5 = bits, U16, 4226, [0:7], $switch_input_pin_e_list +tcu_rangeInput6 = bits, U16, 4228, [0:7], $switch_input_pin_e_list +tcu_rangeInputMode1 = bits, U08, 4230, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode2 = bits, U08, 4231, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode3 = bits, U08, 4232, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode4 = bits, U08, 4233, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode5 = bits, U08, 4234, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode6 = bits, U08, 4235, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +canVssScaling = scalar, U16, 4236, "ratio", 1.0E-4, 0, 0.5, 1.5, 4 +oilTempSensor_tempC_1 = scalar, F32, 4240, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_2 = scalar, F32, 4244, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_3 = scalar, F32, 4248, "*C", 1, 0, -55, 200, 1 +oilTempSensor_resistance_1 = scalar, F32, 4252, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_2 = scalar, F32, 4256, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_3 = scalar, F32, 4260, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_bias_resistor = scalar, F32, 4264, "Ohm", 1, 0, 0, 200000, 1 +oilTempSensor_adcChannel = bits, U08, 4268, [0:5], $adc_channel_e_list +fuelTempSensor_tempC_1 = scalar, F32, 4272, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_2 = scalar, F32, 4276, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_3 = scalar, F32, 4280, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_resistance_1 = scalar, F32, 4284, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_2 = scalar, F32, 4288, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_3 = scalar, F32, 4292, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_bias_resistor = scalar, F32, 4296, "Ohm", 1, 0, 0, 200000, 1 +fuelTempSensor_adcChannel = bits, U08, 4300, [0:5], $adc_channel_e_list +ambientTempSensor_tempC_1 = scalar, F32, 4304, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_2 = scalar, F32, 4308, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_3 = scalar, F32, 4312, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_resistance_1 = scalar, F32, 4316, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_2 = scalar, F32, 4320, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_3 = scalar, F32, 4324, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_bias_resistor = scalar, F32, 4328, "Ohm", 1, 0, 0, 200000, 1 +ambientTempSensor_adcChannel = bits, U08, 4332, [0:5], $adc_channel_e_list +compressorDischargeTemperature_tempC_1 = scalar, F32, 4336, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_2 = scalar, F32, 4340, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_3 = scalar, F32, 4344, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_resistance_1 = scalar, F32, 4348, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_2 = scalar, F32, 4352, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_3 = scalar, F32, 4356, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_bias_resistor = scalar, F32, 4360, "Ohm", 1, 0, 0, 200000, 1 +compressorDischargeTemperature_adcChannel = bits, U08, 4364, [0:5], $adc_channel_e_list +throttleInletPressureChannel = bits, U08, 4368, [0:5], $adc_channel_e_list +compressorDischargePressureChannel = bits, U08, 4369, [0:5], $adc_channel_e_list +dacOutputPins1 = bits, U16, 4370, [0:7], $gpio_list +dacOutputPins2 = bits, U16, 4372, [0:7], $gpio_list +speedometerOutputPin = bits, U16, 4374, [0:8], $output_pin_e_list +speedometerPulsePerKm = scalar, U16, 4376, "", 1, 0, 0, 65000, 0 +simulatorCamPosition1 = scalar, U08, 4378, "", 1, 0, 0, 100, 0 +simulatorCamPosition2 = scalar, U08, 4379, "", 1, 0, 0, 100, 0 +simulatorCamPosition3 = scalar, U08, 4380, "", 1, 0, 0, 100, 0 +simulatorCamPosition4 = scalar, U08, 4381, "", 1, 0, 0, 100, 0 +ignKeyAdcChannel = bits, U08, 4382, [0:5], $adc_channel_e_list +spi6MisoMode = bits, U08, 4383, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerVVTGapOverrideFrom1 = scalar, F32, 4384, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom2 = scalar, F32, 4388, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom3 = scalar, F32, 4392, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom4 = scalar, F32, 4396, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo1 = scalar, F32, 4400, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo2 = scalar, F32, 4404, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo3 = scalar, F32, 4408, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo4 = scalar, F32, 4412, "ratio", 1, 0, 0, 20, 3 +tractionControlEtbDrop = array, S08, 4416, [6x6], "%", 1, 0, -100, 0, 0 +maxInjectorDutyInstant = scalar, U08, 4452, "%", 1, 0, 50, 200, 0 +maxInjectorDutySustained = scalar, U08, 4453, "%", 1, 0, 50, 120, 0 +maxInjectorDutySustainedTimeout = scalar, U08, 4454, "sec", 0.1, 0, 0, 5, 1 +injectionPinsStage21 = bits, U16, 4456, [0:8], $output_pin_e_list +injectionPinsStage22 = bits, U16, 4458, [0:8], $output_pin_e_list +injectionPinsStage23 = bits, U16, 4460, [0:8], $output_pin_e_list +injectionPinsStage24 = bits, U16, 4462, [0:8], $output_pin_e_list +injectionPinsStage25 = bits, U16, 4464, [0:8], $output_pin_e_list +injectionPinsStage26 = bits, U16, 4466, [0:8], $output_pin_e_list +injectionPinsStage27 = bits, U16, 4468, [0:8], $output_pin_e_list +injectionPinsStage28 = bits, U16, 4470, [0:8], $output_pin_e_list +injectionPinsStage29 = bits, U16, 4472, [0:8], $output_pin_e_list +injectionPinsStage210 = bits, U16, 4474, [0:8], $output_pin_e_list +injectionPinsStage211 = bits, U16, 4476, [0:8], $output_pin_e_list +injectionPinsStage212 = bits, U16, 4478, [0:8], $output_pin_e_list +tractionControlTimingDrop = array, S08, 4480, [6x6], "Deg", 1, 0, -100, 100, 0 +tractionControlIgnitionSkip = array, S08, 4516, [6x6], "%", 1, 0, 0, 100, 0 +auxSpeed1Multiplier = scalar, F32, 4552, "", 1, 0, 0, 100, 0 +brakeMeanEffectivePressureDifferential = scalar, F32, 4556, "", 1, 0, 0, 100, 0 +spi4mosiPin = bits, U16, 4560, [0:7], $gpio_list +spi4misoPin = bits, U16, 4562, [0:7], $gpio_list +spi4sckPin = bits, U16, 4564, [0:7], $gpio_list +spi5mosiPin = bits, U16, 4566, [0:7], $gpio_list +spi5misoPin = bits, U16, 4568, [0:7], $gpio_list +spi5sckPin = bits, U16, 4570, [0:7], $gpio_list +spi6mosiPin = bits, U16, 4572, [0:7], $gpio_list +spi6misoPin = bits, U16, 4574, [0:7], $gpio_list +spi6sckPin = bits, U16, 4576, [0:7], $gpio_list +spi4SckMode = bits, U08, 4578, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MosiMode = bits, U08, 4579, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MisoMode = bits, U08, 4580, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5SckMode = bits, U08, 4581, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MosiMode = bits, U08, 4582, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MisoMode = bits, U08, 4583, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6SckMode = bits, U08, 4584, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6MosiMode = bits, U08, 4585, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +unusedOftenChangesDuringFirmwareUpdate = array, U08, 4586, [120], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4708, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4740, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4772, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4836, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4844, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4852, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4868, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4884, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4900, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4916, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4948, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4980, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 5044, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 5108, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 5172, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 5236, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 5268, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 5300, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 5332, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 5364, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 5396, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 5428, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 5460, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 5492, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 5508, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 5524, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 5588, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 5620, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 5652, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 5660, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 5668, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 5684, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 5700, 120 +afterstartCoolantBins = array, F32, 5820, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5852, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5884, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5916, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5948, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 6012, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 6020, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 6084, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 6092, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 6156, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 6164, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 6172, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 6204, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 6236, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 6244, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 6276, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 6280, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 6284, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 6316, 8000 +cltFuelCorrBins = array, F32, 14316, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 14380, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 14444, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 14508, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 14572, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 14604, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 14636, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 14668, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 14700, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14764, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14828, [32], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 14956, [32], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 15084, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 15148, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 15156, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 15164, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 15676, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 15708, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 15740, [10x6], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 15800, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 16312, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 16344, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 16376, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 16440, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 16456, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 16472, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 16536, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 16552, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 16568, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 17080, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 17112, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 17144, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 17656, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 17688, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 17720, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 17720, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 17976, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 18008, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 18040, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 18296, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 18328, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 18360, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 18616, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 18632, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 18648, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 18712, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 18728, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 18744, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 18808, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 18824, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 18840, [10x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 18920, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 18936, [10], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 18956, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 18964, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 18972, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 18988, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 19004, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 19020, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 19036, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 19052, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 19068, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 19084, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 19100, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 19116, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 19132, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 19148, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 19164, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 19172, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 19180, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 19196, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 19212, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 19228, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 19244, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 19260, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 19276, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 19292, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 19308, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 19324, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 19340, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 19356, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 19372, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 19388, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 19396, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 19404, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 19412, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 19420, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 19428, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 19436, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 19444, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 19452, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 19460, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 19468, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 19476, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 19484, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 19492, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 19500, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 19508, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 19516, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 19524, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 19532, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 19568, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 19574, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 19580, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 19616, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 19622, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 19628, [4x4], "deg", 0.1, 0, -60, 0, 1 +alsIgnRetardLoadBins = array, U16, 19660, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 19668, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 19676, [4x4], "percent", 0.1, 0, 0, 50, 1 +alsFuelAdjustmentLoadBins = array, U16, 19708, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 19716, [4], "RPM", 1, 0, 0, 25000, 0 +ALSIgnSkipTable = array, S16, 19724, [4x4], "ratio", 10.0, 0, 0, 50, 1 +alsIgnSkipLoadBins = array, U16, 19756, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnSkiprpmBins = array, U16, 19764, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 19772, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 19900, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 19916, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 19932, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_yAxisOverride = bits, U08, 19933, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_blendBins = array, S16, 19934, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 19950, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 19960, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 20088, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 20104, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 20120, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_yAxisOverride = bits, U08, 20121, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_blendBins = array, S16, 20122, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 20138, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 20148, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 20276, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 20292, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 20308, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_yAxisOverride = bits, U08, 20309, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_blendBins = array, S16, 20310, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 20326, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 20336, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 20464, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 20480, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 20496, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_yAxisOverride = bits, U08, 20497, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_blendBins = array, S16, 20498, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 20514, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 20524, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 20652, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 20668, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 20684, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_yAxisOverride = bits, U08, 20685, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_blendBins = array, S16, 20686, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 20702, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 20712, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 20840, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 20856, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 20872, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_yAxisOverride = bits, U08, 20873, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_blendBins = array, S16, 20874, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 20890, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 20900, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 21028, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 21044, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 21060, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_yAxisOverride = bits, U08, 21061, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_blendBins = array, S16, 21062, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 21078, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 21088, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 21216, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 21232, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 21248, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_yAxisOverride = bits, U08, 21249, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_blendBins = array, S16, 21250, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 21266, [8], "%", 0.5, 0, 0, 100, 1 +throttleEstimateEffectiveAreaBins = array, U16, 21276, [12], "%", 0.1, 0, 0, 100, 1 +throttleEstimateEffectiveAreaValues = array, U16, 21300, [12], "g/s", 0.1, 0, 0, 6500, 1 +boostOpenLoopBlends1_table = array, S16, 21324, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends1_loadBins = array, U16, 21452, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends1_rpmBins = array, U16, 21468, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends1_blendParameter = bits, U08, 21484, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_yAxisOverride = bits, U08, 21485, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_blendBins = array, S16, 21486, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends1_blendValues = array, U08, 21502, [8], "%", 0.5, 0, 0, 100, 1 +boostOpenLoopBlends2_table = array, S16, 21512, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends2_loadBins = array, U16, 21640, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends2_rpmBins = array, U16, 21656, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends2_blendParameter = bits, U08, 21672, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_yAxisOverride = bits, U08, 21673, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_blendBins = array, S16, 21674, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends2_blendValues = array, U08, 21690, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends1_table = array, S16, 21700, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends1_loadBins = array, U16, 21828, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends1_rpmBins = array, U16, 21844, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends1_blendParameter = bits, U08, 21860, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_yAxisOverride = bits, U08, 21861, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_blendBins = array, S16, 21862, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends1_blendValues = array, U08, 21878, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends2_table = array, S16, 21888, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends2_loadBins = array, U16, 22016, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends2_rpmBins = array, U16, 22032, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends2_blendParameter = bits, U08, 22048, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_yAxisOverride = bits, U08, 22049, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_blendBins = array, S16, 22050, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends2_blendValues = array, U08, 22066, [8], "%", 0.5, 0, 0, 100, 1 +tcu_rangeP = array, U08, 22076, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeR = array, U08, 22082, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeN = array, U08, 22088, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeD = array, U08, 22094, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM = array, U08, 22100, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM3 = array, U08, 22106, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM2 = array, U08, 22112, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM1 = array, U08, 22118, [6], "level", 1, 0, 0, 3, 0 +tcu_rangePlus = array, U08, 22124, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeMinus = array, U08, 22130, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeLow = array, U08, 22136, [6], "level", 1, 0, 0, 3, 0 +lambdaMaxDeviationTable = array, U08, 22142, [4x4], "lambda", 0.01, 0, 0, 1, 2 +lambdaMaxDeviationLoadBins = array, U16, 22158, [4], "", 1, 0, 0, 1000, 0 +lambdaMaxDeviationRpmBins = array, U16, 22166, [4], "RPM", 1, 0, 0, 18000, 0 +injectorStagingTable = array, U08, 22174, [6x6], "%", 1, 0, 0, 90, 0 +injectorStagingLoadBins = array, U16, 22210, [6], "", 1, 0, 0, 1000, 0 +injectorStagingRpmBins = array, U16, 22222, [6], "RPM", 1, 0, 0, 18000, 0 +; total TS size = 22236 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type\nset engine_type X" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + rpmHardLimit = "set rpm_hard_limit X" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm\nset engineSnifferRpmThreshold X" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injector_battLagCorr = "ms delay between injector open and close dead times" + injectorSecondary_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injectorSecondary_battLagCorr = "ms delay between injector open and close dead times" + isForcedInduction = "Does the vehicle have a turbo or supercharger?" + useFordRedundantTps = "On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + enableFan1WithAc = "Turn on this fan when AC is on." + enableFan2WithAc = "Turn on this fan when AC is on." + disableFan1WhenStopped = "Inhibit operation of this fan while the engine is not running." + disableFan2WhenStopped = "Inhibit operation of this fan while the engine is not running." + enableTrailingSparks = "Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines)." + etb_use_two_wires = "TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode." + isDoubleSolenoidIdle = "Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position." + useCicPidForIdle = "Switch between Industrial and Cic PID implementation" + useSeparateIdleTablesForCrankingTaper = "This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration)." + doNotFilterTriggerEdgeNoise = "Detect double trigger edges" + useRunningMathForCranking = "For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table)." + displayLogicLevelsInEngineSniffer = "Shall we display real life signal or just the part consumed by trigger decoder.\nApplies to both trigger and cam/vvt input.\n\nenable logic_level_trigger" + verboseCan = "Print incoming and outgoing first bus CAN messages in rusEFI console" + artificialTestMisfire = "Experimental setting that will cause a misfire\nDO NOT ENABLE." + useFordRedundantPps = "On some Ford and Toyota vehicles one of the pedal sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + useSpiImu = "If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages" + tpsMin = "Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel\nset tps_min X" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equipped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equipped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. \nset cranking_rpm X" + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + hip9011PrescalerAndSDO = "value '6' for 8MHz hw osc\nread hip9011 datasheet for details\ntodo split into two bit fields" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override\nRequires power cycling to effect" + displacement = "Engine displacement in litres" + cylindersCount = "Number of cylinder the engine has." + cylinderBore = "Cylinder diameter in mm." + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nAlpha-N means drive by TPS commonly only used for NA engines\nSpeed Density requires MAP sensor and is the default choice for may installs\nMAF air charge is a cylinder filling based method that uses a mass air flow sensor." + crankingInjectionMode = "This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous"." + injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups." + boostControlMinRpm = "Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinTps = "Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinMap = "Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nThere is tapering towards running timing advance\nset cranking_timing_angle X" + ignitionMode = "Single coil = distributor\nIndividual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode\nWasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder\nTwo distributors = A pair of distributors, found on some BMW, Toyota and other engines\nset ignition_mode X" + gapTrackingLengthOverride = "How many consecutive gap rations have to match expected ranges for sync to happen" + maxIdleVss = "Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed)." + minOilPressureAfterStart = "Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting." + timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light)." + fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location." + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchronization point before TDC and negative in case of synchronization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canNbcType = "set can_mode X" + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor. See also pedalPositionAdcChannel" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body position sensor, single channel so far\nset_analog_input_pin tps2 X" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers\nset trigger_type X" + airByRpmTaper = "Extra air taper amount" + boostControlSafeDutyCycle = "Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met." + camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 1" + camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 2" + camInputs3 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 3" + camInputs4 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 4" + throttlePedalPositionAdcChannel = "Electronic throttle pedal position first channel\nSee throttlePedalPositionSecondAdcChannel for second channel\nSee also tps1_1AdcChannel\nset_analog_input_pin pps X\nSee throttlePedalUpVoltage and throttlePedalWOTVoltage" + etbSplit = "TPS/PPS error threshold" + throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" + baroSensor_lowValue = "kPa value at low volts" + baroSensor_highValue = "kPa value at high volts" + manIdlePosition = "Value between 0 and 100 used in Manual mode" + knockRetardAggression = "Ignition timing to remove when a knock event occurs." + knockRetardReapplyRate = "After a knock event, reapply timing at this rate." + engineSyncCam = "Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync." + vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response." + vssGearRatio = "Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0." + vssToothCount = "Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft." + idleVeOverrideMode = "Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectionPins1 = "injectionPins 1" + injectionPins2 = "injectionPins 2" + injectionPins3 = "injectionPins 3" + injectionPins4 = "injectionPins 4" + injectionPins5 = "injectionPins 5" + injectionPins6 = "injectionPins 6" + injectionPins7 = "injectionPins 7" + injectionPins8 = "injectionPins 8" + injectionPins9 = "injectionPins 9" + injectionPins10 = "injectionPins 10" + injectionPins11 = "injectionPins 11" + injectionPins12 = "injectionPins 12" + ignitionPins1 = "ignitionPins 1" + ignitionPins2 = "ignitionPins 2" + ignitionPins3 = "ignitionPins 3" + ignitionPins4 = "ignitionPins 4" + ignitionPins5 = "ignitionPins 5" + ignitionPins6 = "ignitionPins 6" + ignitionPins7 = "ignitionPins 7" + ignitionPins8 = "ignitionPins 8" + ignitionPins9 = "ignitionPins 9" + ignitionPins10 = "ignitionPins 10" + ignitionPins11 = "ignitionPins 11" + ignitionPins12 = "ignitionPins 12" + gapVvtTrackingLengthOverride = "How many consecutive VVT gap rations have to match expected ranges for sync to happen" + malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + clutchDownPin = "Some cars have a switch to indicate that clutch pedal is all the way down" + digitalPotentiometerChipSelect1 = "digitalPotentiometerChipSelect 1" + digitalPotentiometerChipSelect2 = "digitalPotentiometerChipSelect 2" + digitalPotentiometerChipSelect3 = "digitalPotentiometerChipSelect 3" + digitalPotentiometerChipSelect4 = "digitalPotentiometerChipSelect 4" + digitalPotentiometerSpiDevice = "Digital Potentiometer is used by stock ECU stimulation code" + auxFastSensor1_adcChannel = "Useful in Research&Development phase" + tps1_2AdcChannel = "First throttle body, second sensor." + tps2_2AdcChannel = "Second throttle body, second sensor." + throttlePedalPositionSecondAdcChannel = "Electronic throttle pedal position input\nSecond channel\nSee also tps1_1AdcChannel\nSee throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage" + afr_type = "AFR, WBO, EGO - whatever you like to call it" + mc33810_cs1 = "mc33810_cs 1" + idle_antiwindupFreq = "0.1 is a good default value" + triggerInputPins1 = "triggerInputPins 1" + triggerInputPins2 = "triggerInputPins 2" + mc33_t_min_boost = "Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit." + canTxPin = "set_can_tx_pin X" + canRxPin = "set_can_rx_pin X" + acIdleExtraOffset = "Additional idle % while A/C is active" + finalGearRatio = "Ratio between the wheels and your transmission output." + wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!" + wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units" + idlePositionMin = "Voltage when the idle valve is closed.\nYou probably don't have one of these!" + idlePositionMax = "Voltage when the idle valve is open.\nYou probably don't have one of these!\n1 volt = 1000 units" + tunerStudioSerialSpeed = "Secondary TTL channel baud rate" + compressionRatio = "Just for reference really, not taken into account by any logic at this point" + triggerSimulatorPins1 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 1" + triggerSimulatorPins2 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 2" + triggerSimulatorPinModes1 = "triggerSimulatorPinModes 1" + triggerSimulatorPinModes2 = "triggerSimulatorPinModes 2" + o2heaterPin = "On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking." + isSdCardEnabled = "enable sd/disable sd" + rusefiVerbose29b = "Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format." + useStepperIdle = "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed." + enableVerboseCanTx = "CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_broadcast" + measureMapOnlyInOneCylinder = "Useful for individual intakes" + isFasterEngineSpinUpEnabled = "If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled." + coastingFuelCutEnabled = "This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing." + useIacTableForCoasting = "Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle." + disableEtbWhenEngineStopped = "Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary." + pauseEtbControl = "Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle." + enableAemXSeries = "AEM X-Series or rusEFI Wideband" + logicAnalyzerPins1 = "logicAnalyzerPins 1" + logicAnalyzerPins2 = "logicAnalyzerPins 2" + logicAnalyzerPins3 = "logicAnalyzerPins 3" + logicAnalyzerPins4 = "logicAnalyzerPins 4" + mc33_hvolt = "Boost Voltage" + minimumBoostClosedLoopMap = "Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost." + acFanPin = "Optional Radiator Fan used with A/C" + idlePidRpmUpperLimit = "How far above idle speed do we consider idling, i.e. coasting detection threshold.\nFor example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle." + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." + clutchUpPin = "Some vehicles have a switch to indicate that clutch pedal is all the way up" + max31855_cs1 = "max31855_cs 1" + max31855_cs2 = "max31855_cs 2" + max31855_cs3 = "max31855_cs 3" + max31855_cs4 = "max31855_cs 4" + max31855_cs5 = "max31855_cs 5" + max31855_cs6 = "max31855_cs 6" + max31855_cs7 = "max31855_cs 7" + max31855_cs8 = "max31855_cs 8" + flexSensorPin = "Continental/GM flex fuel sensor, 50-150hz type" + stoichRatioSecondary = "Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0" + etbMaximumPosition = "Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open." + sdCardLogFrequency = "Rate the ECU will log to the SD card, in hz (log lines per second)." + starterRelayDisablePinMode = "On some vehicles we can disable starter once engine is already running" + secondSolenoidPin = "Some Subaru and some Mazda use double-solenoid idle air valve" + startStopButtonPin = "See also starterControlPin" + mapMinBufferLength = "This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies." + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%." + startCrankingDuration = "Maximum time to crank starter when start/stop button is pressed" + triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" + lambdaProtectionTimeout = "Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed" + scriptSetting1 = "scriptSetting 1" + scriptSetting2 = "scriptSetting 2" + scriptSetting3 = "scriptSetting 3" + scriptSetting4 = "scriptSetting 4" + scriptSetting5 = "scriptSetting 5" + scriptSetting6 = "scriptSetting 6" + scriptSetting7 = "scriptSetting 7" + scriptSetting8 = "scriptSetting 8" + cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + alphaNUseIat = "In Alpha-N mode, compensate for air temperature." + useRawOutputToDriveIdleStepper = "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils" + verboseCan2 = "Print incoming and outgoing second bus CAN messages in rusEFI console" + etbIo1_controlPin = "Acts as EN pin in two-wire mode" + etbIo2_controlPin = "Acts as EN pin in two-wire mode" + boostControlPin = "Wastegate control Solenoid" + boostPid_offset = "Linear addition to PID logic" + boostPid_periodMs = "PID dTime" + boostPid_minValue = "Output Min Duty Cycle" + boostPid_maxValue = "Output Max Duty Cycle" + launchSpeedThreshold = "Launch disabled above this speed if setting is above zero" + launchTimingRpmRange = "Range from Launch RPM for Timing Retard to activate" + launchSparkSkipPercent = "Spark Skip Transition Target" + 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_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs1_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs1_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs2_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs2_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs2_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs3_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs3_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs3_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs4_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs4_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs4_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stepperDcIo1_controlPin = "Acts as EN pin in two-wire mode" + stepperDcIo2_controlPin = "Acts as EN pin in two-wire mode" + engineMake = "For example, BMW, GM or Chevrolet\nREQUIRED for rusEFI Online" + engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online" + vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online" + tcu_solenoid1 = "tcu_solenoid 1" + tcu_solenoid2 = "tcu_solenoid 2" + tcu_solenoid3 = "tcu_solenoid 3" + tcu_solenoid4 = "tcu_solenoid 4" + tcu_solenoid5 = "tcu_solenoid 5" + tcu_solenoid6 = "tcu_solenoid 6" + etbFunctions1 = "etbFunctions 1" + etbFunctions2 = "etbFunctions 2" + luaOutputPins1 = "luaOutputPins 1" + luaOutputPins2 = "luaOutputPins 2" + luaOutputPins3 = "luaOutputPins 3" + luaOutputPins4 = "luaOutputPins 4" + luaOutputPins5 = "luaOutputPins 5" + luaOutputPins6 = "luaOutputPins 6" + luaOutputPins7 = "luaOutputPins 7" + luaOutputPins8 = "luaOutputPins 8" + vvtOffsets1 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + oddFireEngine = "On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines." + silentTriggerError = "Sometimes we have a performance issue while printing error" + canReadEnabled = "enable can_read/disable can_read" + canWriteEnabled = "enable can_write/disable can_write. See also can1ListenMode" + tachPulseDurationAsDutyCycle = "Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%" + isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings." + invertPrimaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the primary engine speed sensor." + invertSecondaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the secondary engine speed sensor." + cutSparkOnHardLimit = "Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer." + launchSparkCutEnable = "This is the Cut Mode normally used" + verboseIsoTp = "Are you a developer troubleshooting TS over CAN ISO/TP?" + skippedWheelOnCam = "Where is your primary skipped wheel located?" + acSwitch = "A/C button input" + etbNeutralPosition = "Expected neutral position" + idleMode = "See also idleRpmPid" + isCylinderCleanupEnabled = "When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders." + complexWallModel = "Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?" + alwaysInstantRpm = "RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution" + overrideCrankingIacSetting = "If enabled, use separate temperature multiplier table for cranking idle position.\nIf disabled, use normal running multiplier table applied to the cranking base position." + useSeparateAdvanceForIdle = "This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed." + useSeparateVeForIdle = "This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling." + verboseTriggerSynchDetails = "Verbose info in console below engineSnifferRpmThreshold\nenable trigger_details" + isManualSpinningMode = "Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed" + twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)." + useSeparateAdvanceForCranking = "In Constant mode, timing is automatically tapered to running as RPM increases.\nIn Table mode, the "Cranking ignition advance" table is used directly." + useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).\nYou probably don't need this." + flexCranking = "Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor." + useIacPidMultTable = "This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller" + launchSmoothRetard = "Interpolates the Ignition Retard from 0 to 100% within the RPM Range" + isPhaseSyncRequiredForIgnition = "Some engines are OK running semi-random sequential while other engine require phase synchronization" + useCltBasedRpmLimit = "If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value." + forceO2Heating = "If enabled, don't wait for engine start to heat O2 sensors. WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element." + invertVvtControlIntake = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + invertVvtControlExhaust = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + sdTriggerLog = "'Trigger' mode will write a high speed log of trigger events (warning: uses lots of space!). 'Normal' mode will write a standard MLG of sensors, engine function, etc. similar to the one captured in TunerStudio." + camInputsDebug1 = "camInputsDebug 1" + camInputsDebug2 = "camInputsDebug 2" + camInputsDebug3 = "camInputsDebug 3" + camInputsDebug4 = "camInputsDebug 4" + acIdleRpmTarget = "Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling." + warningPeriod = "set warningPeriod X" + noAccelAfterHardLimitPeriodSecs = "TODO: finish this #413" + mapAveragingSchedulingAtIndex = "At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + tachPulseDuractionMs = "Duration in ms or duty cycle depending on selected mode" + wwaeTau = "Length of time the deposited wall fuel takes to dissipate after the start of acceleration." + alternatorControl_offset = "Linear addition to PID logic" + alternatorControl_periodMs = "PID dTime" + alternatorControl_minValue = "Output Min Duty Cycle" + alternatorControl_maxValue = "Output Max Duty Cycle" + etb_offset = "Linear addition to PID logic" + etb_periodMs = "PID dTime" + etb_minValue = "Output Min Duty Cycle" + etb_maxValue = "Output Max Duty Cycle" + triggerInputDebugPins1 = "triggerInputDebugPins 1" + triggerInputDebugPins2 = "triggerInputDebugPins 2" + airTaperRpmRange = "RPM range above upper limit for extra air taper" + tps2Min = "Closed throttle#2. todo: extract these two fields into a structure\nSee also tps2_1AdcChannel\nset tps2_min X" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel\nset tps2_max X" + starterControlPin = "See also startStopButtonPin" + mapErrorDetectionTooLow = "kPa value which is too low to be true" + mapErrorDetectionTooHigh = "kPa value which is too high to be true" + multisparkSparkDuration = "How long to wait for the spark to fire before recharging the coil for another spark." + multisparkDwell = "This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table." + idleRpmPid_offset = "Linear addition to PID logic" + idleRpmPid_periodMs = "PID dTime" + idleRpmPid_minValue = "Output Min Duty Cycle" + idleRpmPid_maxValue = "Output Max Duty Cycle" + wwaeBeta = "0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment." + binarySerialTxPin = "See also EFI_CONSOLE_RX_BRAIN_PIN" + auxValves1 = "auxValves 1" + auxValves2 = "auxValves 2" + throttlePedalWOTVoltage = "Pedal in the floor" + startUpFuelPumpDuration = "on IGN voltage detection turn fuel pump on to build fuel pressure" + idlePidRpmDeadZone = "If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation" + targetVBatt = "This is the target battery voltage the alternator PID control will attempt to maintain" + mc33810DisableRecoveryMode = "See Over/Undervoltage Shutdown/Retry bit in documentation" + useVssAsSecondWheelSpeed = "VSS and auxSpeed1 or auxSpeed1 with auxSpeed2?" + 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 = "IAC Value added when coasting and transitioning into idle." + auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + tpsAccelLookback = "How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs." + coastingFuelCutVssLow = "Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + coastingFuelCutVssHigh = "Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + noFuelTrimAfterDfcoTime = "Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut." + tpsAccelEnrichmentThreshold = "Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in." + auxSpeedSensorInputPin1 = "auxSpeedSensorInputPin 1" + auxSpeedSensorInputPin2 = "auxSpeedSensorInputPin 2" + injectionTimingMode = "Sets what part of injection's is controlled by the injection phase table." + debugMode = "See http://rusefi.com/s/debugmode" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + uartConsoleSerialSpeed = "Band rate for primary TTL" + tpsDecelEnleanmentThreshold = "For decel we simply multiply delta of TPS and tFor decel we do not use table?!" + tpsDecelEnleanmentMultiplier = "Magic multiplier, we multiply delta of TPS and get fuel squirt duration" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + can1ListenMode = "ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled" + benchTestOnTime = "Duration of each test pulse" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output solenoid pin for this cam 1" + vvtPins2 = "VVT output solenoid pin for this cam 2" + vvtPins3 = "VVT output solenoid pin for this cam 3" + vvtPins4 = "VVT output solenoid pin for this cam 4" + crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling." + minimumIgnitionTiming = "Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint." + maximumIgnitionTiming = "Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC" + vvtMode1 = "set vvt_mode X 1" + vvtMode2 = "set vvt_mode X 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder ignition and fueling timing correction for uneven engines 1" + timing_offset_cylinder2 = "per-cylinder ignition and fueling timing correction for uneven engines 2" + timing_offset_cylinder3 = "per-cylinder ignition and fueling timing correction for uneven engines 3" + timing_offset_cylinder4 = "per-cylinder ignition and fueling timing correction for uneven engines 4" + timing_offset_cylinder5 = "per-cylinder ignition and fueling timing correction for uneven engines 5" + timing_offset_cylinder6 = "per-cylinder ignition and fueling timing correction for uneven engines 6" + timing_offset_cylinder7 = "per-cylinder ignition and fueling timing correction for uneven engines 7" + timing_offset_cylinder8 = "per-cylinder ignition and fueling timing correction for uneven engines 8" + timing_offset_cylinder9 = "per-cylinder ignition and fueling timing correction for uneven engines 9" + timing_offset_cylinder10 = "per-cylinder ignition and fueling timing correction for uneven engines 10" + timing_offset_cylinder11 = "per-cylinder ignition and fueling timing correction for uneven engines 11" + timing_offset_cylinder12 = "per-cylinder ignition and fueling timing correction for uneven engines 12" + spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." + mc33816_rstb = "ResetB" + brakePedalPin = "Brake pedal switch" + auxPid1_offset = "Linear addition to PID logic" + auxPid1_periodMs = "PID dTime" + auxPid1_minValue = "Output Min Duty Cycle" + auxPid1_maxValue = "Output Max Duty Cycle" + auxPid2_offset = "Linear addition to PID logic" + auxPid2_periodMs = "PID dTime" + auxPid2_minValue = "Output Min Duty Cycle" + auxPid2_maxValue = "Output Max Duty Cycle" + injectorCorrectionPolynomial1 = "injectorCorrectionPolynomial 1" + injectorCorrectionPolynomial2 = "injectorCorrectionPolynomial 2" + injectorCorrectionPolynomial3 = "injectorCorrectionPolynomial 3" + injectorCorrectionPolynomial4 = "injectorCorrectionPolynomial 4" + injectorCorrectionPolynomial5 = "injectorCorrectionPolynomial 5" + injectorCorrectionPolynomial6 = "injectorCorrectionPolynomial 6" + injectorCorrectionPolynomial7 = "injectorCorrectionPolynomial 7" + injectorCorrectionPolynomial8 = "injectorCorrectionPolynomial 8" + fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + sentInputPins1 = "sentInputPins 1" + 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 = 1468 + +; 11.2.3 Full Optimized – High Speed + scatteredOchGetCommand = 9 + scatteredOffsetArray = highSpeedOffsets +#if CONN_SLOW + scatteredGetEnabled = { 1 } +#else + scatteredGetEnabled = { 0 } +#endif + +; +; see TunerStudioOutputChannels struct +; + +sd_present = bits, U32, 0, [0:0] +sd_logging_internal = bits, U32, 0, [1:1] +triggerScopeReady = bits, U32, 0, [2:2] +antilagTriggered = bits, U32, 0, [3:3] +isFanOn = bits, U32, 0, [4:4] +isO2HeaterOn = bits, U32, 0, [5:5] +checkEngine = bits, U32, 0, [6:6] +needBurn = bits, U32, 0, [7:7] +sd_msd = bits, U32, 0, [8:8] +isFan2On = bits, U32, 0, [9:9] +toothLogReady = bits, U32, 0, [10:10] +isTpsError = bits, U32, 0, [11:11] +isCltError = bits, U32, 0, [12:12] +isMapError = bits, U32, 0, [13:13] +isIatError = bits, U32, 0, [14:14] +isTriggerError = bits, U32, 0, [15:15] +hasCriticalError = bits, U32, 0, [16:16] +isWarnNow = bits, U32, 0, [17:17] +isPedalError = bits, U32, 0, [18:18] +isKnockChipOk = bits, U32, 0, [19:19] +launchTriggered = bits, U32, 0, [20:20] +isTps2Error = bits, U32, 0, [21:21] +injectorFault = bits, U32, 0, [22:22] +ignitionFault = bits, U32, 0, [23:23] +isMainRelayOn = bits, U32, 0, [24:24] +isUsbConnected = bits, U32, 0, [25:25] +dfcoActive = bits, U32, 0, [26:26] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, S16, 6, "RPM acceleration", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +unusedVehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +VBatt = scalar, U16, 36, "V", 0.001, 0 +oilPressure = scalar, U16, 38, "kPa", 0.03333333333333333, 0 +vvtPositionB1I = scalar, S16, 40, "deg", 0.02, 0 +actualLastInjection = scalar, U16, 42, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 44, "%", 0.5, 0 +injectionOffset = scalar, S16, 46, "deg", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 48, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 50, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 52, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 54, "", 1, 0 +canReadCounter = scalar, U16, 56, "", 1, 0 +tpsAccelFuel = scalar, S16, 58, "ms", 0.0033333333333333335, 0 +currentIgnitionMode = scalar, U08, 60, "", 1, 0 +currentInjectionMode = scalar, U08, 61, "", 1, 0 +coilDutyCycle = scalar, U16, 62, "%", 0.01, 0 +etbTarget = scalar, S16, 64, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 66, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 68, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 70, "grams", 1, 0 +fuelFlowRate = scalar, U16, 72, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 74, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 76, "crc16", 1, 0 +veValue = scalar, U16, 78, "ratio", 0.1, 0 +seconds = scalar, U32, 80, "sec", 1, 0 +engineMode = scalar, U32, 84, "em", 1, 0 +firmwareVersion = scalar, U32, 88, "version_f", 1, 0 +rawIdlePositionSensor = scalar, S16, 92, "V", 0.001, 0 +rawWastegatePosition = scalar, S16, 94, "V", 0.001, 0 +accelerationLat = scalar, S16, 96, "G", 0.001, 0 +accelerationLon = scalar, S16, 98, "G", 0.001, 0 +detectedGear = scalar, U08, 100, "", 1, 0 +maxTriggerReentrant = scalar, U08, 101, "", 1, 0 +rawLowFuelPressure = scalar, S16, 102, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 104, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 106, "kpa", 0.03333333333333333, 0 +tcuDesiredGear = scalar, S08, 108, "gear", 1, 0 +flexPercent = scalar, U08, 109, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 110, "%", 0.01, 0 +highFuelPressure = scalar, S16, 112, "bar", 0.1, 0 +calibrationValue = scalar, F32, 116, "", 1, 0 +calibrationMode = scalar, U08, 120, "", 1, 0 +idleStepperTargetPosition = scalar, U08, 121, "", 1, 0 +tsConfigVersion = scalar, U32, 124, "", 1, 0 +totalTriggerErrorCounter = scalar, U32, 128, "counter", 1, 0 +orderingErrorCounter = scalar, U32, 132, "", 1, 0 +warningCounter = scalar, U16, 136, "count", 1, 0 +lastErrorCode = scalar, U16, 138, "error", 1, 0 +recentErrorCode1 = scalar, U16, 140, "error", 1, 0 +recentErrorCode2 = scalar, U16, 142, "error", 1, 0 +recentErrorCode3 = scalar, U16, 144, "error", 1, 0 +recentErrorCode4 = scalar, U16, 146, "error", 1, 0 +recentErrorCode5 = scalar, U16, 148, "error", 1, 0 +recentErrorCode6 = scalar, U16, 150, "error", 1, 0 +recentErrorCode7 = scalar, U16, 152, "error", 1, 0 +recentErrorCode8 = scalar, U16, 154, "error", 1, 0 +debugFloatField1 = scalar, F32, 156, "val", 1, 0 +debugFloatField2 = scalar, F32, 160, "val", 1, 0 +debugFloatField3 = scalar, F32, 164, "val", 1, 0 +debugFloatField4 = scalar, F32, 168, "val", 1, 0 +debugFloatField5 = scalar, F32, 172, "val", 1, 0 +debugFloatField6 = scalar, F32, 176, "val", 1, 0 +debugFloatField7 = scalar, F32, 180, "val", 1, 0 +debugIntField1 = scalar, U32, 184, "val", 1, 0 +debugIntField2 = scalar, U32, 188, "val", 1, 0 +debugIntField3 = scalar, U32, 192, "val", 1, 0 +debugIntField4 = scalar, S16, 196, "val", 1, 0 +debugIntField5 = scalar, S16, 198, "val", 1, 0 +egt1 = scalar, U16, 200, "deg C", 1, 0 +egt2 = scalar, U16, 202, "deg C", 1, 0 +egt3 = scalar, U16, 204, "deg C", 1, 0 +egt4 = scalar, U16, 206, "deg C", 1, 0 +egt5 = scalar, U16, 208, "deg C", 1, 0 +egt6 = scalar, U16, 210, "deg C", 1, 0 +egt7 = scalar, U16, 212, "deg C", 1, 0 +egt8 = scalar, U16, 214, "deg C", 1, 0 +rawTps1Primary = scalar, S16, 216, "V", 0.001, 0 +rawPpsPrimary = scalar, S16, 218, "V", 0.001, 0 +rawClt = scalar, S16, 220, "V", 0.001, 0 +rawIat = scalar, S16, 222, "V", 0.001, 0 +rawOilPressure = scalar, S16, 224, "V", 0.001, 0 +fuelClosedLoopBinIdx = scalar, U08, 226, "", 1, 0 +rawPpsSecondary = scalar, S16, 228, "V", 0.001, 0 +idlePositionSensor = scalar, S16, 230, "%", 0.01, 0 +AFRValue = scalar, U16, 232, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 234, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 236, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 238, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 240, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 242, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 244, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 246, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 248, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 250, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 252, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 254, "V", 0.001, 0 +accelerationVert = scalar, S16, 256, "G", 0.001, 0 +gyroYaw = scalar, S16, 258, "deg/sec", 0.001, 0 +vvtTargets1 = scalar, S08, 260, "deg", 1, 0 +vvtTargets2 = scalar, S08, 261, "deg", 1, 0 +vvtTargets3 = scalar, S08, 262, "deg", 1, 0 +vvtTargets4 = scalar, S08, 263, "deg", 1, 0 +turboSpeed = scalar, U16, 264, "hz", 1, 0 +ignitionAdvanceCyl1 = scalar, S16, 266, "deg", 0.02, 0 +ignitionAdvanceCyl2 = scalar, S16, 268, "deg", 0.02, 0 +ignitionAdvanceCyl3 = scalar, S16, 270, "deg", 0.02, 0 +ignitionAdvanceCyl4 = scalar, S16, 272, "deg", 0.02, 0 +ignitionAdvanceCyl5 = scalar, S16, 274, "deg", 0.02, 0 +ignitionAdvanceCyl6 = scalar, S16, 276, "deg", 0.02, 0 +ignitionAdvanceCyl7 = scalar, S16, 278, "deg", 0.02, 0 +ignitionAdvanceCyl8 = scalar, S16, 280, "deg", 0.02, 0 +ignitionAdvanceCyl9 = scalar, S16, 282, "deg", 0.02, 0 +ignitionAdvanceCyl10 = scalar, S16, 284, "deg", 0.02, 0 +ignitionAdvanceCyl11 = scalar, S16, 286, "deg", 0.02, 0 +ignitionAdvanceCyl12 = scalar, S16, 288, "deg", 0.02, 0 +tps1Split = scalar, S16, 290, "%", 0.01, 0 +tps2Split = scalar, S16, 292, "%", 0.01, 0 +tps12Split = scalar, S16, 294, "%", 0.01, 0 +accPedalSplit = scalar, S16, 296, "%", 0.01, 0 +sparkCutReason = scalar, S08, 298, "code", 1, 0 +fuelCutReason = scalar, S08, 299, "code", 1, 0 +mafEstimate = scalar, U16, 300, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 302, "rpm", 1, 0 +rawMap = scalar, U16, 304, "V", 0.001, 0 +rawAfr = scalar, U16, 306, "V", 0.001, 0 +calibrationValue2 = scalar, F32, 308, "", 1, 0 +luaInvocationCounter = scalar, U32, 312, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 316, "nt", 1, 0 +vssEdgeCounter = scalar, U32, 320, "", 1, 0 +issEdgeCounter = scalar, U32, 324, "", 1, 0 +auxLinear1 = scalar, S16, 328, "", 0.01, 0 +auxLinear2 = scalar, S16, 330, "", 0.01, 0 +fallbackMap = scalar, U16, 332, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 334, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 336, "us", 1, 0 +canWriteOk = scalar, U16, 338, "", 1, 0 +canWriteNotOk = scalar, U16, 340, "", 1, 0 +triggerPrimaryFall = scalar, U32, 344, "", 1, 0 +triggerPrimaryRise = scalar, U32, 348, "", 1, 0 +triggerSecondaryFall = scalar, U32, 352, "", 1, 0 +triggerSecondaryRise = scalar, U32, 356, "", 1, 0 +triggerVvtFall = scalar, U16, 360, "", 1, 0 +triggerVvtRise = scalar, U16, 362, "", 1, 0 +triggerVvt2Fall = scalar, U16, 364, "", 1, 0 +triggerVvt2Rise = scalar, U16, 366, "", 1, 0 +starterState = scalar, U08, 368, "", 1, 0 +starterRelayDisable = scalar, U08, 369, "", 1, 0 +multiSparkCounter = scalar, U08, 370, "", 1, 0 +extiOverflowCount = scalar, U08, 371, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 372, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 376, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 378, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 380, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 382, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 384, "", 1, 0 +idleStatus_pTerm = scalar, F32, 388, "", 1, 0 +idleStatus_iTerm = scalar, S16, 392, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 394, "", 0.01, 0 +idleStatus_output = scalar, S16, 396, "", 0.01, 0 +idleStatus_error = scalar, S16, 398, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 400, "", 1, 0 +etbStatus_pTerm = scalar, F32, 404, "", 1, 0 +etbStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +etbStatus_output = scalar, S16, 412, "", 0.01, 0 +etbStatus_error = scalar, S16, 414, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 416, "", 1, 0 +boostStatus_pTerm = scalar, F32, 420, "", 1, 0 +boostStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +boostStatus_output = scalar, S16, 428, "", 0.01, 0 +boostStatus_error = scalar, S16, 430, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 432, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 436, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 444, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 446, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 448, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 452, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 456, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 458, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 460, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 462, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 464, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 468, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 472, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 474, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 476, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 478, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 512, "", 1, 0 +auxSpeed1 = scalar, U16, 516, "s", 1, 0 +auxSpeed2 = scalar, U16, 518, "s", 1, 0 +ISSValue = scalar, U16, 520, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 522, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 524, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 526, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 528, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 530, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 532, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 534, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 536, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 538, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 539, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 540, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 541, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 542, "", 1, 0 +gppwmXAxis2 = scalar, S16, 544, "", 1, 0 +gppwmXAxis3 = scalar, S16, 546, "", 1, 0 +gppwmXAxis4 = scalar, S16, 548, "", 1, 0 +gppwmYAxis1 = scalar, S16, 550, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 552, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 554, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 556, "", 0.1, 0 +rawBattery = scalar, S16, 558, "V", 0.001, 0 +ignBlendParameter1 = scalar, S16, 560, "", 0.1, 0 +ignBlendParameter2 = scalar, S16, 562, "", 0.1, 0 +ignBlendParameter3 = scalar, S16, 564, "", 0.1, 0 +ignBlendParameter4 = scalar, S16, 566, "", 0.1, 0 +ignBlendBias1 = scalar, U08, 568, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 569, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 570, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 571, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 572, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 574, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 576, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 578, "deg", 0.01, 0 +veBlendParameter1 = scalar, S16, 580, "", 0.1, 0 +veBlendParameter2 = scalar, S16, 582, "", 0.1, 0 +veBlendParameter3 = scalar, S16, 584, "", 0.1, 0 +veBlendParameter4 = scalar, S16, 586, "", 0.1, 0 +veBlendBias1 = scalar, U08, 588, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 589, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 590, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 591, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 592, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 594, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 596, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 598, "%", 0.01, 0 +boostOpenLoopBlendParameter1 = scalar, S16, 600, "", 0.1, 0 +boostOpenLoopBlendParameter2 = scalar, S16, 602, "", 0.1, 0 +boostOpenLoopBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +boostOpenLoopBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +boostOpenLoopBlendOutput1 = scalar, S08, 606, "%", 1, 0 +boostOpenLoopBlendOutput2 = scalar, S08, 607, "%", 1, 0 +boostClosedLoopBlendParameter1 = scalar, S16, 608, "", 0.1, 0 +boostClosedLoopBlendParameter2 = scalar, S16, 610, "", 0.1, 0 +boostClosedLoopBlendBias1 = scalar, U08, 612, "%", 0.5, 0 +boostClosedLoopBlendBias2 = scalar, U08, 613, "%", 0.5, 0 +boostClosedLoopBlendOutput1 = scalar, S16, 614, "%", 0.1, 0 +boostClosedLoopBlendOutput2 = scalar, S16, 616, "%", 0.1, 0 +coilState1 = bits, U32, 620, [0:0] +coilState2 = bits, U32, 620, [1:1] +coilState3 = bits, U32, 620, [2:2] +coilState4 = bits, U32, 620, [3:3] +coilState5 = bits, U32, 620, [4:4] +coilState6 = bits, U32, 620, [5:5] +coilState7 = bits, U32, 620, [6:6] +coilState8 = bits, U32, 620, [7:7] +coilState9 = bits, U32, 620, [8:8] +coilState10 = bits, U32, 620, [9:9] +coilState11 = bits, U32, 620, [10:10] +coilState12 = bits, U32, 620, [11:11] +injectorState1 = bits, U32, 620, [12:12] +injectorState2 = bits, U32, 620, [13:13] +injectorState3 = bits, U32, 620, [14:14] +injectorState4 = bits, U32, 620, [15:15] +injectorState5 = bits, U32, 620, [16:16] +injectorState6 = bits, U32, 620, [17:17] +injectorState7 = bits, U32, 620, [18:18] +injectorState8 = bits, U32, 620, [19:19] +injectorState9 = bits, U32, 620, [20:20] +injectorState10 = bits, U32, 620, [21:21] +injectorState11 = bits, U32, 620, [22:22] +injectorState12 = bits, U32, 620, [23:23] +triggerChannel1 = bits, U32, 620, [24:24] +triggerChannel2 = bits, U32, 620, [25:25] +vvtChannel1 = bits, U32, 620, [26:26] +vvtChannel2 = bits, U32, 620, [27:27] +vvtChannel3 = bits, U32, 620, [28:28] +vvtChannel4 = bits, U32, 620, [29:29] +outputRequestPeriod = scalar, U32, 624, "", 1, 0 +mapFast = scalar, F32, 628, "", 1, 0 +luaGauges1 = scalar, F32, 632, "value", 1, 0 +luaGauges2 = scalar, F32, 636, "value", 1, 0 +rawMaf2 = scalar, U16, 640, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 642, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 644, "", 1,0 +vehicleSpeedKph = scalar, U16, 646, "kph", 0.01, 0 +Gego = scalar, U16, 648, "%", 0.01,0 +testBenchIter = scalar, U16, 650, "count", 1, 0 +oilTemp = scalar, S16, 652, "deg C", 0.01, 0 +fuelTemp = scalar, S16, 654, "deg C", 0.01, 0 +ambientTemp = scalar, S16, 656, "deg C", 0.01, 0 +compressorDischargeTemp = scalar, S16, 658, "deg C", 0.01, 0 +compressorDischargePressure = scalar, U16, 660, "kPa", 0.03333333333333333, 0 +throttleInletPressure = scalar, U16, 662, "kPa", 0.03333333333333333, 0 +ignitionOnTime = scalar, U16, 664, "sec", 1,0 +engineRunTime = scalar, U16, 666, "sec", 1,0 +distanceTraveled = scalar, U16, 668, "km", 0.1,0 +afrGasolineScale = scalar, U16, 670, "AFR", 0.001, 0 +afr2GasolineScale = scalar, U16, 672, "AFR", 0.001, 0 +wheelSlipRatio = scalar, F32, 676, "", 1, 0 +ignitorDiagnostic1 = scalar, U08, 680, "", 1, 0 +ignitorDiagnostic2 = scalar, U08, 681, "", 1, 0 +ignitorDiagnostic3 = scalar, U08, 682, "", 1, 0 +ignitorDiagnostic4 = scalar, U08, 683, "", 1, 0 +ignitorDiagnostic5 = scalar, U08, 684, "", 1, 0 +ignitorDiagnostic6 = scalar, U08, 685, "", 1, 0 +ignitorDiagnostic7 = scalar, U08, 686, "", 1, 0 +ignitorDiagnostic8 = scalar, U08, 687, "", 1, 0 +ignitorDiagnostic9 = scalar, U08, 688, "", 1, 0 +ignitorDiagnostic10 = scalar, U08, 689, "", 1, 0 +ignitorDiagnostic11 = scalar, U08, 690, "", 1, 0 +ignitorDiagnostic12 = scalar, U08, 691, "", 1, 0 +injectorDiagnostic1 = scalar, U08, 692, "", 1, 0 +injectorDiagnostic2 = scalar, U08, 693, "", 1, 0 +injectorDiagnostic3 = scalar, U08, 694, "", 1, 0 +injectorDiagnostic4 = scalar, U08, 695, "", 1, 0 +injectorDiagnostic5 = scalar, U08, 696, "", 1, 0 +injectorDiagnostic6 = scalar, U08, 697, "", 1, 0 +injectorDiagnostic7 = scalar, U08, 698, "", 1, 0 +injectorDiagnostic8 = scalar, U08, 699, "", 1, 0 +injectorDiagnostic9 = scalar, U08, 700, "", 1, 0 +injectorDiagnostic10 = scalar, U08, 701, "", 1, 0 +injectorDiagnostic11 = scalar, U08, 702, "", 1, 0 +injectorDiagnostic12 = scalar, U08, 703, "", 1, 0 +actualLastInjectionStage2 = scalar, U16, 704, "ms", 0.0033333333333333335, 0 +injectorDutyCycleStage2 = scalar, U08, 706, "%", 0.5, 0 +unusedAtTheEnd1 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 777, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 778, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 779, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 780, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 781, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 782, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 783, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 784, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 785, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 786, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 787, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 788, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 789, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 790, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 791, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 792, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 793, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 794, "", 1, 0 +; total TS size = 796 +totalFuelCorrection = scalar, F32, 796, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 800, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 804, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 808, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 812, "secs", 1,0 +running_baseFuel = scalar, U16, 816, "mg", 0.01, 0 +running_fuel = scalar, U16, 818, "mg", 0.01, 0 +afrTableYAxis = scalar, U16, 820, "%", 0.01,0 +targetLambda = scalar, U16, 822, "", 1.0E-4,0 +targetAFR = scalar, U16, 824, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 826, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 828, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 832, "g", 1, 0 +normalizedCylinderFilling = scalar, F32, 836, "%", 1, 0 +brokenInjector = scalar, U08, 840, "", 1, 0 +unused88 = scalar, U08, 841, "", 1, 0 +idealEngineTorque = scalar, U16, 842, "", 1, 0 +injectorHwIssue = bits, U32, 844, [0:0] +; total TS size = 848 +baseDwell = scalar, F32, 848, "ms", 1,0 +sparkDwell = scalar, F32, 852, "ms", 1,0 +dwellDurationAngle = scalar, F32, 856, "deg", 1,0 +cltTimingCorrection = scalar, S16, 860, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 862, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 864, "deg", 0.01,0 +baseIgnitionAdvance = scalar, S16, 866, "deg", 0.02, 0 +correctedIgnitionAdvance = scalar, S16, 868, "deg", 0.02, 0 +tractionAdvanceDrop = scalar, S16, 870, "deg", 0.02, 0 +dwellVoltageCorrection = scalar, F32, 872, "", 1, 0 +luaTimingAdd = scalar, F32, 876, "deg", 1, 0 +luaTimingMult = scalar, F32, 880, "deg", 1, 0 +luaIgnitionSkip = bits, U32, 884, [0:0] +; total TS size = 888 +m_knockLevel = scalar, F32, 888, "Volts", 1, 0 +m_knockCyl1 = scalar, S08, 892, "dBv", 1, 0 +m_knockCyl2 = scalar, S08, 893, "dBv", 1, 0 +m_knockCyl3 = scalar, S08, 894, "dBv", 1, 0 +m_knockCyl4 = scalar, S08, 895, "dBv", 1, 0 +m_knockCyl5 = scalar, S08, 896, "dBv", 1, 0 +m_knockCyl6 = scalar, S08, 897, "dBv", 1, 0 +m_knockCyl7 = scalar, S08, 898, "dBv", 1, 0 +m_knockCyl8 = scalar, S08, 899, "dBv", 1, 0 +m_knockCyl9 = scalar, S08, 900, "dBv", 1, 0 +m_knockCyl10 = scalar, S08, 901, "dBv", 1, 0 +m_knockCyl11 = scalar, S08, 902, "dBv", 1, 0 +m_knockCyl12 = scalar, S08, 903, "dBv", 1, 0 +m_knockRetard = scalar, F32, 904, "deg", 1,0 +m_knockThreshold = scalar, F32, 908, "", 1, 0 +m_knockCount = scalar, U32, 912, "", 1, 0 +m_maximumRetard = scalar, F32, 916, "", 1, 0 +; total TS size = 920 +tcuCurrentGear = scalar, S08, 920, "gear", 1, 0 +tcRatio = scalar, U16, 922, "value", 0.01, 0 +lastShiftTime = scalar, F32, 924, "", 1, 0 +tcu_currentRange = scalar, U08, 928, "", 1, 0 +; total TS size = 932 +throttleUseWotModel = bits, U32, 932, [0:0] +throttleModelCrossoverAngle = scalar, S16, 936, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 940, "g/s", 1, 0 +; total TS size = 944 +m_requested_pump = scalar, F32, 944, "", 1, 0 +fuel_requested_percent = scalar, F32, 948, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 952, "", 1, 0 +noValve = bits, U32, 956, [0:0] +angleAboveMin = bits, U32, 956, [1:1] +isHpfpInactive = bits, U32, 956, [2:2] +m_pressureTarget_kPa = scalar, F32, 960, "", 1, 0 +nextLobe = scalar, F32, 964, "", 1, 0 +di_nextStart = scalar, F32, 968, "v", 1, 0 +; total TS size = 972 +m_deadtime = scalar, F32, 972, "ms", 1, 0 +pressureDelta = scalar, F32, 976, "kPa", 1, 0 +pressureRatio = scalar, F32, 980, "", 1, 0 +; total TS size = 984 +retardThresholdRpm = scalar, S32, 984, "", 1, 0 +combinedConditions = bits, U32, 988, [0:0] +launchActivatePinState = bits, U32, 988, [1:1] +isLaunchPreCondition = bits, U32, 988, [2:2] +isLaunchCondition = bits, U32, 988, [3:3] +isSwitchActivated = bits, U32, 988, [4:4] +isClutchActivated = bits, U32, 988, [5:5] +isValidInputPin = bits, U32, 988, [6:6] +activateSwitchCondition = bits, U32, 988, [7:7] +rpmCondition = bits, U32, 988, [8:8] +speedCondition = bits, U32, 988, [9:9] +tpsCondition = bits, U32, 988, [10:10] +; total TS size = 992 +isAntilagCondition = bits, U32, 992, [0:0] +ALSMinRPMCondition = bits, U32, 992, [1:1] +ALSMaxRPMCondition = bits, U32, 992, [2:2] +ALSMinCLTCondition = bits, U32, 992, [3:3] +ALSMaxCLTCondition = bits, U32, 992, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 992, [5:5] +isALSSwitchActivated = bits, U32, 992, [6:6] +ALSActivatePinState = bits, U32, 992, [7:7] +ALSSwitchCondition = bits, U32, 992, [8:8] +ALSTimerCondition = bits, U32, 992, [9:9] +fuelALSCorrection = scalar, F32, 996, "", 1, 0 +timingALSCorrection = scalar, S16, 1000, "deg", 0.01, 0 +timingALSSkip = scalar, S16, 1002, "deg", 0.01, 0 +; total TS size = 1004 +isTpsInvalid = bits, U32, 1004, [0:0] +m_shouldResetPid = bits, U32, 1004, [1:1] +isBelowClosedLoopThreshold = bits, U32, 1004, [2:2] +isNotClosedLoop = bits, U32, 1004, [3:3] +isZeroRpm = bits, U32, 1004, [4:4] +hasInitBoost = bits, U32, 1004, [5:5] +rpmTooLow = bits, U32, 1004, [6:6] +tpsTooLow = bits, U32, 1004, [7:7] +mapTooLow = bits, U32, 1004, [8:8] +isPlantValid = bits, U32, 1004, [9:9] +isBoostControlled = bits, U32, 1004, [10:10] +luaTargetAdd = scalar, S16, 1008, "v", 0.5,0 +boostOutput = scalar, S16, 1010, "percent", 0.01,0 +luaTargetMult = scalar, F32, 1012, "v", 1,0 +openLoopPart = scalar, F32, 1016, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 1020, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 1024, "%", 0.5,0 +boostControlTarget = scalar, S16, 1026, "kPa", 0.03333333333333333,0 +; total TS size = 1028 +acButtonState = scalar, S08, 1028, "", 1, 0 +m_acEnabled = bits, U32, 1032, [0:0] +engineTooSlow = bits, U32, 1032, [1:1] +engineTooFast = bits, U32, 1032, [2:2] +noClt = bits, U32, 1032, [3:3] +engineTooHot = bits, U32, 1032, [4:4] +tpsTooHigh = bits, U32, 1032, [5:5] +isDisabledByLua = bits, U32, 1032, [6:6] +acCompressorState = bits, U32, 1032, [7:7] +latest_usage_ac_control = scalar, S32, 1036, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 1040, "", 1, 0 +; total TS size = 1044 +cranking0 = bits, U32, 1044, [0:0] +notRunning0 = bits, U32, 1044, [1:1] +disabledWhileEngineStopped0 = bits, U32, 1044, [2:2] +brokenClt0 = bits, U32, 1044, [3:3] +enabledForAc0 = bits, U32, 1044, [4:4] +hot0 = bits, U32, 1044, [5:5] +cold0 = bits, U32, 1044, [6:6] +disabledBySpeed0 = bits, U32, 1044, [7:7] +; total TS size = 1048 +isPrime = bits, U32, 1048, [0:0] +engineTurnedRecently = bits, U32, 1048, [1:1] +isFuelPumpOn = bits, U32, 1048, [2:2] +ignitionOn = bits, U32, 1048, [3:3] +; total TS size = 1052 +isBenchTest = bits, U32, 1052, [0:0] +hasIgnitionVoltage = bits, U32, 1052, [1:1] +mainRelayState = bits, U32, 1052, [2:2] +delayedShutoffRequested = bits, U32, 1052, [3:3] +; total TS size = 1056 +lua_fuelAdd = scalar, F32, 1056, "g", 1, 0 +lua_fuelMult = scalar, F32, 1060, "", 1, 0 +lua_clutchUpState = bits, U32, 1064, [0:0] +lua_brakePedalState = bits, U32, 1064, [1:1] +lua_acRequestState = bits, U32, 1064, [2:2] +lua_luaDisableEtb = bits, U32, 1064, [3:3] +lua_luaIgnCut = bits, U32, 1064, [4:4] +sd_tCharge = scalar, S16, 1068, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1072, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1076, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1080, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1084, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1088, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1092, "", 1, 0 +hellenBoardId = scalar, S16, 1096, "id", 1, 0 +clutchUpState = scalar, S08, 1098, "", 1, 0 +clutchDownState = scalar, S08, 1099, "", 1, 0 +brakePedalState = scalar, S08, 1100, "", 1, 0 +startStopState = scalar, S08, 1101, "", 1, 0 +smartChipState = scalar, S08, 1102, "", 1, 0 +smartChipRestartCounter = scalar, S08, 1103, "", 1, 0 +smartChipAliveCounter = scalar, S08, 1104, "", 1, 0 +startStopPhysicalState = bits, U32, 1108, [0:0] +acrActive = bits, U32, 1108, [1:1] +acrEngineMovedRecently = bits, U32, 1108, [2:2] +heaterControlEnabled = bits, U32, 1108, [3:3] +luaDigitalState0 = bits, U32, 1108, [4:4] +luaDigitalState1 = bits, U32, 1108, [5:5] +luaDigitalState2 = bits, U32, 1108, [6:6] +luaDigitalState3 = bits, U32, 1108, [7:7] +startStopStateToggleCounter = scalar, U32, 1112, "", 1, 0 +egtValue1 = scalar, F32, 1116, "", 1, 0 +egtValue2 = scalar, F32, 1120, "", 1, 0 +luaSoftSparkSkip = scalar, F32, 1124, "", 1, 0 +luaHardSparkSkip = scalar, F32, 1128, "", 1, 0 +tractionControlSparkSkip = scalar, F32, 1132, "", 1, 0 +desiredRpmLimit = scalar, S16, 1136, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1140, "", 1, 0 +globalSparkCounter = scalar, U32, 1144, "", 1, 0 +fuelingLoad = scalar, F32, 1148, "", 1, 0 +ignitionLoad = scalar, F32, 1152, "", 1, 0 +veTableYAxis = scalar, U16, 1156, "%", 0.01, 0 +; total TS size = 1160 +tpsFrom = scalar, F32, 1160 +tpsTo = scalar, F32, 1164 +deltaTps = scalar, F32, 1168 +extraFuel = scalar, F32, 1172, "", 1, 0 +valueFromTable = scalar, F32, 1176, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1180, [0:0] +isBelowDecelThreshold = bits, U32, 1180, [1:1] +isTimeToResetAccumulator = bits, U32, 1180, [2:2] +isFractionalEnrichment = bits, U32, 1180, [3:3] +belowEpsilon = bits, U32, 1180, [4:4] +tooShort = bits, U32, 1180, [5:5] +fractionalInjFuel = scalar, F32, 1184, "", 1, 0 +accumulatedValue = scalar, F32, 1188, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1192, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1196, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1200, "", 1, 0 +cycleCnt = scalar, S32, 1204, "", 1, 0 +; total TS size = 1208 +hwEventCounters1 = scalar, U32, 1208, "", 1, 0 +hwEventCounters2 = scalar, U32, 1212, "", 1, 0 +hwEventCounters3 = scalar, U32, 1216, "", 1, 0 +hwEventCounters4 = scalar, U32, 1220, "", 1, 0 +hwEventCounters5 = scalar, U32, 1224, "", 1, 0 +hwEventCounters6 = scalar, U32, 1228, "", 1, 0 +vvtCamCounter = scalar, U32, 1232, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1236, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1240, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1244, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1245, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1248, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1252, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1256, "", 1, 0 +mapCamPrevToothAngle = scalar, F32, 1260, "deg", 1, 0 +isDecodingMapCam = bits, U32, 1264, [0:0] +; total TS size = 1268 +crankSynchronizationCounter0 = scalar, U32, 1268, "", 1, 0 +vvtSyncGapRatio0 = scalar, F32, 1272, "", 1, 0 +vvtToothDurations00 = scalar, U32, 1276, "us", 1, 0 +vvtCurrentPosition0 = scalar, F32, 1280, "sync: Primary Cam Position", 1, 0 +vvtToothPosition10 = scalar, F32, 1284, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition20 = scalar, F32, 1288, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition30 = scalar, F32, 1292, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition40 = scalar, F32, 1296, "sync: Cam Tooth Position", 1, 0 +triggerSyncGapRatio0 = scalar, F32, 1300, "", 1, 0 +triggerStateIndex0 = scalar, U08, 1304, "", 1, 0 +vvtStateIndex0 = scalar, U08, 1305, "", 1, 0 +; total TS size = 1308 +camResyncCounter = scalar, U08, 1308, "", 1, 0 +m_hasSynchronizedPhase = bits, U32, 1312, [0:0] +; total TS size = 1316 +wallFuelCorrection = scalar, F32, 1316, "", 1, 0 +wallFuel = scalar, F32, 1320, "", 1, 0 +; total TS size = 1324 +idleState = bits, S32, 1324, [0:2], "not important" +currentIdlePosition = scalar, F32, 1328 +baseIdlePosition = scalar, F32, 1332 +idleClosedLoop = scalar, F32, 1336 +iacByTpsTaper = scalar, F32, 1340 +throttlePedalUpState = scalar, S32, 1344, "", 1, 0 +mightResetPid = bits, U32, 1348, [0:0] +shouldResetPid = bits, U32, 1348, [1:1] +wasResetPid = bits, U32, 1348, [2:2] +mustResetPid = bits, U32, 1348, [3:3] +isCranking = bits, U32, 1348, [4:4] +isIacTableForCoasting = bits, U32, 1348, [5:5] +notIdling = bits, U32, 1348, [6:6] +needReset = bits, U32, 1348, [7:7] +isInDeadZone = bits, U32, 1348, [8:8] +isBlipping = bits, U32, 1348, [9:9] +useClosedLoop = bits, U32, 1348, [10:10] +badTps = bits, U32, 1348, [11:11] +looksLikeRunning = bits, U32, 1348, [12:12] +looksLikeCoasting = bits, U32, 1348, [13:13] +looksLikeCrankToIdle = bits, U32, 1348, [14:14] +isIdleCoasting = bits, U32, 1348, [15:15] +isIdleClosedLoop = bits, U32, 1348, [16:16] +idleTarget = scalar, S32, 1352, "", 1, 0 +targetRpmByClt = scalar, S32, 1356, "", 1, 0 +targetRpmAc = scalar, S32, 1360, "", 1, 0 +iacByRpmTaper = scalar, F32, 1364 +luaAdd = scalar, F32, 1368 +; total TS size = 1372 +idlePosition0 = scalar, F32, 1372, "per", 1,0 +trim0 = scalar, F32, 1376, "", 1, 0 +luaAdjustment0 = scalar, F32, 1380, "per", 1,0 +m_wastegatePosition0 = scalar, F32, 1384, "per", 1,0 +etbFeedForward0 = scalar, F32, 1388 +etbIntegralError0 = scalar, F32, 1392, "", 1, 0 +etbCurrentTarget0 = scalar, F32, 1396, "%", 1, 0 +etbCurrentAdjustedTarget0 = scalar, F32, 1400, "%", 1, 0 +etbRevLimitActive0 = bits, U32, 1404, [0:0] +jamDetected0 = bits, U32, 1404, [1:1] +etbDutyRateOfChange0 = scalar, F32, 1408, "per", 1,0 +etbDutyAverage0 = scalar, F32, 1412, "per", 1,0 +etbTpsErrorCounter0 = scalar, U16, 1416, "count", 1,0 +etbPpsErrorCounter0 = scalar, U16, 1418, "count", 1,0 +etbErrorCode0 = scalar, S08, 1420, "", 1, 0 +tcEtbDrop0 = scalar, S08, 1421, "", 1, 0 +jamTimer0 = scalar, U16, 1422, "sec", 0.01, 0 +; total TS size = 1424 +faultCode0 = scalar, U08, 1424, "", 1, 0 +heaterDuty0 = scalar, U08, 1425, "%", 1, 0 +pumpDuty0 = scalar, U08, 1426, "%", 1, 0 +tempC0 = scalar, U16, 1428, "C", 1, 0 +nernstVoltage0 = scalar, U16, 1430, "V", 0.001, 0 +esr0 = scalar, U16, 1432, "ohm", 1, 0 +; total TS size = 1436 +dcOutput0 = scalar, F32, 1436, "per", 1,0 +isEnabled0_int = scalar, U08, 1440, "per", 1,0 +isEnabled0 = bits, U32, 1444, [0:0] +; total TS size = 1448 +value0 = scalar, U16, 1448, "value", 1,0 +value1 = scalar, U16, 1450, "value", 1,0 +errorRate = scalar, F32, 1452, "ratio", 1,0 +; total TS size = 1456 +vvtTarget = scalar, U16, 1456, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1458, "%", 0.5, 0 +; total TS size = 1460 +lambdaCurrentlyGood = bits, U32, 1460, [0:0] +lambdaMonitorCut = bits, U32, 1460, [1:1] +lambdaTimeSinceGood = scalar, U16, 1464, "sec", 0.01, 0 +; total TS size = 1468 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + wbo0_hasFault = { enableAemXSeries && (faultCode0 >= 3) } + +[PcVariables] + tuneCrcPcVariable = continuousChannelValue, tuneCrc16 + + wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; + wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 + + gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave + solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave + + rangeInputArray = array, U08, [6], "Input", 1, 0, 0, 6, 0, noMsqSave + rangeStateArray = array, U08, [9], "State", 1, 0, 0, 9, 0, noMsqSave + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "silent", "cranking", "failed to heat", "overheat", "underheat", "no supply", "legacy" + + injModeList = bits, U08, [0:3], "Simultaneous", "Sequential", "Batch", "Single Point" + ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" + +; ClearReason + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot", "GDI Comms", "Brake" + +; TpsState + etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" + + outputDiagErrorList = bits, U08, [0:3], "Not used", "No error", "Open Load", "Short to Gnd", "Short to Battery", "Overload", "Driver Overtemp", "Driver disabled", "Unknown" + +[ConstantsExtensions] + ; defaultValue is used to provide TunerStudio with a value to use in the case of + ; the constant not yet being initialized. This is primarily important if the + ; constant is used as a variable in the ini. + ; defaultValue = constantName, value; + defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 + + ; this magic is best described in output_channels.txt search for 'maintainConstantValue' + ; TPS 1 Primary + maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax } + maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin } + + ; TPS 1 Secondary + maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } + maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } + + ; TPS 2 Primary + maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } + maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } + + ; TPS 2 Secondary + maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax } + maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin } + + ; ETB Auto Gain Calibration + maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } + maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } + maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } + + maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == 12 ) ? calibrationValue : throttlePedalUpVoltage } + maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == 12 ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage } + + maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue : throttlePedalWOTVoltage } + maintainConstantValue = throttlePedalSecondaryWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage } + + requiresPowerCycle = boardUseCanTerminator + requiresPowerCycle = lps25BaroSensorScl + requiresPowerCycle = lps25BaroSensorSda + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = canWriteEnabled + requiresPowerCycle = canReadEnabled + requiresPowerCycle = can1ListenMode + requiresPowerCycle = can2ListenMode + + requiresPowerCycle = startStopButtonPin + requiresPowerCycle = startStopButtonMode + + requiresPowerCycle = enableAemXSeries + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbSplit + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = vvtOutputFrequency + requiresPowerCycle = vvtPins1 + requiresPowerCycle = vvtPins2 + requiresPowerCycle = vvtPins3 + requiresPowerCycle = vvtPins4 + + requiresPowerCycle = auxAnalogInputs1 + requiresPowerCycle = auxAnalogInputs2 + requiresPowerCycle = auxAnalogInputs3 + requiresPowerCycle = auxAnalogInputs4 + requiresPowerCycle = auxAnalogInputs5 + requiresPowerCycle = auxAnalogInputs6 + requiresPowerCycle = auxAnalogInputs7 + requiresPowerCycle = auxAnalogInputs8 + + requiresPowerCycle = knockBandCustom + + readOnly = warning_message + + defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 + readOnly = gearCountArray + defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 + readOnly = solenoidCountArray + + defaultValue = rangeStateArray, 0 1 2 3 4 5 6 7 8 + readOnly = rangeStateArray + defaultValue = rangeInputArray, 0 1 2 3 4 5 + readOnly = solenoidCountArray + +[CurveEditor] +; xAxis = leftValue, rightValue, step +; yAxis = bottomValue, topValue, step + + curve = knockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 10 + xBins = knockNoiseRpmBins, RPMValue + yBins = knockBaseNoise + gauge = RPMGauge + + curve = scriptCurve1, "Script Curve #1" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -155, 150, 10 + xBins = scriptCurve1Bins + yBins = scriptCurve1 + showTextValues = true + + curve = scriptCurve2, "Script Curve #2" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -150, 150, 10 + xBins = scriptCurve2Bins + yBins = scriptCurve2 + showTextValues = true + + curve = scriptCurve3, "Script Curve #3" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve3Bins + yBins = scriptCurve3 + showTextValues = true + + curve = scriptCurve4, "Script Curve #4" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve4Bins + yBins = scriptCurve4 + showTextValues = true + + curve = scriptCurve5, "Script Curve #5" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve5Bins + yBins = scriptCurve5 + showTextValues = true + + curve = scriptCurve6, "Script Curve #6" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve6Bins + yBins = scriptCurve6 + showTextValues = true + + curve = dwellCorrection, "Dwell time base" + columnLabel = "RPM", "Dwell" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 9 + xBins = sparkDwellRpmBins, RPMValue + yBins = sparkDwellValues + gauge = RPMGauge + + curve = dwellVoltageCorrection, "Dwell voltage correction" + columnLabel = "Battery Volts", "Multiplier" + xAxis = 6, 16, 11 + yAxis = 0, 3, 7 + xBins = dwellVoltageCorrVoltBins, VBatt + yBins = dwellVoltageCorrValues + gauge = VBattGauge + + curve = tpsTspRpmCorrection, "Transient RPM correction" + columnLabel = "RPM", "Multiplier" + xAxis = 0, 8000, 9 + yAxis = 0, 3, 7 + xBins = tpsTspCorrValuesBins, RPMValue + yBins = tpsTspCorrValues + gauge = RPMGauge + + curve = primingPulse, "Priming pulse fuel mass" + columnLabel = "Coolant", "Prime Pulse" + xAxis = -40, 120, 9 + yAxis = 0, 1000, 9 + xBins = primeBins, coolant + yBins = primeValues + gauge = CLTGauge + + curve = map_samplingAngleCurve, "MAP Sampling Start Angle" + columnLabel = "RPM", "Angle" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingAngleBins, RPMValue + yBins = map_samplingAngle + gauge = MAPGauge + + curve = map_samplingWindowCurve, "MAP Sampling Duration" + columnLabel = "RPM", "Window" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingWindowBins, RPMValue + yBins = map_samplingWindow + gauge = MAPGauge + + curve = injectorsDeadTime, "Injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injector_battLagCorrBins, VBatt + yBins = injector_battLagCorr + gauge = VBattGauge + + curve = injectorsSecondaryDeadTime, "Secondary injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injectorSecondary_battLagCorrBins, VBatt + yBins = injectorSecondary_battLagCorr + gauge = VBattGauge + + curve = vrThresholdCurve1, "VR 1 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold1_rpmBins, RPMValue + yBins = vrThreshold1_values + + curve = vrThresholdCurve2, "VR 2 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold2_rpmBins, RPMValue + yBins = vrThreshold2_values + + curve = mafDecodingCurve, "MAF sensor" + columnLabel = "Voltage", "kg/hour" + xAxis = -1, 6, 10 + yAxis = -30, 1300, 10 + xBins = mafDecodingBins, rawMaf + yBins = mafDecoding + gauge = rawMafGauge + + curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" + topicHelp = "iatFuelCorrCurveHelp" + columnLabel = "Air Temp", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 2, 11 + xBins = iatFuelCorrBins, intake + yBins = iatFuelCorr + gauge = IATGauge + + curve = cltTimingCorrCurve, "Warmup timing correction" + columnLabel = "Coolant", "Extra" + xAxis = -40, 120, 9 + yAxis = 0, 20, 9 + xBins = cltTimingBins, coolant + yBins = cltTimingExtra + gauge = CLTGauge + + curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + gauge = CLTGauge + + curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoef + gauge = CLTGauge + + curve = crankingCltCurveE100, "Cranking Coolant Temperature Multiplier (Flex Fuel E85)" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoefE100 + gauge = CLTGauge + + curve = cltRevLimitCurve, "" + columnLabel = "Coolant", "RPM Limit" + xAxis = -40, 120, 9 + yAxis = 0, 8000, 9 + xBins = cltRevLimitRpmBins, coolant + yBins = cltRevLimitRpm + gauge = CLTGauge + + curve = etbTpsBiasCurve, "Electronic TB Bias Curve" + columnLabel = "TPS", "duty bias" + xAxis = 0, 50, 11 + yAxis = -40, 40, 9 + xBins = etbBiasBins, TPSValue + yBins = etbBiasValues + gauge = TPSGauge + + curve = crankingTpsCurve, "Cranking TPS Multiplier" + columnLabel = "TPS", "Multiplier" + xAxis = 0, 100, 11 + yAxis = 0, 3, 10 + xBins = crankingTpsBins, TPSValue + yBins = crankingTpsCoef + gauge = TPSGauge + + curve = crankingDurationCurve, "Cranking Cycle Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = cltIdleRPMCurve, "Idle Target RPM" + columnLabel = "Coolant", "RPM" + xAxis = -40, 120, 9 + yAxis = 0, 2400, 13 + xBins = cltIdleRpmBins, coolant + yBins = cltIdleRpm, RPMValue + gauge = CLTGauge + + curve = idleAdvanceCurve, "Idle Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 2400, 13 + yAxis = -100, 100, 11 + xBins = idleAdvanceBins, RPMValue + yBins = idleAdvance + gauge = RPMGauge + + curve = crankingAdvanceCurve, "Cranking Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 1200, 13 + yAxis = -30, 30, 11 + xBins = crankingAdvanceBins, RPMValue + yBins = crankingAdvance + gauge = RPMGauge + + curve = fuelLevelCurve, "Fuel Level" + columnLabel = "Voltage", "%" + xAxis = 0, 5, 6 + yAxis = 0, 100, 11 + xBins = fuelLevelBins + yBins = fuelLevelValues + gauge = fuelTankLevelGauge + + curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" + columnLabel = "Coolant", "AFR Offset" + xAxis = -40, 200, 9 + yAxis = -3, 1, 5 + xBins = cltFuelCorrBins, coolant + yBins = wueAfrTargetOffset + gauge = cltGauge + + curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" + columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" + xAxis = -40, 200, 9 + yAxis = 90, 500, 6 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + yBins = wueAnalRecommend + ;gauge = cltGauge + + lineLabel = "Warmup Correction" + lineLabel = "Recommended WUE" + + curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" + columnLabel = "% pump volume", "angle" + xAxis = 0, 100, 11 + yAxis = 0, 240, 13 + xBins = hpfpLobeProfileQuantityBins + yBins = hpfpLobeProfileAngle + + curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" + columnLabel = "volts", "ms" + xAxis = 5, 15, 11 + yAxis = 0, 5, 6 + xBins = hpfpDeadtimeVoltsBins + yBins = hpfpDeadtimeMS + + curve = wwTauCltCurve, "Evap time vs. CLT" + columnLabel = "coolant", "seconds" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwTauCltValues + gauge = CLTGauge + + curve = wwTauMapCurve, "Evap time vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwTauMapValues + gauge = MAPGauge + + curve = wwBetaCltCurve, "Impact fraction vs. CLT" + columnLabel = "coolant", "fraction" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwBetaCltValues + gauge = CLTGauge + + curve = wwBetaMapCurve, "Impact fraction vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwBetaMapValues + gauge = MAPGauge + + curve = tchargeCurve, "Charge temperature estimation coefficient" + columnLabel = "flow", "coefficient" + xAxis = 0, 500, 6 + yAxis = 0, 100, 5 + xBins = tchargeBins, mafEstimate + yBins = tchargeValues + gauge = tChargeGauge + + curve = tccLockCurve, "TCC Lock Curve" + columnLabel = "TPS", "Lock Speed", "Unlock Speed" + xAxis = 0, 100, 10 + yAxis = 0, 100, 10 + xBins = tcu_tccTpsBins, TPSValue + yBins = tcu_tccLockSpeed + yBins = tcu_tccUnlockSpeed + gauge = TPSGauge + + curve = pcPerGearCurve, "Transmission Line Pressure Control" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcValsR + yBins = tcu_pcValsN + yBins = tcu_pcVals1 + yBins = tcu_pcVals2 + yBins = tcu_pcVals3 + yBins = tcu_pcVals4 + lineLabel = "R%" + lineLabel = "N%" + lineLabel = "1%" + lineLabel = "2%" + lineLabel = "3%" + lineLabel = "4%" + +curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcVals12 + yBins = tcu_pcVals23 + yBins = tcu_pcVals34 + yBins = tcu_pcVals21 + yBins = tcu_pcVals32 + yBins = tcu_pcVals43 + lineLabel = "1->2%" + lineLabel = "2->3%" + lineLabel = "3->4%" + lineLabel = "2->1%" + lineLabel = "3->2%" + lineLabel = "4->3%" + +curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" + columnLabel = "Speed", "%" + xAxis = 0, 200, 20 + yAxis = 0, 100, 10 + xBins = tcu_32SpeedBins, vehicleSpeedKph + yBins = tcu_32Vals + +curve = rangeMatrix, "Range Switch Input Matrix" + columnLabel = "Pin", "" + xAxis = 0, 6, 6 + yAxis = 0, 3, 3 + xBins = rangeInputArray + yBins = tcu_rangeP + yBins = tcu_rangeR + yBins = tcu_rangeN + yBins = tcu_rangeD + yBins = tcu_rangeM + yBins = tcu_rangeM3 + yBins = tcu_rangeM2 + yBins = tcu_rangeM1 + yBins = tcu_rangePlus + yBins = tcu_rangeMinus + yBins = tcu_rangeLow + lineLabel = "Park" + lineLabel = "Reverse" + lineLabel = "Neutral" + lineLabel = "Drive" + lineLabel = "Manual" + lineLabel = "Manual 3rd" + lineLabel = "Manual 2nd" + lineLabel = "Manual 1st" + lineLabel = "Manual +" + lineLabel = "Manual -" + lineLabel = "Low" + + curve = ignAdder1Bias, "Ignition adder 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends1_blendBins, ignBlendParameter1 + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlendParameter2 + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlendParameter3 + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlendParameter4 + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlendParameter1 + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlendParameter2 + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlendParameter3 + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlendParameter4 + yBins = veBlends4_blendValues + + curve = boostOpenLoopBlend1Bias, "Boost open loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends1_blendBins, boostOpenLoopBlendParameter1 + yBins = boostOpenLoopBlends1_blendValues + + curve = boostOpenLoopBlend2Bias, "Boost open loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends2_blendBins, boostOpenLoopBlendParameter2 + yBins = boostOpenLoopBlends2_blendValues + + curve = boostClosedLoopBlend1Bias, "Boost Closed loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends1_blendBins, boostClosedLoopBlendParameter1 + yBins = boostClosedLoopBlends1_blendValues + + curve = boostClosedLoopBlend2Bias, "Boost Closed loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends2_blendBins, boostClosedLoopBlendParameter2 + yBins = boostClosedLoopBlends2_blendValues + + curve = throttleEffectiveArea, "Throttle effective area" + columnLabel = "TPS", "normalized flow" + xAxis = 0, 100, 11 + yAxis = 0, 2, 5 + xBins = throttleEstimateEffectiveAreaBins, TPSValue + yBins = throttleEstimateEffectiveAreaValues + gauge = TPSGauge + + curve = boostOpenLoopGearAdderCurve, "Boost Open Loop gear-based adder" + columnLabel = "Gear", "duty cycle" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = gearCountArray, tcuCurrentGear + yBins = gearBasedOpenLoopBoostAdder + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com/s/tpstps https://github.com/rusefi/rusefi/issues/5130 + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = tractionEtbTableTbl, tractionEtb, "Traction Control ETB drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlEtbDrop + + table = tractionTimingTableTbl, tractionEtb, "Traction Control Timing drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlTimingDrop + + table = tractionIgnitionSkipTableTbl, tractionEtb, "Traction Control Skip Ignition", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlIgnitionSkip + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + xBins = alsIgnRetardrpmBins, RPMValue + yBins = alsIgnRetardLoadBins, TPSValue + zBins = ALSTimingRetardTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = FuelAdderTableALS, FuelAdderALS, "Fuel adjustment", 1 + xBins = alsFuelAdjustmentrpmBins, RPMValue + yBins = alsFuelAdjustmentLoadBins, TPSValue + zBins = ALSFuelAdjustment + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = IgnSkipTableALS, IgnSkipALS, "Ignition Skip", 1 + ; constant, variable + xBins = alsIgnSkiprpmBins, RPMValue + yBins = alsIgnSkipLoadBins, TPSValue + zBins = ALSIgnSkipTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 + xyLabels = "RPM", "Ignition Load" + xBins = baroCorrRpmBins, RPMValue + yBins = baroCorrPressureBins, baroPressure + zBins = baroCorrTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignitionRpmBins, RPMValue + yBins = ignitionLoadBins, ignitionLoad + zBins = ignitionTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends1_rpmBins, RPMValue + yBins = ignBlends1_loadBins, ignitionLoad + zBins = ignBlends1_table + gridOrient = 250, 0, 340 + + table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends2_rpmBins, RPMValue + yBins = ignBlends2_loadBins, ignitionLoad + zBins = ignBlends2_table + gridOrient = 250, 0, 340 + + table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends3_rpmBins, RPMValue + yBins = ignBlends3_loadBins, ignitionLoad + zBins = ignBlends3_table + gridOrient = 250, 0, 340 + + table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends4_rpmBins, RPMValue + yBins = ignBlends4_loadBins, ignitionLoad + zBins = ignBlends4_table + gridOrient = 250, 0, 340 + + table = veBlend1Table, veBlend1Map, "VE blend 1", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends1_rpmBins, RPMValue + yBins = veBlends1_loadBins, fuelingLoad + zBins = veBlends1_table + gridOrient = 250, 0, 340 + + table = veBlend2Table, veBlend2Map, "VE blend 2", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends2_rpmBins, RPMValue + yBins = veBlends2_loadBins, fuelingLoad + zBins = veBlends2_table + gridOrient = 250, 0, 340 + + table = veBlend3Table, veBlend3Map, "VE blend 3", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends3_rpmBins, RPMValue + yBins = veBlends3_loadBins, fuelingLoad + zBins = veBlends3_table + gridOrient = 250, 0, 340 + + table = veBlend4Table, veBlend4Map, "VE blend 4", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends4_rpmBins, RPMValue + yBins = veBlends4_loadBins, fuelingLoad + zBins = veBlends4_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends1_rpmBins, RPMValue + yBins = boostOpenLoopBlends1_loadBins, TPSValue + zBins = boostOpenLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends2_rpmBins, RPMValue + yBins = boostOpenLoopBlends2_loadBins, TPSValue + zBins = boostOpenLoopBlends2_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends1_rpmBins, RPMValue + yBins = boostClosedLoopBlends1_loadBins, TPSValue + zBins = boostClosedLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends2_rpmBins, RPMValue + yBins = boostClosedLoopBlends2_loadBins, TPSValue + zBins = boostClosedLoopBlends2_table + gridOrient = 250, 0, 340 + + table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 + xyLabels = "Air Temp", "Ignition Load" + xBins = ignitionIatCorrTempBins, intake + yBins = ignitionIatCorrLoadBins, ignitionLoad + zBins = ignitionIatCorrTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = torqueTableTbl, torqueTableMap, "Engine Torque", 1 + xBins = torqueRpmBins, RPMValue + yBins = torqueLoadBins, veTableYAxis + zBins = torqueTable + + table = veTableTbl, veTableMap, "VE Table", 1 + xyLabels = "RPM", "load" + xBins = veRpmBins, RPMValue + yBins = veLoadBins, veTableYAxis + zBins = veTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = idleVeTableTbl, idleVeTable, "Idle VE" + xyLabels = "RPM", "load" + xBins = idleVeRpmBins, RPMValue + yBins = idleVeLoadBins, veTableYAxis + zBins = idleVeTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims1_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims2_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims3_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims4_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims5_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims6_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims7_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims8_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims9_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims10_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims11_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims12_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims1_table + + table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims2_table + + table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims3_table + + table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims4_table + + table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims5_table + + table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims6_table + + table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims7_table + + table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims8_table + + table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims9_table + + table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims10_table + + table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims11_table + + table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims12_table + + table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 + xBins = mapEstimateRpmBins, RPMValue + yBins = mapEstimateTpsBins, TPSValue + zBins = mapEstimateTable + + table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 + topicHelp = "fuelHelp" + xBins = injPhaseRpmBins, RPMValue + yBins = injPhaseLoadBins, fuelingLoad + zBins = injectionPhase +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 + xBins = pedalToTpsRpmBins, RPMValue + yBins = pedalToTpsPedalBins, throttlePedalPosition + zBins = pedalToTpsTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1 + xBins = throttle2TrimRpmBins, RPMValue + yBins = throttle2TrimTpsBins, TPSValue + zBins = throttle2TrimTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + + table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1 + xBins = maxKnockRetardRpmBins, RPMValue + yBins = maxKnockRetardLoadBins, TPSValue + zBins = maxKnockRetardTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + +#if LAMBDA + table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 +#else + table = afrTableTbl, afrTableMap, "Target AFR Table", 1 +#endif + xBins = lambdaRpmBins, RPMValue + yBins = lambdaLoadBins, afrTableYAxis + zBins = lambdaTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 + xyLabels = "RPM", "" + xBins = lambdaMaxDeviationRpmBins, RPMValue + yBins = lambdaMaxDeviationLoadBins, afrTableYAxis + zBins = lambdaMaxDeviationTable + + table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 + xBins = iacPidMultRpmBins, RPMValue + yBins = iacPidMultLoadBins, fuelingLoad + zBins = iacPidMultTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = gppwm1Tbl, gppwm1Map, "GP#1", 1 + xyLabels = "RPM", "" + xBins = gppwm1_rpmBins, gppwmXAxis1 + yBins = gppwm1_loadBins, gppwmYAxis1 + zBins = gppwm1_table + + table = gppwm2Tbl, gppwm2Map, "GP#2", 1 + xyLabels = "RPM", "" + xBins = gppwm2_rpmBins, gppwmXAxis2 + yBins = gppwm2_loadBins, gppwmYAxis2 + zBins = gppwm2_table + + table = gppwm3Tbl, gppwm3Map, "GP#3", 1 + xyLabels = "RPM", "" + xBins = gppwm3_rpmBins, gppwmXAxis3 + yBins = gppwm3_loadBins, gppwmYAxis3 + zBins = gppwm3_table + + table = gppwm4Tbl, gppwm4Map, "GP#4", 1 + xyLabels = "RPM", "" + xBins = gppwm4_rpmBins, gppwmXAxis4 + yBins = gppwm4_loadBins, gppwmYAxis4 + zBins = gppwm4_table + + table = stagedInjectionTbl, stagedInjectionMap, "Staged Injection %", 1 + xyLabels = "RPM", "" + xBins = injectorStagingRpmBins, RPMValue + yBins = injectorStagingLoadBins, fuelingLoad + zBins = injectorStagingTable + + table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 + xBins = gearCountArray, tcuCurrentGear + yBins = solenoidCountArray, tcuCurrentGear + zBins = tcuSolenoidTable + xyLabels = "Solenoid", "Gear" + + table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1 + xBins = hpfpTargetRpmBins, RPMValue + yBins = hpfpTargetLoadBins, veTableYAxis + zBins = hpfpTarget + + table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1 + xBins = hpfpCompensationRpmBins, RPMValue + yBins = hpfpCompensationLoadBins, running_fuel + zBins = hpfpCompensation + + table = postCrankingEnrichmentTbl, postCrankingEnrichmentMap, "After start enrichment", 1 + xyLabels = "Engine Cycles", "Coolant Temp" + xBins = postCrankingDurationBins, revolutionCounterSinceStart + yBins = postCrankingCLTBins, coolant + zBins = postCrankingFactor + + +[GaugeConfigurations] + gaugeCategory = "Sync" +triggerVvt2FallGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +triggerVvt2RiseGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +currentEngineDecodedPhaseGauge = currentEngineDecodedPhase,"Sync: Engine Phase", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"Fuel: Total correction", "mult", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +running_timeSinceCrankingInSecsGauge = running_timeSinceCrankingInSecs,"running_ timeSinceCrankingInSecs", "secs", 0.0,600000.0, 0.0,600000.0, 0.0,600000.0, 0,0 +targetLambdaGauge = targetLambda,"Fuel: target lambda", "", 0.5,1.5, 0.5,1.5, 0.5,1.5, 2,2 +targetAFRGauge = targetAFR,"Fuel: target AFR", "ratio", 10.0,20.0, 10.0,20.0, 10.0,20.0, 2,2 + gaugeCategory = "Timing" +baseDwellGauge = baseDwell,"Ignition: base dwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"Ignition: coil charge time", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +dwellDurationAngleGauge = dwellDurationAngle,"Ignition: dwell duration", "deg", 0.0,120.0, 0.0,120.0, 0.0,120.0, 1,1 +cltTimingCorrectionGauge = cltTimingCorrection,"Ign: CLT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"Ign: IAT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"Idle: Timing adjustment", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"Ign: Lua timing add", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"Ign: Lua timing mult", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + gaugeCategory = "Boost Control" +luaTargetAddGauge = luaTargetAdd,"Boost: Lua target add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostOutputGauge = boostOutput,"Boost: Output", "percent", -100.0,100.0, -100.0,100.0, -100.0,100.0, 2,2 +luaTargetMultGauge = luaTargetMult,"Boost: Lua target mult", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +openLoopPartGauge = openLoopPart,"Boost: Open loop", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +luaOpenLoopAddGauge = luaOpenLoopAdd,"Boost: Lua open loop add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostControllerClosedLoopPartGauge = boostControllerClosedLoopPart,"Boost: Closed loop", "%", -50.0,50.0, -50.0,50.0, -50.0,50.0, 1,1 +boostControlTargetGauge = boostControlTarget,"Boost: Target", "kPa", 0.0,300.0, 0.0,300.0, 0.0,300.0, 1,1 + gaugeCategory = "ETB more" +idlePosition0Gauge = idlePosition0,"ETB: idlePosition0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +luaAdjustment0Gauge = luaAdjustment0,"ETB: luaAdjustment0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +m_wastegatePosition0Gauge = m_wastegatePosition0,"DC: wastegatePosition0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +etbDutyRateOfChange0Gauge = etbDutyRateOfChange0,"ETB duty rate of change0", "per", 0.0,25.0, 0.0,25.0, 0.0,25.0, 2,2 +etbDutyAverage0Gauge = etbDutyAverage0,"ETB average duty0", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounter0Gauge = etbTpsErrorCounter0,"ETB TPS error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounter0Gauge = etbPpsErrorCounter0,"ETB pedal error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio0,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex0,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio0,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex0,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallCounterGauge = triggerPrimaryFall,"triggerPrimaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerPrimaryRiseCounterGauge = triggerPrimaryRise,"triggerPrimaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryFallCounterGauge = triggerSecondaryFall,"triggerSecondaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryRiseCounterGauge = triggerSecondaryRise,"triggerSecondaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtFallCounterGauge = triggerVvtFall,"triggerVvtFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtRiseCounterGauge = triggerVvtRise,"triggerVvtRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2FallCounterGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2RiseCounterGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0 + +gaugeCategory = Test Bench + testBenchIterGauge = testBenchIter, "Test Bench Iterations", "count", -10, {benchTestCount + 10}, -5, 0, {benchTestCount}, {benchTestCount + 5}, 1, 1 + +gaugeCategory = LUA + luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + +gaugeCategory = Alternator PID + alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Boost PID + boostStatus_iTermGauge = boostStatus_iTerm,"Boost PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_dTermGauge = boostStatus_dTerm,"Boost PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_outputGauge = boostStatus_output,"Boost PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_errorGauge = boostStatus_error,"Boost PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_resetCounterGauge = boostStatus_resetCounter,"Boost PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Idle + idlePosSensGauge = idlePositionSensor, "Idle: Position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleAirValvePositionGauge = currentIdlePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Etb PID + etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_dTermGauge = etbStatus_dTerm,"ETB 1 PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_outputGauge = etbStatus_output,"ETB 1 PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_errorGauge = etbStatus_error,"ETB 1 PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_resetCounterGauge = etbStatus_resetCounter,"ETB 1 PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + + wgStatus_iTermGauge = wastegateDcStatus_iTerm,"WG PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_dTermGauge = wastegateDcStatus_dTerm,"WG PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_outputGauge = wastegateDcStatus_output,"WG PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_errorGauge = wastegateDcStatus_error,"WG PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_resetCounterGauge = wastegateDcStatus_resetCounter,"WG PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + +gaugeCategory = CAN + canReadCounterGauge = canReadCounter,"CAN: Rx", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteOkGauge = canWriteOk,"CAN: Tx OK", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteNotOkGauge = canWriteNotOk,"CAN: Tx err", "", 0,64000, 0,64000, 0,64000, 0,0 + +gaugeCategory = GDI + di_nextStartGauge = di_nextStart,"DI: next start", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;todo see comment in HpfpQuantity class definition + ;m_I_sum_percentGauge = m_I_sum_percent,"DI: m_I_sum_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;m_pressureTarget_kPaGauge = m_pressureTarget_kPa,"DI: m_pressureTarget_kPa", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + highFuelPressureGauge = highFuelPressure, "Fuel pressure (high)", "bar", 0, 200, 0, 0, 200, 200, 1, 0 + +gaugeCategory = ECU Status + warningCounterGauge = warningCounter, "Warning: counter", "", 0, 100, 0, 0, 100, 100, 0, 0 + lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode1Gauge = recentErrorCode1, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode2Gauge = recentErrorCode2, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode3Gauge = recentErrorCode3, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode4Gauge = recentErrorCode4, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode5Gauge = recentErrorCode5, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode6Gauge = recentErrorCode6, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode7Gauge = recentErrorCode7, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode8Gauge = recentErrorCode8, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 + timeSecondsGauge = seconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 + tuneCrc16Gauge = tuneCrc16, "Tune CRC16", "", 0, 64000, 0, 0, 64000, 64000, 0, 0 + +gaugeCategory = Debug + debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Sensors - Basic + RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + CLTGauge = coolant, "Coolant temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + IATGauge = intake, "Intake air temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + afr1Gauge = AFRValue, "Air/Fuel Ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr2Gauge = AFRValue2, "Air/Fuel Ratio 2", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale1Gauge = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale2Gauge = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + lambda1Gauge = lambdaValue, "Lambda", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + lambda2Gauge = lambdaValue2, "Lambda 2", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + VBattGauge = VBatt, "Battery", "V", 8, 21, 9, 10, 17, 19, 1, 1 + MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 + massAirFlowValueGa = mafMeasured, "MAF", "kg/h", 0, 50, -999, -999, 999, 999, 1, 1 + + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld +gaugeCategory = Sensors - Extra 1 + VSSGauge = vehicleSpeedKph, "Vehicle Speed", "kmh", 0, 200, 0, 5, 110, 130, 1, 1 + wheelSlipRatioGauge = wheelSlipRatio, "Wheel Slip Ratio", "", 0, 200, 0, 1, 3, 4, 3, 3 + turboSpeedGauge = turboSpeed, "Turbocharger Speed", "hz", 0, 200, 0, 1, 3, 4, 1, 1 + baroPressureGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + fuelTempGauge = fuelTemp, "Fuel Temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 + AuxL1Gauge = auxLinear1, "Aux linear #1", "", -100, 100, -100, -100, 100, 100, 2, 2 + AuxL2Gauge = auxLinear2, "Aux linear #2", "", -100, 100, -100, -100, 100, 100, 2, 2 + +gaugeCategory = Sensors - Extra 2 + accelerationLatGauge = accelerationLat, "Accel: Lateral", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationLonGauge = accelerationLon, "Accel: Longitudinal", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationVertGauge = accelerationVert, "Accel: Vertical", "acc", 0, 1.5, 0.5, 0.6, 1.4, 1.5, 3, 1 + gyroYawGauge = gyroYaw, "Gyro: Yaw rate", "acc", -100, 100, -100, -100, 100, 100, 3, 1 + egt1Gauge = egt1, "EGT#1", "C", 0, 2000 + egt2Gauge = egt2, "EGT#2", "C", 0, 2000 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 + wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + auxSpeed2Gauge = auxSpeed2, "Aux Freq Input2", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + +gaugeCategory = VVT + vvtPositionB1IGauge = vvtPositionB1I, "VVT: bank 1 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB1EGauge = vvtPositionB1E, "VVT: bank 1 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2IGauge = vvtPositionB2I, "VVT: bank 2 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2EGauge = vvtPositionB2E, "VVT: bank 2 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtTargets1Gauge = vvtTargets1, "VVT: bank 1 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets2Gauge = vvtTargets2, "VVT: bank 1 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets3Gauge = vvtTargets3, "VVT: bank 2 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets4Gauge = vvtTargets4, "VVT: bank 2 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtOutput1Gauge = vvtStatus1_output, "vvt: output 1", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput2Gauge = vvtStatus2_output, "vvt: output 2", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput3Gauge = vvtStatus3_output, "vvt: output 3", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput4Gauge = vvtStatus4_output, "vvt: output 4", "", 00, 100, -60, -60, 60, 60, 0, 0 + + +gaugeCategory = Ignition + sparkCutReasonGauge = sparkCutReason,"Spark Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + baseIgnAdvGauge = baseIgnitionAdvance, "Ignition: Timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + correctedIgnAdvGauge = correctedIgnitionAdvance, "Timing: ignition", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + dwellGauge = sparkDwell, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 + coilDutyCycleGauge = coilDutyCycle, "Ignition: coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1 + ignitionLoadGauge = ignitionLoad, "Ignition: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + +gaugeCategory = Acceleration Enrichment + deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 + +gaugeCategory = Fueling + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + tChargeGauge = sd_tCharge, "Fuel: Estimated charge temperature", "C", -40, 140, -15, 1, 95, 110, 1, 1 + baroCorrectionGauge = baroCorrection,"Fuel: Barometric pressure mult", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 + crankingFuelGauge = crankingFuel_fuel, "Fuel: cranking", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + iatCorrectionGauge = running_intakeTemperatureCoefficient, "Fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + cltCorrectionGauge = running_coolantTemperatureCoefficient, "Fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + injectorDutyCycleGauge=injectorDutyCycle, "Fuel: injector duty cycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + injectorDutyCycleStg2Gauge=injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2","%", 0, 120, 10, 10, 100, 100, 1, 1 + actualLastInjectionGauge = actualLastInjection, "Fuel: Last inj pulse width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + actualLastInjectionStg2Gauge = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = m_deadtime, "Fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = running_fuel, "Fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = running_baseFuel, "Fuel: base cycle mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "Fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "Fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "Fuel: Load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "Fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "Fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB: position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB: position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps1SplitGauge = tps1Split, "TPS1 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps2SplitGauge = tps2Split, "TPS2 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + accPedalSplitGauge = accPedalSplit, "Pedal Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB: Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "TCU: Desired Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + currentGearGauge = tcuCurrentGear, "Current Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + detectedGearGauge = detectedGear, "Detected Gear", "gear", 0, 10, 0, 0, 10, 10, 0, 0 + speedToRpmRatioGauge = speedToRpmRatio, "Gearbox Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + ISSGauge = ISSValue, "TCU: Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "TCU: Torque Converter Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4 + idealEngineTorqueGauge = idealEngineTorque, "idealEngineTorque", "", 0, 100, 0, 0, 100, 100, 4, 4 + +gaugeCategory = Knock + knock1Gauge = m_knockCyl1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock2Gauge = m_knockCyl2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock3Gauge = m_knockCyl3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock4Gauge = m_knockCyl4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock5Gauge = m_knockCyl5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock6Gauge = m_knockCyl6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock7Gauge = m_knockCyl7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock8Gauge = m_knockCyl8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock9Gauge = m_knockCyl9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock10Gauge = m_knockCyl10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock11Gauge = m_knockCyl11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock12Gauge = m_knockCyl12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockLevelGauge = m_knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockRetardGauge = m_knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = m_knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = correctedIgnAdvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + ; todo: do we want to drop this line since we have "config error" thing above? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode0 != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode0)}, white, black, yellow, black + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { isAboveAccelThreshold }, "No TPS accel", "TPS accel active", white, black, yellow, black + ; error codes + indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black + + ; Line 3 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black + indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black + indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black + indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black + ; not implemented + ; indicator = { ind_map_error}, "map", "map error", white, black, red, black + indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black + indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black + indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black + indicator = { etbRevLimitActive0 }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black + + indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, white, black, red, black + + ; indicator = { isInjectionEnabled && fuelCutReason == 0 }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, white, black, white, black + ; indicator = { isIgnitionEnabled && sparkCutReason == 0 }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, white, black, white, black + +; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error + +[KeyActions] + showPanel = spi, spiBuses + showPanel = con, connection + +; +; this section defines how we log output channels +; see [OutputChannels] +; +[Datalog] + ; Channel Label Type Format + entry = time, "Time", float, "%.3f" +entry = sd_present, "SD: Present", int, "%d" +entry = sd_logging_internal, "SD: Logging", int, "%d" +entry = triggerScopeReady, "triggerScopeReady", int, "%d" +entry = antilagTriggered, "antilagTriggered", int, "%d" +entry = isFanOn, "Radiator Fan", int, "%d" +entry = isO2HeaterOn, "isO2HeaterOn", int, "%d" +entry = checkEngine, "checkEngine", int, "%d" +entry = needBurn, "needBurn", int, "%d" +entry = sd_msd, "SD: MSD", int, "%d" +entry = isFan2On, "Radiator Fan 2", int, "%d" +entry = toothLogReady, "Tooth Logger Ready", int, "%d" +entry = isTpsError, "Error: TPS", int, "%d" +entry = isCltError, "Error: CLT", int, "%d" +entry = isMapError, "Error: MAP", int, "%d" +entry = isIatError, "Error: IAT", int, "%d" +entry = isTriggerError, "Error: Trigger", int, "%d" +entry = hasCriticalError, "Error: Active", int, "%d" +entry = isWarnNow, "Warning: Active", int, "%d" +entry = isPedalError, "Error: Pedal", int, "%d" +entry = isKnockChipOk, "isKnockChipOk", int, "%d" +entry = launchTriggered, "Launch Control Triggered", int, "%d" +entry = isTps2Error, "Error: TPS2", int, "%d" +entry = injectorFault, "Injector Fault", int, "%d" +entry = ignitionFault, "Ignition Fault", int, "%d" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = dfcoActive, "dfcoActive", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = internalMcuTemperature, "CPU Temperature", int, "%d" +entry = coolant, "CLT", float, "%.3f" +entry = intake, "IAT", float, "%.3f" +entry = auxTemp1, "auxTemp1", float, "%.3f" +entry = auxTemp2, "auxTemp2", float, "%.3f" +entry = TPSValue, "TPS", float, "%.3f" +entry = throttlePedalPosition, "Throttle pedal position", float, "%.3f" +entry = tpsADC, "tpsADC", int, "%d" +entry = rawMaf, "rawMaf", float, "%.3f" +entry = mafMeasured, "MAF", float, "%.3f" +entry = MAPValue, "MAP", float, "%.3f" +entry = baroPressure, "baroPressure", float, "%.3f" +entry = lambdaValue, "Lambda", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" +entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" +entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" +entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" +entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" +entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" +entry = revolutionCounterSinceStart, "revolutionCounterSinceStart", int, "%d" +entry = canReadCounter, "CAN: Rx", int, "%d" +entry = tpsAccelFuel, "Fuel: TPS AE add fuel ms", float, "%.3f" +entry = currentIgnitionMode, "Ignition: Mode", int, "%d" +entry = currentInjectionMode, "Fuel: Injection mode", int, "%d" +entry = coilDutyCycle, "Ignition: coil duty cycle", float, "%.3f" +entry = etbTarget, "ETB Target", float, "%.3f" +entry = etb1DutyCycle, "ETB: Duty", float, "%.3f" +entry = fuelTankLevel, "Fuel level", float, "%.3f" +entry = totalFuelConsumption, "Fuel: Total consumed", int, "%d" +entry = fuelFlowRate, "Fuel: Flow rate", float, "%.3f" +entry = TPS2Value, "TPS2", float, "%.3f" +entry = tuneCrc16, "Tune CRC16", int, "%d" +entry = veValue, "Fuel: VE", float, "%.3f" +entry = seconds, "Uptime", int, "%d" +entry = engineMode, "Engine Mode", int, "%d" +entry = firmwareVersion, "firmware", int, "%d" +entry = rawIdlePositionSensor, "rawIdlePositionSensor", float, "%.3f" +entry = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationLat, "Accel: Lateral", float, "%.3f" +entry = accelerationLon, "Accel: Longitudinal", float, "%.3f" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", int, "%d" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = tcuDesiredGear, "TCU: Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleStepperTargetPosition, "Idle: Stepper target position", int, "%d" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = totalTriggerErrorCounter, "Trigger Error Counter", int, "%d" +entry = orderingErrorCounter, "orderingErrorCounter", int, "%d" +entry = warningCounter, "Warning: counter", int, "%d" +entry = lastErrorCode, "Warning: last", int, "%d" +entry = recentErrorCode1, "recentErrorCode 1", int, "%d" +entry = recentErrorCode2, "recentErrorCode 2", int, "%d" +entry = recentErrorCode3, "recentErrorCode 3", int, "%d" +entry = recentErrorCode4, "recentErrorCode 4", int, "%d" +entry = recentErrorCode5, "recentErrorCode 5", int, "%d" +entry = recentErrorCode6, "recentErrorCode 6", int, "%d" +entry = recentErrorCode7, "recentErrorCode 7", int, "%d" +entry = recentErrorCode8, "recentErrorCode 8", int, "%d" +entry = debugFloatField1, "debugFloatField1", float, "%.3f" +entry = debugFloatField2, "debugFloatField2", float, "%.3f" +entry = debugFloatField3, "debugFloatField3", float, "%.3f" +entry = debugFloatField4, "debugFloatField4", float, "%.3f" +entry = debugFloatField5, "debugFloatField5", float, "%.3f" +entry = debugFloatField6, "debugFloatField6", float, "%.3f" +entry = debugFloatField7, "debugFloatField7", float, "%.3f" +entry = debugIntField1, "debugIntField1", int, "%d" +entry = debugIntField2, "debugIntField2", int, "%d" +entry = debugIntField3, "debugIntField3", int, "%d" +entry = debugIntField4, "debugIntField4", int, "%d" +entry = debugIntField5, "debugIntField5", int, "%d" +entry = egt1, "EGT 1", 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 = rawPpsSecondary, "rawPpsSecondary", float, "%.3f" +entry = idlePositionSensor, "Idle: Position sensor", float, "%.3f" +entry = AFRValue, "Air/Fuel Ratio", float, "%.3f" +entry = VssAcceleration, "Vss Accel", float, "%.3f" +entry = lambdaValue2, "Lambda 2", float, "%.3f" +entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.3f" +entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.3f" +entry = vvtPositionB2I, "VVT: bank 2 intake", float, "%.3f" +entry = vvtPositionB2E, "VVT: bank 2 exhaust", float, "%.3f" +entry = fuelPidCorrection1, "Fuel: Trim bank 1", float, "%.3f" +entry = fuelPidCorrection2, "Fuel: Trim bank 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = accelerationVert, "Accel: Vertical", float, "%.3f" +entry = gyroYaw, "Gyro: Yaw rate", float, "%.3f" +entry = vvtTargets1, "vvtTargets 1", int, "%d" +entry = vvtTargets2, "vvtTargets 2", int, "%d" +entry = vvtTargets3, "vvtTargets 3", int, "%d" +entry = vvtTargets4, "vvtTargets 4", int, "%d" +entry = turboSpeed, "Turbocharger Speed", int, "%d" +entry = ignitionAdvanceCyl1, "Ign: Timing Cyl 1", float, "%.3f" +entry = ignitionAdvanceCyl2, "Ign: Timing Cyl 2", float, "%.3f" +entry = ignitionAdvanceCyl3, "Ign: Timing Cyl 3", float, "%.3f" +entry = ignitionAdvanceCyl4, "Ign: Timing Cyl 4", float, "%.3f" +entry = ignitionAdvanceCyl5, "Ign: Timing Cyl 5", float, "%.3f" +entry = ignitionAdvanceCyl6, "Ign: Timing Cyl 6", float, "%.3f" +entry = ignitionAdvanceCyl7, "Ign: Timing Cyl 7", float, "%.3f" +entry = ignitionAdvanceCyl8, "Ign: Timing Cyl 8", float, "%.3f" +entry = ignitionAdvanceCyl9, "Ign: Timing Cyl 9", float, "%.3f" +entry = ignitionAdvanceCyl10, "Ign: Timing Cyl 10", float, "%.3f" +entry = ignitionAdvanceCyl11, "Ign: Timing Cyl 11", float, "%.3f" +entry = ignitionAdvanceCyl12, "Ign: Timing Cyl 12", float, "%.3f" +entry = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Ign: Cut Code", int, "%d" +entry = fuelCutReason, "Fuel: Cut Code", int, "%d" +entry = mafEstimate, "Air: Flow estimate", float, "%.3f" +entry = instantRpm, "sync: instant RPM", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = luaInvocationCounter, "Lua: Tick counter", int, "%d" +entry = luaLastCycleDuration, "Lua: Last tick duration", int, "%d" +entry = vssEdgeCounter, "vssEdgeCounter", int, "%d" +entry = issEdgeCounter, "issEdgeCounter", int, "%d" +entry = auxLinear1, "Aux linear #1", float, "%.3f" +entry = auxLinear2, "Aux linear #2", float, "%.3f" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "CAN: Tx OK", int, "%d" +entry = canWriteNotOk, "CAN: Tx err", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = triggerVvt2Fall, "triggerVvt2Fall", int, "%d" +entry = triggerVvt2Rise, "triggerVvt2Rise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "Ign: Multispark count", int, "%d" +entry = extiOverflowCount, "extiOverflowCount", int, "%d" +entry = alternatorStatus_pTerm, "alternatorStatus_pTerm", float, "%.3f" +entry = alternatorStatus_iTerm, "alternatorStatus_iTerm", float, "%.3f" +entry = alternatorStatus_dTerm, "alternatorStatus_dTerm", float, "%.3f" +entry = alternatorStatus_output, "alternatorStatus_output", float, "%.3f" +entry = alternatorStatus_error, "alternatorStatus_error", float, "%.3f" +entry = alternatorStatus_resetCounter, "alternatorStatus_resetCounter", int, "%d" +entry = idleStatus_pTerm, "idleStatus_pTerm", float, "%.3f" +entry = idleStatus_iTerm, "idleStatus_iTerm", float, "%.3f" +entry = idleStatus_dTerm, "idleStatus_dTerm", float, "%.3f" +entry = idleStatus_output, "idleStatus_output", float, "%.3f" +entry = idleStatus_error, "idleStatus_error", float, "%.3f" +entry = idleStatus_resetCounter, "idleStatus_resetCounter", int, "%d" +entry = etbStatus_pTerm, "etbStatus_pTerm", float, "%.3f" +entry = etbStatus_iTerm, "etbStatus_iTerm", float, "%.3f" +entry = etbStatus_dTerm, "etbStatus_dTerm", float, "%.3f" +entry = etbStatus_output, "etbStatus_output", float, "%.3f" +entry = etbStatus_error, "etbStatus_error", float, "%.3f" +entry = etbStatus_resetCounter, "etbStatus_resetCounter", int, "%d" +entry = boostStatus_pTerm, "boostStatus_pTerm", float, "%.3f" +entry = boostStatus_iTerm, "boostStatus_iTerm", float, "%.3f" +entry = boostStatus_dTerm, "boostStatus_dTerm", float, "%.3f" +entry = boostStatus_output, "boostStatus_output", float, "%.3f" +entry = boostStatus_error, "boostStatus_error", float, "%.3f" +entry = boostStatus_resetCounter, "boostStatus_resetCounter", int, "%d" +entry = wastegateDcStatus_pTerm, "wastegateDcStatus_pTerm", float, "%.3f" +entry = wastegateDcStatus_iTerm, "wastegateDcStatus_iTerm", float, "%.3f" +entry = wastegateDcStatus_dTerm, "wastegateDcStatus_dTerm", float, "%.3f" +entry = wastegateDcStatus_output, "wastegateDcStatus_output", float, "%.3f" +entry = wastegateDcStatus_error, "wastegateDcStatus_error", float, "%.3f" +entry = wastegateDcStatus_resetCounter, "wastegateDcStatus_resetCounter", int, "%d" +entry = vvtStatus1_pTerm, "vvtStatus1_pTerm", float, "%.3f" +entry = vvtStatus1_iTerm, "vvtStatus1_iTerm", float, "%.3f" +entry = vvtStatus1_dTerm, "vvtStatus1_dTerm", float, "%.3f" +entry = vvtStatus1_output, "vvtStatus1_output", float, "%.3f" +entry = vvtStatus1_error, "vvtStatus1_error", float, "%.3f" +entry = vvtStatus1_resetCounter, "vvtStatus1_resetCounter", int, "%d" +entry = vvtStatus2_pTerm, "vvtStatus2_pTerm", float, "%.3f" +entry = vvtStatus2_iTerm, "vvtStatus2_iTerm", float, "%.3f" +entry = vvtStatus2_dTerm, "vvtStatus2_dTerm", float, "%.3f" +entry = vvtStatus2_output, "vvtStatus2_output", float, "%.3f" +entry = vvtStatus2_error, "vvtStatus2_error", float, "%.3f" +entry = vvtStatus2_resetCounter, "vvtStatus2_resetCounter", int, "%d" +entry = vvtStatus3_pTerm, "vvtStatus3_pTerm", float, "%.3f" +entry = vvtStatus3_iTerm, "vvtStatus3_iTerm", float, "%.3f" +entry = vvtStatus3_dTerm, "vvtStatus3_dTerm", float, "%.3f" +entry = vvtStatus3_output, "vvtStatus3_output", float, "%.3f" +entry = vvtStatus3_error, "vvtStatus3_error", float, "%.3f" +entry = vvtStatus3_resetCounter, "vvtStatus3_resetCounter", int, "%d" +entry = vvtStatus4_pTerm, "vvtStatus4_pTerm", float, "%.3f" +entry = vvtStatus4_iTerm, "vvtStatus4_iTerm", float, "%.3f" +entry = vvtStatus4_dTerm, "vvtStatus4_dTerm", float, "%.3f" +entry = vvtStatus4_output, "vvtStatus4_output", float, "%.3f" +entry = vvtStatus4_error, "vvtStatus4_error", float, "%.3f" +entry = vvtStatus4_resetCounter, "vvtStatus4_resetCounter", int, "%d" +entry = auxSpeed1, "Aux speed 1", int, "%d" +entry = auxSpeed2, "Aux speed 2", int, "%d" +entry = ISSValue, "TCU: Input Shaft Speed", int, "%d" +entry = rawAnalogInput1, "rawAnalogInput 1", float, "%.3f" +entry = rawAnalogInput2, "rawAnalogInput 2", float, "%.3f" +entry = rawAnalogInput3, "rawAnalogInput 3", float, "%.3f" +entry = rawAnalogInput4, "rawAnalogInput 4", float, "%.3f" +entry = rawAnalogInput5, "rawAnalogInput 5", float, "%.3f" +entry = rawAnalogInput6, "rawAnalogInput 6", float, "%.3f" +entry = rawAnalogInput7, "rawAnalogInput 7", float, "%.3f" +entry = rawAnalogInput8, "rawAnalogInput 8", float, "%.3f" +entry = gppwmOutput1, "GPPWM Output 1", float, "%.3f" +entry = gppwmOutput2, "GPPWM Output 2", float, "%.3f" +entry = gppwmOutput3, "GPPWM Output 3", float, "%.3f" +entry = gppwmOutput4, "GPPWM Output 4", float, "%.3f" +entry = gppwmXAxis1, "gppwmXAxis 1", int, "%d" +entry = gppwmXAxis2, "gppwmXAxis 2", int, "%d" +entry = gppwmXAxis3, "gppwmXAxis 3", int, "%d" +entry = gppwmXAxis4, "gppwmXAxis 4", int, "%d" +entry = gppwmYAxis1, "gppwmYAxis 1", float, "%.3f" +entry = gppwmYAxis2, "gppwmYAxis 2", float, "%.3f" +entry = gppwmYAxis3, "gppwmYAxis 3", float, "%.3f" +entry = gppwmYAxis4, "gppwmYAxis 4", float, "%.3f" +entry = rawBattery, "rawBattery", float, "%.3f" +entry = ignBlendParameter1, "ignBlendParameter 1", float, "%.3f" +entry = ignBlendParameter2, "ignBlendParameter 2", float, "%.3f" +entry = ignBlendParameter3, "ignBlendParameter 3", float, "%.3f" +entry = ignBlendParameter4, "ignBlendParameter 4", float, "%.3f" +entry = ignBlendBias1, "ignBlendBias 1", float, "%.3f" +entry = ignBlendBias2, "ignBlendBias 2", float, "%.3f" +entry = ignBlendBias3, "ignBlendBias 3", float, "%.3f" +entry = ignBlendBias4, "ignBlendBias 4", float, "%.3f" +entry = ignBlendOutput1, "ignBlendOutput 1", float, "%.3f" +entry = ignBlendOutput2, "ignBlendOutput 2", float, "%.3f" +entry = ignBlendOutput3, "ignBlendOutput 3", float, "%.3f" +entry = ignBlendOutput4, "ignBlendOutput 4", float, "%.3f" +entry = veBlendParameter1, "veBlendParameter 1", float, "%.3f" +entry = veBlendParameter2, "veBlendParameter 2", float, "%.3f" +entry = veBlendParameter3, "veBlendParameter 3", float, "%.3f" +entry = veBlendParameter4, "veBlendParameter 4", float, "%.3f" +entry = veBlendBias1, "veBlendBias 1", float, "%.3f" +entry = veBlendBias2, "veBlendBias 2", float, "%.3f" +entry = veBlendBias3, "veBlendBias 3", float, "%.3f" +entry = veBlendBias4, "veBlendBias 4", float, "%.3f" +entry = veBlendOutput1, "veBlendOutput 1", float, "%.3f" +entry = veBlendOutput2, "veBlendOutput 2", float, "%.3f" +entry = veBlendOutput3, "veBlendOutput 3", float, "%.3f" +entry = veBlendOutput4, "veBlendOutput 4", float, "%.3f" +entry = boostOpenLoopBlendParameter1, "boostOpenLoopBlendParameter 1", float, "%.3f" +entry = boostOpenLoopBlendParameter2, "boostOpenLoopBlendParameter 2", float, "%.3f" +entry = boostOpenLoopBlendBias1, "boostOpenLoopBlendBias 1", float, "%.3f" +entry = boostOpenLoopBlendBias2, "boostOpenLoopBlendBias 2", float, "%.3f" +entry = boostOpenLoopBlendOutput1, "boostOpenLoopBlendOutput 1", int, "%d" +entry = boostOpenLoopBlendOutput2, "boostOpenLoopBlendOutput 2", int, "%d" +entry = boostClosedLoopBlendParameter1, "boostClosedLoopBlendParameter 1", float, "%.3f" +entry = boostClosedLoopBlendParameter2, "boostClosedLoopBlendParameter 2", float, "%.3f" +entry = boostClosedLoopBlendBias1, "boostClosedLoopBlendBias 1", float, "%.3f" +entry = boostClosedLoopBlendBias2, "boostClosedLoopBlendBias 2", float, "%.3f" +entry = boostClosedLoopBlendOutput1, "boostClosedLoopBlendOutput 1", float, "%.3f" +entry = boostClosedLoopBlendOutput2, "boostClosedLoopBlendOutput 2", float, "%.3f" +entry = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = triggerChannel1, "triggerChannel1", int, "%d" +entry = triggerChannel2, "triggerChannel2", int, "%d" +entry = vvtChannel1, "bank 1 intake cam input", int, "%d" +entry = vvtChannel2, "bank 1 exhaust cam input", int, "%d" +entry = vvtChannel3, "bank 2 intake cam input", int, "%d" +entry = vvtChannel4, "bank 2 exhaust cam input", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "Lua: Gauge 1", float, "%.3f" +entry = luaGauges2, "Lua: Gauge 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = vehicleSpeedKph, "Vehicle Speed", float, "%.3f" +entry = Gego, "Gego", float, "%.3f" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = oilTemp, "oilTemp", float, "%.3f" +entry = fuelTemp, "fuelTemp", float, "%.3f" +entry = ambientTemp, "ambientTemp", float, "%.3f" +entry = compressorDischargeTemp, "compressorDischargeTemp", float, "%.3f" +entry = compressorDischargePressure, "compressorDischargePressure", float, "%.3f" +entry = throttleInletPressure, "throttleInletPressure", float, "%.3f" +entry = ignitionOnTime, "ignitionOnTime", int, "%d" +entry = engineRunTime, "engineRunTime", int, "%d" +entry = distanceTraveled, "distanceTraveled", float, "%.3f" +entry = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", float, "%.3f" +entry = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", float, "%.3f" +entry = wheelSlipRatio, "wheelSlipRatio", float, "%.3f" +entry = ignitorDiagnostic1, "ignitorDiagnostic 1", int, "%d" +entry = ignitorDiagnostic2, "ignitorDiagnostic 2", int, "%d" +entry = ignitorDiagnostic3, "ignitorDiagnostic 3", int, "%d" +entry = ignitorDiagnostic4, "ignitorDiagnostic 4", int, "%d" +entry = ignitorDiagnostic5, "ignitorDiagnostic 5", int, "%d" +entry = ignitorDiagnostic6, "ignitorDiagnostic 6", int, "%d" +entry = ignitorDiagnostic7, "ignitorDiagnostic 7", int, "%d" +entry = ignitorDiagnostic8, "ignitorDiagnostic 8", int, "%d" +entry = ignitorDiagnostic9, "ignitorDiagnostic 9", int, "%d" +entry = ignitorDiagnostic10, "ignitorDiagnostic 10", int, "%d" +entry = ignitorDiagnostic11, "ignitorDiagnostic 11", int, "%d" +entry = ignitorDiagnostic12, "ignitorDiagnostic 12", int, "%d" +entry = injectorDiagnostic1, "injectorDiagnostic 1", int, "%d" +entry = injectorDiagnostic2, "injectorDiagnostic 2", int, "%d" +entry = injectorDiagnostic3, "injectorDiagnostic 3", int, "%d" +entry = injectorDiagnostic4, "injectorDiagnostic 4", int, "%d" +entry = injectorDiagnostic5, "injectorDiagnostic 5", int, "%d" +entry = injectorDiagnostic6, "injectorDiagnostic 6", int, "%d" +entry = injectorDiagnostic7, "injectorDiagnostic 7", int, "%d" +entry = injectorDiagnostic8, "injectorDiagnostic 8", int, "%d" +entry = injectorDiagnostic9, "injectorDiagnostic 9", int, "%d" +entry = injectorDiagnostic10, "injectorDiagnostic 10", int, "%d" +entry = injectorDiagnostic11, "injectorDiagnostic 11", int, "%d" +entry = injectorDiagnostic12, "injectorDiagnostic 12", int, "%d" +entry = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", float, "%.3f" +entry = injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2", float, "%.3f" +entry = totalFuelCorrection, "Fuel: Total correction", float, "%.3f" +entry = running_postCrankingFuelCorrection, "Fuel: Post cranking mult", float, "%.3f" +entry = running_intakeTemperatureCoefficient, "Fuel: IAT correction", float, "%.3f" +entry = running_coolantTemperatureCoefficient, "Fuel: CLT correction", float, "%.3f" +entry = running_timeSinceCrankingInSecs, "running_timeSinceCrankingInSecs", float, "%.3f" +entry = running_baseFuel, "Fuel: base cycle mass", float, "%.3f" +entry = running_fuel, "Fuel: running", float, "%.3f" +entry = afrTableYAxis, "afrTableYAxis", float, "%.3f" +entry = targetLambda, "Fuel: target lambda", float, "%.3f" +entry = targetAFR, "Fuel: target AFR", float, "%.3f" +entry = stoichiometricRatio, "Fuel: Stoich ratio", float, "%.3f" +entry = sdTcharge_coff, "sdTcharge_coff", float, "%.3f" +entry = sdAirMassInOneCylinder, "Air: Cylinder airmass", float, "%.3f" +entry = normalizedCylinderFilling, "Air: Normalized cyl filling", float, "%.3f" +entry = brokenInjector, "brokenInjector", int, "%d" +entry = idealEngineTorque, "idealEngineTorque", int, "%d" +entry = injectorHwIssue, "injectorHwIssue", int, "%d" +entry = baseDwell, "Ignition: base dwell", float, "%.3f" +entry = sparkDwell, "Ignition: coil charge time", float, "%.3f" +entry = dwellDurationAngle, "Ignition: dwell duration", float, "%.3f" +entry = cltTimingCorrection, "Ign: CLT correction", float, "%.3f" +entry = timingIatCorrection, "Ign: IAT correction", float, "%.3f" +entry = timingPidCorrection, "Idle: Timing adjustment", float, "%.3f" +entry = baseIgnitionAdvance, "Ignition: Timing", float, "%.3f" +entry = correctedIgnitionAdvance, "Timing: ignition", float, "%.3f" +entry = tractionAdvanceDrop, "Traction: timing correction", float, "%.3f" +entry = dwellVoltageCorrection, "Ign: Dwell voltage correction", float, "%.3f" +entry = luaTimingAdd, "Ign: Lua timing add", float, "%.3f" +entry = luaTimingMult, "Ign: Lua timing mult", float, "%.3f" +entry = luaIgnitionSkip, "Ign: Lua Spark Skip", int, "%d" +entry = m_knockLevel, "Knock: Current level", float, "%.3f" +entry = m_knockCyl1, "Knock: Cyl 1", int, "%d" +entry = m_knockCyl2, "Knock: Cyl 2", int, "%d" +entry = m_knockCyl3, "Knock: Cyl 3", int, "%d" +entry = m_knockCyl4, "Knock: Cyl 4", int, "%d" +entry = m_knockCyl5, "Knock: Cyl 5", int, "%d" +entry = m_knockCyl6, "Knock: Cyl 6", int, "%d" +entry = m_knockCyl7, "Knock: Cyl 7", int, "%d" +entry = m_knockCyl8, "Knock: Cyl 8", int, "%d" +entry = m_knockCyl9, "Knock: Cyl 9", int, "%d" +entry = m_knockCyl10, "Knock: Cyl 10", int, "%d" +entry = m_knockCyl11, "Knock: Cyl 11", int, "%d" +entry = m_knockCyl12, "Knock: Cyl 12", int, "%d" +entry = m_knockRetard, "Knock: Retard", float, "%.3f" +entry = m_knockThreshold, "Knock: Threshold", float, "%.3f" +entry = m_knockCount, "Knock: Count", int, "%d" +entry = m_maximumRetard, "Knock: Max retard", float, "%.3f" +entry = tcuCurrentGear, "Current Gear", int, "%d" +entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f" +entry = lastShiftTime, "lastShiftTime", float, "%.3f" +entry = tcu_currentRange, "TCU: Current Range", int, "%d" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = m_requested_pump, "GDI: HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "GDI: requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "GDI: percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = m_pressureTarget_kPa, "GDI: target pressure", float, "%.3f" +entry = nextLobe, "GDI: nextLobe", float, "%.3f" +entry = di_nextStart, "GDI: next start", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "Fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "Fuel: Injector pressure ratio", float, "%.3f" +entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" +entry = combinedConditions, "combinedConditions", int, "%d" +entry = launchActivatePinState, "launchActivatePinState", int, "%d" +entry = isLaunchPreCondition, "isLaunchPreCondition", int, "%d" +entry = isLaunchCondition, "isLaunchCondition", int, "%d" +entry = isSwitchActivated, "isSwitchActivated", int, "%d" +entry = isClutchActivated, "isClutchActivated", int, "%d" +entry = isValidInputPin, "isValidInputPin", int, "%d" +entry = activateSwitchCondition, "activateSwitchCondition", int, "%d" +entry = rpmCondition, "rpmCondition", int, "%d" +entry = speedCondition, "speedCondition", int, "%d" +entry = tpsCondition, "tpsCondition", int, "%d" +entry = isAntilagCondition, "isAntilagCondition", int, "%d" +entry = ALSMinRPMCondition, "ALSMinRPMCondition", int, "%d" +entry = ALSMaxRPMCondition, "ALSMaxRPMCondition", int, "%d" +entry = ALSMinCLTCondition, "ALSMinCLTCondition", int, "%d" +entry = ALSMaxCLTCondition, "ALSMaxCLTCondition", int, "%d" +entry = ALSMaxThrottleIntentCondition, "ALSMaxThrottleIntentCondition", int, "%d" +entry = isALSSwitchActivated, "isALSSwitchActivated", int, "%d" +entry = ALSActivatePinState, "ALSActivatePinState", int, "%d" +entry = ALSSwitchCondition, "ALSSwitchCondition", int, "%d" +entry = ALSTimerCondition, "ALSTimerCondition", int, "%d" +entry = fuelALSCorrection, "fuelALSCorrection", float, "%.3f" +entry = timingALSCorrection, "timingALSCorrection", float, "%.3f" +entry = timingALSSkip, "timingALSSkip", float, "%.3f" +entry = isTpsInvalid, "isTpsInvalid", int, "%d" +entry = m_shouldResetPid, "m_shouldResetPid", int, "%d" +entry = isBelowClosedLoopThreshold, "isBelowClosedLoopThreshold", int, "%d" +entry = isNotClosedLoop, "isNotClosedLoop", int, "%d" +entry = isZeroRpm, "isZeroRpm", int, "%d" +entry = hasInitBoost, "hasInitBoost", int, "%d" +entry = rpmTooLow, "rpmTooLow", int, "%d" +entry = tpsTooLow, "tpsTooLow", int, "%d" +entry = mapTooLow, "mapTooLow", int, "%d" +entry = isPlantValid, "isPlantValid", int, "%d" +entry = isBoostControlled, "isBoostControlled", int, "%d" +entry = luaTargetAdd, "Boost: Lua target add", float, "%.3f" +entry = boostOutput, "Boost: Output", float, "%.3f" +entry = luaTargetMult, "Boost: Lua target mult", float, "%.3f" +entry = openLoopPart, "Boost: Open loop", float, "%.3f" +entry = luaOpenLoopAdd, "Boost: Lua open loop add", float, "%.3f" +entry = boostControllerClosedLoopPart, "Boost: Closed loop", float, "%.3f" +entry = boostControlTarget, "Boost: Target", float, "%.3f" +entry = acButtonState, "AC switch", int, "%d" +entry = m_acEnabled, "AC enabled", int, "%d" +entry = engineTooSlow, "AC engine too slow", int, "%d" +entry = engineTooFast, "AC engine too fast", int, "%d" +entry = noClt, "AC no CLT", int, "%d" +entry = engineTooHot, "AC engine too hot", int, "%d" +entry = tpsTooHigh, "AC tps too high", int, "%d" +entry = isDisabledByLua, "AC disabled by Lua", int, "%d" +entry = acCompressorState, "AC compressor on", int, "%d" +entry = latest_usage_ac_control, "AC latest activity", int, "%d" +entry = acSwitchLastChangeTimeMs, "acSwitchLastChangeTimeMs", int, "%d" +entry = cranking0, "cranking0", int, "%d" +entry = notRunning0, "notRunning0", int, "%d" +entry = disabledWhileEngineStopped0, "disabledWhileEngineStopped0", int, "%d" +entry = brokenClt0, "brokenClt0", int, "%d" +entry = enabledForAc0, "enabledForAc0", int, "%d" +entry = hot0, "hot0", int, "%d" +entry = cold0, "cold0", int, "%d" +entry = disabledBySpeed0, "disabledBySpeed0", int, "%d" +;entry = cranking1, "cranking1", int, "%d" +;entry = notRunning1, "notRunning1", int, "%d" +;entry = disabledWhileEngineStopped1, "disabledWhileEngineStopped1", int, "%d" +;entry = brokenClt1, "brokenClt1", int, "%d" +;entry = enabledForAc1, "enabledForAc1", int, "%d" +;entry = hot1, "hot1", int, "%d" +;entry = cold1, "cold1", int, "%d" +;entry = disabledBySpeed1, "disabledBySpeed1", int, "%d" +entry = isPrime, "isPrime", int, "%d" +entry = engineTurnedRecently, "engineTurnedRecently", int, "%d" +entry = isFuelPumpOn, "isFuelPumpOn", int, "%d" +entry = ignitionOn, "ignitionOn", int, "%d" +entry = isBenchTest, "isBenchTest", int, "%d" +entry = hasIgnitionVoltage, "hasIgnitionVoltage", int, "%d" +entry = mainRelayState, "mainRelayState", int, "%d" +entry = delayedShutoffRequested, "delayedShutoffRequested", int, "%d" +entry = lua_fuelAdd, "Lua: Fuel add", float, "%.3f" +entry = lua_fuelMult, "Lua: Fuel mult", float, "%.3f" +entry = lua_clutchUpState, "lua_clutchUpState", int, "%d" +entry = lua_brakePedalState, "lua_brakePedalState", int, "%d" +entry = lua_acRequestState, "lua_acRequestState", int, "%d" +entry = lua_luaDisableEtb, "lua_luaDisableEtb", int, "%d" +entry = lua_luaIgnCut, "lua_luaIgnCut", int, "%d" +entry = sd_tCharge, "Air: Charge temperature estimate", float, "%.3f" +entry = sd_tChargeK, "Air: Charge temperature estimate K", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Fuel: cranking CLT mult", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "Fuel: cranking TPS mult", float, "%.3f" +entry = crankingFuel_durationCoefficient, "Fuel: cranking duration mult", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Cranking cycle mass", float, "%.3f" +entry = baroCorrection, "Fuel: Barometric pressure mult", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "Clutch: up", int, "%d" +entry = clutchDownState, "Clutch: down", int, "%d" +entry = brakePedalState, "Brake switch", int, "%d" +entry = startStopState, "startStopState", int, "%d" +entry = smartChipState, "smartChipState", int, "%d" +entry = smartChipRestartCounter, "smartChipRestartCounter", int, "%d" +entry = smartChipAliveCounter, "smartChipAliveCounter", int, "%d" +entry = startStopPhysicalState, "startStopPhysicalState", int, "%d" +entry = acrActive, "Harley ACR Active", int, "%d" +entry = acrEngineMovedRecently, "acrEngineMovedRecently", int, "%d" +entry = heaterControlEnabled, "heaterControlEnabled", int, "%d" +entry = luaDigitalState0, "luaDigitalState0", int, "%d" +entry = luaDigitalState1, "luaDigitalState1", int, "%d" +entry = luaDigitalState2, "luaDigitalState2", int, "%d" +entry = luaDigitalState3, "luaDigitalState3", int, "%d" +entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d" +entry = egtValue1, "egtValue1", float, "%.3f" +entry = egtValue2, "egtValue2", float, "%.3f" +entry = luaSoftSparkSkip, "luaSoftSparkSkip", float, "%.3f" +entry = luaHardSparkSkip, "luaHardSparkSkip", float, "%.3f" +entry = tractionControlSparkSkip, "tractionControlSparkSkip", float, "%.3f" +entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d" +entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d" +entry = globalSparkCounter, "Ign: Spark counter", int, "%d" +entry = fuelingLoad, "Fuel: Load", float, "%.3f" +entry = ignitionLoad, "Ignition: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "Fuel: TPS AE from", float, "%.3f" +entry = tpsTo, "Fuel: TPS AE to", float, "%.3f" +entry = deltaTps, "Fuel: TPS AE change", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "Fuel: TPS AE Active", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Fuel: TPS AE: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Fuel: TPS AE: below threshold", int, "%d" +entry = tooShort, "Fuel: TPS AE: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "Sync: total cams front counter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Sync: Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "Sync: trigger angle error", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = mapCamPrevToothAngle, "Sync: MAP: prev angle", float, "%.3f" +entry = isDecodingMapCam, "isDecodingMapCam", int, "%d" +entry = crankSynchronizationCounter0, "sync: Crank sync counter0", int, "%d" +entry = vvtSyncGapRatio0, "vvtSyncGapRatio0", float, "%.3f" +entry = vvtToothDurations00, "vvtToothDurations00", int, "%d" +entry = vvtCurrentPosition0, "vvtCurrentPosition0", float, "%.3f" +entry = vvtToothPosition10, "vvtToothPosition 10", float, "%.3f" +entry = vvtToothPosition20, "vvtToothPosition 20", float, "%.3f" +entry = vvtToothPosition30, "vvtToothPosition 30", float, "%.3f" +entry = vvtToothPosition40, "vvtToothPosition 40", float, "%.3f" +entry = triggerSyncGapRatio0, "Trigger Sync Latest Ratio0", float, "%.3f" +entry = triggerStateIndex0, "triggerStateIndex0", int, "%d" +entry = vvtStateIndex0, "vvtStateIndex0", int, "%d" +;entry = crankSynchronizationCounter1, "sync: Crank sync counter1", int, "%d" +;entry = vvtSyncGapRatio1, "vvtSyncGapRatio1", float, "%.3f" +;entry = vvtToothDurations01, "vvtToothDurations01", int, "%d" +;entry = vvtCurrentPosition1, "vvtCurrentPosition1", float, "%.3f" +;entry = vvtToothPosition11, "vvtToothPosition 11", float, "%.3f" +;entry = vvtToothPosition21, "vvtToothPosition 21", float, "%.3f" +;entry = vvtToothPosition31, "vvtToothPosition 31", float, "%.3f" +;entry = vvtToothPosition41, "vvtToothPosition 41", float, "%.3f" +;entry = triggerSyncGapRatio1, "Trigger Sync Latest Ratio1", float, "%.3f" +;entry = triggerStateIndex1, "triggerStateIndex1", int, "%d" +;entry = vvtStateIndex1, "vvtStateIndex1", int, "%d" +;entry = crankSynchronizationCounter2, "sync: Crank sync counter2", int, "%d" +;entry = vvtSyncGapRatio2, "vvtSyncGapRatio2", float, "%.3f" +;entry = vvtToothDurations02, "vvtToothDurations02", int, "%d" +;entry = vvtCurrentPosition2, "vvtCurrentPosition2", float, "%.3f" +;entry = vvtToothPosition12, "vvtToothPosition 12", float, "%.3f" +;entry = vvtToothPosition22, "vvtToothPosition 22", float, "%.3f" +;entry = vvtToothPosition32, "vvtToothPosition 32", float, "%.3f" +;entry = vvtToothPosition42, "vvtToothPosition 42", float, "%.3f" +;entry = triggerSyncGapRatio2, "Trigger Sync Latest Ratio2", float, "%.3f" +;entry = triggerStateIndex2, "triggerStateIndex2", int, "%d" +;entry = vvtStateIndex2, "vvtStateIndex2", int, "%d" +;entry = crankSynchronizationCounter3, "sync: Crank sync counter3", int, "%d" +;entry = vvtSyncGapRatio3, "vvtSyncGapRatio3", float, "%.3f" +;entry = vvtToothDurations03, "vvtToothDurations03", int, "%d" +;entry = vvtCurrentPosition3, "vvtCurrentPosition3", float, "%.3f" +;entry = vvtToothPosition13, "vvtToothPosition 13", float, "%.3f" +;entry = vvtToothPosition23, "vvtToothPosition 23", float, "%.3f" +;entry = vvtToothPosition33, "vvtToothPosition 33", float, "%.3f" +;entry = vvtToothPosition43, "vvtToothPosition 43", float, "%.3f" +;entry = triggerSyncGapRatio3, "Trigger Sync Latest Ratio3", float, "%.3f" +;entry = triggerStateIndex3, "triggerStateIndex3", int, "%d" +;entry = vvtStateIndex3, "vvtStateIndex3", int, "%d" +;entry = crankSynchronizationCounter4, "sync: Crank sync counter4", int, "%d" +;entry = vvtSyncGapRatio4, "vvtSyncGapRatio4", float, "%.3f" +;entry = vvtToothDurations04, "vvtToothDurations04", int, "%d" +;entry = vvtCurrentPosition4, "vvtCurrentPosition4", float, "%.3f" +;entry = vvtToothPosition14, "vvtToothPosition 14", float, "%.3f" +;entry = vvtToothPosition24, "vvtToothPosition 24", float, "%.3f" +;entry = vvtToothPosition34, "vvtToothPosition 34", float, "%.3f" +;entry = vvtToothPosition44, "vvtToothPosition 44", float, "%.3f" +;entry = triggerSyncGapRatio4, "Trigger Sync Latest Ratio4", float, "%.3f" +;entry = triggerStateIndex4, "triggerStateIndex4", int, "%d" +;entry = vvtStateIndex4, "vvtStateIndex4", int, "%d" +entry = camResyncCounter, "sync: Phase Re-Sync Counter", int, "%d" +entry = m_hasSynchronizedPhase, "sync: Known Engine Phase", int, "%d" +entry = wallFuelCorrection, "fuel wallwetting injection time", float, "%.3f" +entry = wallFuel, "Fuel on the wall", float, "%.3f" +entry = idleState, "idleState", int, "%d" +entry = currentIdlePosition, "Idle: Position", float, "%.3f" +entry = baseIdlePosition, "idle: base value", float, "%.3f" +entry = idleClosedLoop, "Idle: Closed loop", float, "%.3f" +entry = iacByTpsTaper, "idle: iacByTpsTaper portion", float, "%.3f" +entry = throttlePedalUpState, "idle: throttlePedalUpState", int, "%d" +entry = mightResetPid, "idle: mightResetPid", int, "%d" +entry = shouldResetPid, "Idle: shouldResetPid", int, "%d" +entry = wasResetPid, "Idle: wasResetPid", int, "%d" +entry = mustResetPid, "Idle: mustResetPid", int, "%d" +entry = isCranking, "Idle: cranking", int, "%d" +entry = isIacTableForCoasting, "isIacTableForCoasting", int, "%d" +entry = notIdling, "notIdling", int, "%d" +entry = needReset, "Idle: reset", int, "%d" +entry = isInDeadZone, "Idle: dead zone", int, "%d" +entry = isBlipping, "isBlipping", int, "%d" +entry = useClosedLoop, "useClosedLoop", int, "%d" +entry = badTps, "badTps", int, "%d" +entry = looksLikeRunning, "looksLikeRunning", int, "%d" +entry = looksLikeCoasting, "looksLikeCoasting", int, "%d" +entry = looksLikeCrankToIdle, "looksLikeCrankToIdle", int, "%d" +entry = isIdleCoasting, "Idle: coasting", int, "%d" +entry = isIdleClosedLoop, "Idle: Closed loop active", int, "%d" +entry = idleTarget, "Idle: Target RPM", int, "%d" +entry = targetRpmByClt, "Idle: Target RPM base", int, "%d" +entry = targetRpmAc, "Idle: Target A/C RPM", int, "%d" +entry = iacByRpmTaper, "idle: iacByRpmTaper portion", float, "%.3f" +entry = luaAdd, "idle: Lua Adder", float, "%.3f" +entry = idlePosition0, "ETB: idlePosition0", float, "%.3f" +entry = trim0, "ETB: trim0", float, "%.3f" +entry = luaAdjustment0, "ETB: luaAdjustment0", float, "%.3f" +entry = m_wastegatePosition0, "DC: wastegatePosition0", float, "%.3f" +entry = etbFeedForward0, "etbFeedForward0", float, "%.3f" +entry = etbIntegralError0, "etbIntegralError0", float, "%.3f" +entry = etbCurrentTarget0, "etbCurrentTarget0", float, "%.3f" +entry = etbCurrentAdjustedTarget0, "etbCurrentAdjustedTarget0", float, "%.3f" +entry = etbRevLimitActive0, "etbRevLimitActive0", int, "%d" +entry = jamDetected0, "jamDetected0", int, "%d" +entry = etbDutyRateOfChange0, "ETB duty rate of change0", float, "%.3f" +entry = etbDutyAverage0, "ETB average duty0", float, "%.3f" +entry = etbTpsErrorCounter0, "ETB TPS error counter0", int, "%d" +entry = etbPpsErrorCounter0, "ETB pedal error counter0", int, "%d" +entry = etbErrorCode0, "etbErrorCode0", int, "%d" +entry = tcEtbDrop0, "tcEtbDrop0", int, "%d" +entry = jamTimer0, "ETB jam timer0", float, "%.3f" +;entry = idlePosition1, "ETB: idlePosition1", float, "%.3f" +;entry = trim1, "ETB: trim1", float, "%.3f" +;entry = luaAdjustment1, "ETB: luaAdjustment1", float, "%.3f" +;entry = m_wastegatePosition1, "DC: wastegatePosition1", float, "%.3f" +;entry = etbFeedForward1, "etbFeedForward1", float, "%.3f" +;entry = etbIntegralError1, "etbIntegralError1", float, "%.3f" +;entry = etbCurrentTarget1, "etbCurrentTarget1", float, "%.3f" +;entry = etbCurrentAdjustedTarget1, "etbCurrentAdjustedTarget1", float, "%.3f" +;entry = etbRevLimitActive1, "etbRevLimitActive1", int, "%d" +;entry = jamDetected1, "jamDetected1", int, "%d" +;entry = etbDutyRateOfChange1, "ETB duty rate of change1", float, "%.3f" +;entry = etbDutyAverage1, "ETB average duty1", float, "%.3f" +;entry = etbTpsErrorCounter1, "ETB TPS error counter1", int, "%d" +;entry = etbPpsErrorCounter1, "ETB pedal error counter1", int, "%d" +;entry = etbErrorCode1, "etbErrorCode1", int, "%d" +;entry = tcEtbDrop1, "tcEtbDrop1", int, "%d" +;entry = jamTimer1, "ETB jam timer1", float, "%.3f" +entry = faultCode0, "WBO: Fault code0", int, "%d" +entry = heaterDuty0, "WBO: Heater duty0", int, "%d" +entry = pumpDuty0, "WBO: Pump duty0", int, "%d" +entry = tempC0, "WBO: Temperature0", int, "%d" +entry = nernstVoltage0, "WBO: Nernst Voltage0", float, "%.3f" +entry = esr0, "WBO: ESR0", int, "%d" +;entry = faultCode1, "WBO: Fault code1", int, "%d" +;entry = heaterDuty1, "WBO: Heater duty1", int, "%d" +;entry = pumpDuty1, "WBO: Pump duty1", int, "%d" +;entry = tempC1, "WBO: Temperature1", int, "%d" +;entry = nernstVoltage1, "WBO: Nernst Voltage1", float, "%.3f" +;entry = esr1, "WBO: ESR1", int, "%d" +entry = dcOutput0, "DC: output0", float, "%.3f" +entry = isEnabled0_int, "DC: en0", int, "%d" +entry = isEnabled0, "isEnabled0", int, "%d" +entry = value0, "ETB: SENT value0", int, "%d" +entry = value1, "ETB: SENT value1", int, "%d" +entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" +entry = lambdaCurrentlyGood, "lambdaCurrentlyGood", int, "%d" +entry = lambdaMonitorCut, "lambdaMonitorCut", int, "%d" +entry = lambdaTimeSinceGood, "lambdaTimeSinceGood", float, "%.3f" + + +[Menu] + +menuDialog = main +; see #1653 +; menu = "Data Logging" +; subMenu = std_ms3SdConsole, "Browse / Import SD Card" + + menu = "&Base &Engine" + subMenu = engineChars, "Base engine" + subMenu = limitsAndFallback, "Limits and fallbacks" + subMenu = triggerConfiguration, "Trigger" + subMenu = trigger_advanced, "Advanced Trigger" + subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = std_separator + subMenu = energySystems, "Battery and alternator" + subMenu = std_separator + + # Digital outputs + subMenu = outputsDialog, "Outputs" + subMenu = acSettings, "Air Conditioning" + subMenu = statusLeds, "Status LEDs" + + menu = "Fuel" + # basic + subMenu = injectorConfig, "Injection configuration" + subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} + + subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} + subMenu = stagedInjectionOutputs, "Staged injection outputs", 0, {isInjectionEnabled && enableStagedInjection} + subMenu = stagedInjectionTbl, "Staged injection % table", 0, {isInjectionEnabled && enableStagedInjection} + + groupMenu = "Cylinder fuel trims" + groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" + groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2" + groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3" + groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4" + groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5" + groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6" + groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7" + groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8" + groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9" + groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10" + groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11" + groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12" + + subMenu = std_separator + + # Air mass model + subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} + subMenu = veTableMap, "VE Table", 0, {isInjectionEnabled} + + groupMenu = "VE blend tables" + groupChildMenu = veBlend1Cfg, "VE blend 1 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend1Table, "VE blend table 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 } + groupChildMenu = veBlend2Cfg, "VE blend 2 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend2Table, "VE blend table 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 } + groupChildMenu = veBlend3Cfg, "VE blend 3 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend3Table, "VE blend table 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 } + groupChildMenu = veBlend4Cfg, "VE blend 4 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend4Table, "VE blend table 4", 0, { isInjectionEnabled && veBlends4_blendParameter != 0 } + + subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} + subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == 0} + subMenu = mapEstimateTableTbl, "MAP estimate table" + subMenu = std_separator + + # Fuel model +#if LAMBDA + subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} +#else + subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} +#endif + subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} + subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} + subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} + subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Injector model + subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Accel enrichment + subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} + subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} + subMenu = tpsTspRpmCorrection, "TPS/TPS extra fuelRPM correction", 0, {isInjectionEnabled == 1} + + groupMenu = "Wall wetting AE" + groupChildMenu = wwTauCurves, "Evap time", 0, { complexWallModel != 0 } + groupChildMenu = wwBetaCurves, "Impact fraction", 0, { complexWallModel != 0 } + + menu = "Ignition" + subMenu = ignitionSettings, "Ignition settings" + subMenu = std_separator + + subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = ignitionTableMap, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = cltTimingCorrCurve, "Ign CLT correction", 0, {isIgnitionEnabled == 1} + subMenu = ignitionIatCorrTableTbl, "Ign IAT correction", 0, {isIgnitionEnabled == 1} + subMenu = std_separator + + subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} + groupMenu = "Ignition blend tables" + groupChildMenu = ignAdder1Cfg, "Ignition blend 1 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder1Table, "Ignition blend table 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 } + groupChildMenu = ignAdder2Cfg, "Ignition blend 2 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder2Table, "Ignition blend table 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 } + groupChildMenu = ignAdder3Cfg, "Ignition blend 3 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder3Table, "Ignition blend table 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 } + groupChildMenu = ignAdder4Cfg, "Ignition blend 4 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder4Table, "Ignition blend table 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 } + groupMenu = "Cylinder ign trims" + groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1" + groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2" + groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3" + groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4" + groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5" + groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6" + groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7" + groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8" + groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9" + groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10" + groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11" + groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12" + subMenu = std_separator + + subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + + menu = "&Cranking" + subMenu = crankingDialog, "Cranking settings" + subMenu = postCrankingEnrichmentTbl,"After-start enrichment" + subMenu = primingFuelPulsePanel, "Priming pulse" + subMenu = std_separator + + subMenu = crankingCltCurve, "Fuel CLT multiplier" + subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != 0 && flexCranking } + subMenu = crankingDurationCurve, "Fuel duration multiplier" + subMenu = crankingTpsCurve, "Fuel TPS multiplier" + subMenu = std_separator + + subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1} + subMenu = std_separator + + subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1} + + menu = "&Idle" + subMenu = idleSettings, "Idle settings" + subMenu = idlehw, "Idle hardware" + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" + subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting == 1} + subMenu = std_separator + subMenu = idleVeTableTbl, "Idle VE", 0, {useSeparateVeForIdle == 1} + subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} + + menu = "&Advanced" + subMenu = smLaunchControl, "Launch Control" + subMenu = ignitionCylExtra, "Cylinder offsets", 0 + + subMenu = std_separator + subMenu = boostDialog, "Boost control" + subMenu = boostOpenLoopDialog, "Boost control open loop", { isBoostControlEnabled } + subMenu = boostOpenLoopGearAdderDialog, "Boost control open loop gear adder", { isBoostControlEnabled } + subMenu = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + + groupMenu = "Boost blend tables" + groupChildMenu = boostOpenBlend1Cfg, "Open loop 1 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend1Table, "Open loop 1 adder", { isBoostControlEnabled && boostOpenLoopBlends1_blendParameter != 0 } + groupChildMenu = boostOpenBlend2Cfg, "Open loop 2 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend2Table, "Open loop 2 adder", { isBoostControlEnabled && boostOpenLoopBlends2_blendParameter != 0 } + groupChildMenu = boostClosedBlend1Cfg, "Closed loop 1 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 1 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends1_blendParameter != 0 } + groupChildMenu = boostClosedBlend2Cfg, "Closed loop 2 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 2 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends2_blendParameter != 0 } + + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 4 || etbFunctions2 == 4 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 && vvtPins1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 && vvtPins2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + + subMenu = std_separator + subMenu = tcuControls, "Transmission Settings (alpha)" + subMenu = gearControls, "Gear Selection Settings (alpha)" + subMenu = inputSpeedSensor, "Input Speed Sensor (alpha)" + subMenu = tcuSolenoidTableTbl, "Shift Solenoids (alpha)" + subMenu = tccCurves, "TCC Lock/Unlock Speed (alpha)" + subMenu = pcPerGearDialog, "Line Pressure Per Gear (alpha)" + subMenu = pcPerShiftDialog, "Line Pressure Per Shift (alpha)" + subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed (alpha)" + subMenu = rangeMatrixDialog, "Range Selector Input Matrix (alpha)" + + 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 = speedSensor, "Vehicle speed sensor" + subMenu = oilPressureSensor, "Oil pressure" + subMenu = oilTempSensor, "Oil temp sensor" + subMenu = fuelPressureSensor, "Fuel pressure" + subMenu = fuelTempSensor, "Fuel temp sensor" + subMenu = fuelLevelDialog, "Fuel level sensor" + subMenu = ambientTempSensor, "Ambient temp sensor" + subMenu = compressorDischargeTemperature, "Compressor discharge temp" + subMenu = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = spiBuses, "SPI Buses" + subMenu = spiDevices, "SPI Devices" + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = std_separator + + subMenu = std_separator + + subMenu = allPins1, "Full pinout 1/3" + subMenu = allPins2, "Full pinout 2/3" + subMenu = allPins3_1_and_2 "Full pinout 3/3" + 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 = tractionEtbTableTbl, "Traction Control ETB Drop" + subMenu = tractionTimingTableTbl, "Traction Control Timing Adjustment" + subMenu = tractionIgnitionSkipDialog, "Traction Control Skip Ignition" + subMenu = std_separator + + + ; TODO: move lambdaProtection to the fuel menu once ready + ; https://github.com/FOME-Tech/fome-fw/issues/75 + subMenu = lambdaProtection, "Lambda Protection", 0, { isInjectionEnabled } + subMenu = std_separator + + subMenu = kLineDialog, "K-Line" + subMenu = parkingLot, "Experimental/Broken" + subMenu = parkingLot2, "Experimental 2" + subMenu = harleyAcr, "HD" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + subMenu = throttleEffectiveArea, "Throttle effective area" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = tcu_controllerDialog, "tcu_controller" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_control0Dialog, "fan_control0" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_state0Dialog, "trigger_state0" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttle0Dialog, "electronic_throttle0" + subMenu = wideband_state0Dialog, "wideband_state0" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + subMenu = vvtDialog, "vvt" + subMenu = lambda_monitorDialog, "lambda_monitor" + + + +[ControllerCommands] +; commandName = command1, command2, commandn... +; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. +; This does not include any resultant protocol envelope data, only the response data itself. + +; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands +; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition +; and may create error messages. +; It is expected that these commands would not typically alter any ram mapped to a Constant. + +; +; see TS_IO_TEST_COMMAND in firmware code +; + +cmd_test_spk1 = "Z\x00\x12\x00\x01" +cmd_test_spk2 = "Z\x00\x12\x00\x02" +cmd_test_spk3 = "Z\x00\x12\x00\x03" +cmd_test_spk4 = "Z\x00\x12\x00\x04" +cmd_test_spk5 = "Z\x00\x12\x00\x05" +cmd_test_spk6 = "Z\x00\x12\x00\x06" +cmd_test_spk7 = "Z\x00\x12\x00\x07" +cmd_test_spk8 = "Z\x00\x12\x00\x08" +cmd_test_spk9 = "Z\x00\x12\x00\x09" +cmd_test_spk10 = "Z\x00\x12\x00\x0a" +cmd_test_spk11 = "Z\x00\x12\x00\x0b" +cmd_test_spk12 = "Z\x00\x12\x00\x0c" + +cmd_test_lua1 = "Z\x00\x20\x00\x01" +cmd_test_lua2 = "Z\x00\x20\x00\x02" +cmd_test_lua3 = "Z\x00\x20\x00\x03" +cmd_test_lua4 = "Z\x00\x20\x00\x04" +cmd_test_lua5 = "Z\x00\x20\x00\x05" +cmd_test_lua6 = "Z\x00\x20\x00\x06" +cmd_test_lua7 = "Z\x00\x20\x00\x07" +cmd_test_lua8 = "Z\x00\x20\x00\x08" + +cmd_test_inj1 = "Z\x00\x13\x00\x01" +cmd_test_inj2 = "Z\x00\x13\x00\x02" +cmd_test_inj3 = "Z\x00\x13\x00\x03" +cmd_test_inj4 = "Z\x00\x13\x00\x04" +cmd_test_inj5 = "Z\x00\x13\x00\x05" +cmd_test_inj6 = "Z\x00\x13\x00\x06" +cmd_test_inj7 = "Z\x00\x13\x00\x07" +cmd_test_inj8 = "Z\x00\x13\x00\x08" +cmd_test_inj9 = "Z\x00\x13\x00\x09" +cmd_test_inj10 = "Z\x00\x13\x00\x0a" +cmd_test_inj11 = "Z\x00\x13\x00\x0b" +cmd_test_inj12 = "Z\x00\x13\x00\x0c" + +cmd_test_cancel = "Z\x00\x16\x00\x0f" + +cmd_test_sol1 = "Z\x00\x19\x00\x01" +cmd_test_sol2 = "Z\x00\x19\x00\x02" +cmd_test_sol3 = "Z\x00\x19\x00\x03" +cmd_test_sol4 = "Z\x00\x19\x00\x04" +cmd_test_sol5 = "Z\x00\x19\x00\x05" +cmd_test_sol6 = "Z\x00\x19\x00\x06" + +cmd_test_main_relay = "Z\x00\x16\x00\x00" +cmd_test_fuel_pump = "Z\x00\x16\x00\x01" +cmd_test_starter_relay = "Z\x00\x16\x00\x02" +cmd_test_starter_disable_relay = "Z\x00\x16\x00\x03" +cmd_test_ac_relay = "Z\x00\x16\x00\x06" +cmd_test_fan_1 = "Z\x00\x16\x00\x04" +cmd_test_fan_2 = "Z\x00\x16\x00\x05" +cmd_test_check_engine_light = "Z\x00\x16\x00\x07" +cmd_test_idle_valve = "Z\x00\x16\x00\x08" +cmd_test_second_idle_valve = "Z\x00\x16\x00\x0e" +cmd_test_hpfp_valve = "Z\x00\x16\x00\x09" +cmd_test_acr_valve = "Z\x00\x16\x00\x1c" +cmd_test_acr2_valve = "Z\x00\x16\x00\x1d" +cmd_test_vvt0_valve = "Z\x00\x16\x00\x10" +cmd_test_vvt1_valve = "Z\x00\x16\x00\x11" +cmd_test_vvt2_valve = "Z\x00\x16\x00\x12" +cmd_test_vvt3_valve = "Z\x00\x16\x00\x13" + +cmd_calibrate_tps_1_closed = "Z\x00\x14\x00\x02" +cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03" +cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04" +cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05" +cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06" +cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07" +cmd_tle8888_init = "Z\x00\x14\x00\x08" +cmd_mc33810_init = "Z\x00\x14\x00\x14" +cmd_write_config = "Z\x00\x14\x00\x0a" +cmd_etb_reset = "Z\x00\x14\x00\x0b" +cmd_etb_autotune = "Z\x00\x14\x00\x0C" +cmd_enable_self_stim = "Z\x00\x14\x00\x0D" +cmd_etb_auto_calibrate = "Z\x00\x14\x00\x0E" +cmd_disable_self_stim = "Z\x00\x14\x00\x0F" +cmd_etb_autotune_stop = "Z\x00\x14\x00\x10" +cmd_etb_auto_calibrate_2 = "Z\x00\x14\x00\x11" +cmd_wideband_firmare_update = "Z\x00\x14\x00\x12" +cmd_enable_ext_stim = "Z\x00\x14\x00\x13" +cmd_burn_without_flash = "Z\x00\x14\x00\x15" + +cmd_set_wideband_idx_0 = "Z\x00\x15\x00\x00" +cmd_set_wideband_idx_1 = "Z\x00\x15\x00\x01" + +cmd_stop_engine = "Z\x00\x79\x00\x00" + +; reboot ECU +cmd_reset_controller = "Z\x00\xbb\x00\x00" +; jump to DFU mode +cmd_dfu = "Z\x00\xba\x00\x00" +; jump to OpenBLT bootloader +cmd_openblt = "Z\x00\xbc\x00\x00" + +; See 'executeTSCommand' in firmware source code + +cmd_set_engine_type_HONDA_OBD1 = "Z\x00\x1e\x00\x42" + +cmd_set_engine_type_microRusEFI_VW_B6 = "Z\x00\x1e\x00\x3e" +cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "Z\x00\x1e\x00\x17" +cmd_set_engine_type_MRE_SECONDARY_CAN = "Z\x00\x1e\x00\x04" + +; cmd_set_engine_type_ = "Z\x00\x1e@@engine_type_e_ +cmd_set_engine_type_MITSUBISHI_3A92 = "Z\x00\x1e\x00\x0c" +cmd_set_engine_type_MITSUBISHI_4G93 = "Z\x00\x1e\x00\x10" +cmd_set_engine_type_TOYOTA_1NZ_FE = "Z\x00\x1e\x00\x0d" + +cmd_set_engine_type_MRE_M111 = "Z\x00\x1e\x00\x44" + +cmd_set_engine_type_MAZDA_MIATA_NA6 = "Z\x00\x1e\x00\x22" +cmd_set_engine_type_MAZDA_MIATA_NA94 = "Z\x00\x1e\x00\x50" + +cmd_set_engine_type_MAZDA_MIATA_NB2_36 = "Z\x00\x1e\x00\x56" + +cmd_set_engine_type_hellen_nissan_121_4 = "Z\x00\x1e\x00\x54" +cmd_set_engine_type_hellen_nissan_121_6 = "Z\x00\x1e\x00\x48" +cmd_set_engine_type_hellen_nissan_121_8 = "Z\x00\x1e\x00\x55" + +cmd_set_engine_type_hellen_121_vag_4 = "Z\x00\x1e\x00\x47" +cmd_set_engine_type_hellen_121_vag_5 = "Z\x00\x1e\x00\x4d" +cmd_set_engine_type_hellen_121_vag_v6 = "Z\x00\x1e\x00\x4e" +cmd_set_engine_type_hellen_121_vag_vr6 = "Z\x00\x1e\x00\x4f" +cmd_set_engine_type_hellen_121_vag_8 = "Z\x00\x1e\x00\x51" + +cmd_set_engine_type_hellen_128_merc_4 = "Z\x00\x1e\x00\x24" +cmd_set_engine_type_hellen_128_merc_6 = "Z\x00\x1e\x00\x58" +cmd_set_engine_type_hellen_128_merc_8 = "Z\x00\x1e\x00\x59" + +cmd_set_engine_type_hellen_coupe_bk1 = "Z\x00\x1e\x00\x52" +cmd_set_engine_type_hellen_coupe_bk2 = "Z\x00\x1e\x00\x5f" + +; MIATA_NA6_MAP = 41 +cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29" + +cmd_set_engine_type_FUEL_BENCH = "Z\x00\x1e\x00\x0f" + + + + + + + +; ETB_BENCH_ENGINE = 58 +cmd_set_engine_type_etb_test = "Z\x00\x1e\x00\x3A" +; ETB_BENCH_ENGINE = 59 +cmd_set_engine_type_8888_test = "Z\x00\x1e\x00\x3B" +cmd_set_engine_type_default = "Z\x00\x1f\x00\x00" + +[UserDefined] +indicatorPanel = fuel_computerIndicatorPanel, 2 + indicator = {injectorHwIssue}, "injectorHwIssue No", "injectorHwIssue Yes" + +dialog = fuel_computerDialog, "fuel_computer" + panel = fuel_computerIndicatorPanel + liveGraph = fuel_computer_1_Graph, "Graph", South + graphLine = totalFuelCorrection + graphLine = running_postCrankingFuelCorrection + graphLine = running_intakeTemperatureCoefficient + graphLine = running_coolantTemperatureCoefficient + liveGraph = fuel_computer_2_Graph, "Graph", South + graphLine = running_timeSinceCrankingInSecs + graphLine = running_baseFuel + graphLine = running_fuel + graphLine = afrTableYAxis + liveGraph = fuel_computer_3_Graph, "Graph", South + graphLine = targetLambda + graphLine = targetAFR + graphLine = stoichiometricRatio + graphLine = sdTcharge_coff + liveGraph = fuel_computer_4_Graph, "Graph", South + graphLine = sdAirMassInOneCylinder + graphLine = normalizedCylinderFilling + graphLine = brokenInjector + graphLine = unused88 + liveGraph = fuel_computer_5_Graph, "Graph", South + graphLine = idealEngineTorque + +indicatorPanel = ignition_stateIndicatorPanel, 2 + indicator = {luaIgnitionSkip}, "luaIgnitionSkip No", "luaIgnitionSkip Yes" + +dialog = ignition_stateDialog, "ignition_state" + panel = ignition_stateIndicatorPanel + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellDurationAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = baseIgnitionAdvance + graphLine = correctedIgnitionAdvance + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = tractionAdvanceDrop + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockLevel + graphLine = m_knockCyl1 + graphLine = m_knockCyl2 + graphLine = m_knockCyl3 + liveGraph = knock_controller_2_Graph, "Graph", South + graphLine = m_knockCyl4 + graphLine = m_knockCyl5 + graphLine = m_knockCyl6 + graphLine = m_knockCyl7 + liveGraph = knock_controller_3_Graph, "Graph", South + graphLine = m_knockCyl8 + graphLine = m_knockCyl9 + graphLine = m_knockCyl10 + graphLine = m_knockCyl11 + liveGraph = knock_controller_4_Graph, "Graph", South + graphLine = m_knockCyl12 + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + liveGraph = knock_controller_5_Graph, "Graph", South + graphLine = m_maximumRetard + + +dialog = tcu_controllerDialog, "tcu_controller" + liveGraph = tcu_controller_1_Graph, "Graph", South + graphLine = tcuCurrentGear + graphLine = tcRatio + graphLine = lastShiftTime + graphLine = tcu_currentRange + +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = m_pressureTarget_kPa + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = nextLobe + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchPreCondition}, "isLaunchPreCondition No", "isLaunchPreCondition Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + graphLine = timingALSSkip + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + indicator = {isPlantValid}, "isPlantValid No", "isPlantValid Yes" + indicator = {isBoostControlled}, "isBoostControlled No", "isBoostControlled Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = acButtonState + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_control0IndicatorPanel, 2 + indicator = {cranking0}, "cranking No", "cranking Yes" + indicator = {notRunning0}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped0}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt0}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc0}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot0}, "hot No", "hot Yes" + indicator = {cold0}, "cold No", "cold Yes" + indicator = {disabledBySpeed0}, "disabledBySpeed No", "disabledBySpeed Yes" + +dialog = fan_control0Dialog, "fan_control0" + panel = fan_control0IndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {startStopPhysicalState}, "startStopPhysicalState No", "startStopPhysicalState Yes" + indicator = {acrActive}, "acrActive No", "acrActive Yes" + indicator = {acrEngineMovedRecently}, "acrEngineMovedRecently No", "acrEngineMovedRecently Yes" + indicator = {heaterControlEnabled}, "heaterControlEnabled No", "heaterControlEnabled Yes" + indicator = {luaDigitalState0}, "luaDigitalState0 No", "luaDigitalState0 Yes" + indicator = {luaDigitalState1}, "luaDigitalState1 No", "luaDigitalState1 Yes" + indicator = {luaDigitalState2}, "luaDigitalState2 No", "luaDigitalState2 Yes" + indicator = {luaDigitalState3}, "luaDigitalState3 No", "luaDigitalState3 Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = baroCorrection + graphLine = hellenBoardId + graphLine = clutchUpState + graphLine = clutchDownState + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = brakePedalState + graphLine = startStopState + graphLine = smartChipState + graphLine = smartChipRestartCounter + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = smartChipAliveCounter + graphLine = startStopStateToggleCounter + graphLine = egtValue1 + graphLine = egtValue2 + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = luaSoftSparkSkip + graphLine = luaHardSparkSkip + graphLine = tractionControlSparkSkip + graphLine = desiredRpmLimit + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = fuelInjectionCounter + graphLine = globalSparkCounter + graphLine = fuelingLoad + graphLine = ignitionLoad + liveGraph = engine_state_8_Graph, "Graph", South + graphLine = veTableYAxis + +indicatorPanel = tps_accel_stateIndicatorPanel, 2 + indicator = {isAboveAccelThreshold}, "isAboveAccelThreshold No", "isAboveAccelThreshold Yes" + indicator = {isBelowDecelThreshold}, "isBelowDecelThreshold No", "isBelowDecelThreshold Yes" + indicator = {isTimeToResetAccumulator}, "isTimeToResetAccumulator No", "isTimeToResetAccumulator Yes" + indicator = {isFractionalEnrichment}, "isFractionalEnrichment No", "isFractionalEnrichment Yes" + indicator = {belowEpsilon}, "belowEpsilon No", "belowEpsilon Yes" + indicator = {tooShort}, "tooShort No", "tooShort Yes" + +dialog = tps_accel_stateDialog, "tps_accel_state" + panel = tps_accel_stateIndicatorPanel + liveGraph = tps_accel_state_1_Graph, "Graph", South + graphLine = tpsFrom + graphLine = tpsTo + graphLine = deltaTps + graphLine = extraFuel + liveGraph = tps_accel_state_2_Graph, "Graph", South + graphLine = valueFromTable + graphLine = fractionalInjFuel + graphLine = accumulatedValue + graphLine = maxExtraPerCycle + liveGraph = tps_accel_state_3_Graph, "Graph", South + graphLine = maxExtraPerPeriod + graphLine = maxInjectedPerPeriod + graphLine = cycleCnt + +indicatorPanel = trigger_centralIndicatorPanel, 2 + indicator = {isDecodingMapCam}, "isDecodingMapCam No", "isDecodingMapCam Yes" + +dialog = trigger_centralDialog, "trigger_central" + panel = trigger_centralIndicatorPanel + liveGraph = trigger_central_1_Graph, "Graph", South + graphLine = hwEventCounters1 + graphLine = hwEventCounters2 + graphLine = hwEventCounters3 + graphLine = hwEventCounters4 + liveGraph = trigger_central_2_Graph, "Graph", South + graphLine = hwEventCounters5 + graphLine = hwEventCounters6 + graphLine = vvtCamCounter + graphLine = mapVvt_MAP_AT_SPECIAL_POINT + liveGraph = trigger_central_3_Graph, "Graph", South + graphLine = mapVvt_MAP_AT_DIFF + graphLine = mapVvt_MAP_AT_CYCLE_COUNT + graphLine = mapVvt_map_peak + graphLine = currentEngineDecodedPhase + liveGraph = trigger_central_4_Graph, "Graph", South + graphLine = triggerToothAngleError + graphLine = triggerIgnoredToothCount + graphLine = mapCamPrevToothAngle + + +dialog = trigger_state0Dialog, "trigger_state0" + liveGraph = trigger_state0_1_Graph, "Graph", South + graphLine = crankSynchronizationCounter0 + graphLine = vvtSyncGapRatio0 + graphLine = vvtToothDurations00 + graphLine = vvtCurrentPosition0 + liveGraph = trigger_state0_2_Graph, "Graph", South + graphLine = vvtToothPosition10 + graphLine = vvtToothPosition20 + graphLine = vvtToothPosition30 + graphLine = vvtToothPosition40 + liveGraph = trigger_state0_3_Graph, "Graph", South + graphLine = triggerSyncGapRatio0 + graphLine = triggerStateIndex0 + graphLine = vvtStateIndex0 + +indicatorPanel = trigger_state_primaryIndicatorPanel, 2 + indicator = {m_hasSynchronizedPhase}, "m_hasSynchronizedPhase No", "m_hasSynchronizedPhase Yes" + +dialog = trigger_state_primaryDialog, "trigger_state_primary" + panel = trigger_state_primaryIndicatorPanel + liveGraph = trigger_state_primary_1_Graph, "Graph", South + graphLine = camResyncCounter + + +dialog = wall_fuel_stateDialog, "wall_fuel_state" + liveGraph = wall_fuel_state_1_Graph, "Graph", South + graphLine = wallFuelCorrection + graphLine = wallFuel + +indicatorPanel = idle_stateIndicatorPanel, 2 + indicator = {mightResetPid}, "mightResetPid No", "mightResetPid Yes" + indicator = {shouldResetPid}, "shouldResetPid No", "shouldResetPid Yes" + indicator = {wasResetPid}, "wasResetPid No", "wasResetPid Yes" + indicator = {mustResetPid}, "mustResetPid No", "mustResetPid Yes" + indicator = {isCranking}, "isCranking No", "isCranking Yes" + indicator = {isIacTableForCoasting}, "isIacTableForCoasting No", "isIacTableForCoasting Yes" + indicator = {notIdling}, "notIdling No", "notIdling Yes" + indicator = {needReset}, "needReset No", "needReset Yes" + indicator = {isInDeadZone}, "isInDeadZone No", "isInDeadZone Yes" + indicator = {isBlipping}, "isBlipping No", "isBlipping Yes" + indicator = {useClosedLoop}, "useClosedLoop No", "useClosedLoop Yes" + indicator = {badTps}, "badTps No", "badTps Yes" + indicator = {looksLikeRunning}, "looksLikeRunning No", "looksLikeRunning Yes" + indicator = {looksLikeCoasting}, "looksLikeCoasting No", "looksLikeCoasting Yes" + indicator = {looksLikeCrankToIdle}, "looksLikeCrankToIdle No", "looksLikeCrankToIdle Yes" + indicator = {isIdleCoasting}, "isIdleCoasting No", "isIdleCoasting Yes" + indicator = {isIdleClosedLoop}, "isIdleClosedLoop No", "isIdleClosedLoop Yes" + +dialog = idle_stateDialog, "idle_state" + panel = idle_stateIndicatorPanel + liveGraph = idle_state_1_Graph, "Graph", South + graphLine = idleState + graphLine = currentIdlePosition + graphLine = baseIdlePosition + graphLine = idleClosedLoop + liveGraph = idle_state_2_Graph, "Graph", South + graphLine = iacByTpsTaper + graphLine = throttlePedalUpState + graphLine = idleTarget + graphLine = targetRpmByClt + liveGraph = idle_state_3_Graph, "Graph", South + graphLine = targetRpmAc + graphLine = iacByRpmTaper + graphLine = luaAdd + +indicatorPanel = electronic_throttle0IndicatorPanel, 2 + indicator = {etbRevLimitActive0}, "etbRevLimitActive No", "etbRevLimitActive Yes" + indicator = {jamDetected0}, "jamDetected No", "jamDetected Yes" + +dialog = electronic_throttle0Dialog, "electronic_throttle0" + panel = electronic_throttle0IndicatorPanel + liveGraph = electronic_throttle0_1_Graph, "Graph", South + graphLine = idlePosition0 + graphLine = trim0 + graphLine = luaAdjustment0 + graphLine = m_wastegatePosition0 + liveGraph = electronic_throttle0_2_Graph, "Graph", South + graphLine = etbFeedForward0 + graphLine = etbIntegralError0 + graphLine = etbCurrentTarget0 + graphLine = etbCurrentAdjustedTarget0 + liveGraph = electronic_throttle0_3_Graph, "Graph", South + graphLine = etbDutyRateOfChange0 + graphLine = etbDutyAverage0 + graphLine = etbTpsErrorCounter0 + graphLine = etbPpsErrorCounter0 + liveGraph = electronic_throttle0_4_Graph, "Graph", South + graphLine = etbErrorCode0 + graphLine = tcEtbDrop0 + graphLine = jamTimer0 + + +dialog = wideband_state0Dialog, "wideband_state0" + liveGraph = wideband_state0_1_Graph, "Graph", South + graphLine = faultCode0 + graphLine = heaterDuty0 + graphLine = pumpDuty0 + graphLine = tempC0 + liveGraph = wideband_state0_2_Graph, "Graph", South + graphLine = nernstVoltage0 + graphLine = esr0 + +indicatorPanel = dc_motorsIndicatorPanel, 2 + indicator = {isEnabled0}, "isEnabled0 No", "isEnabled0 Yes" + +dialog = dc_motorsDialog, "dc_motors" + panel = dc_motorsIndicatorPanel + liveGraph = dc_motors_1_Graph, "Graph", South + graphLine = dcOutput0 + graphLine = isEnabled0_int + + +dialog = sent_stateDialog, "sent_state" + liveGraph = sent_state_1_Graph, "Graph", South + graphLine = value0 + graphLine = value1 + graphLine = errorRate + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + +indicatorPanel = lambda_monitorIndicatorPanel, 2 + indicator = {lambdaCurrentlyGood}, "lambdaCurrentlyGood No", "lambdaCurrentlyGood Yes" + indicator = {lambdaMonitorCut}, "lambdaMonitorCut No", "lambdaMonitorCut Yes" + +dialog = lambda_monitorDialog, "lambda_monitor" + panel = lambda_monitorIndicatorPanel + liveGraph = lambda_monitor_1_Graph, "Graph", South + graphLine = lambdaTimeSinceGood + + + + dialog = scriptTable1TblSettings, "", yAxis + field = "Name", scriptTableName1 + panel = scriptTable1Tbl + + dialog = scriptTable2TblSettings, "", yAxis + field = "Name", scriptTableName2 + panel = scriptTable2Tbl + + dialog = scriptTable3TblSettings, "", yAxis + field = "Name", scriptTableName3 + panel = scriptTable3Tbl + + dialog = scriptTable4TblSettings, "", yAxis + field = "Name", scriptTableName4 + panel = scriptTable4Tbl + + dialog = scriptCurve1Settings, "", yAxis + field = "Name", scriptCurveName1 + panel = scriptCurve1 + + dialog = scriptCurve2Settings, "", yAxis + field = "Name", scriptCurveName2 + panel = scriptCurve2 + + dialog = scriptCurve3Settings, "", yAxis + field = "Name", scriptCurveName3 + panel = scriptCurve3 + + dialog = scriptCurve4Settings, "", yAxis + field = "Name", scriptCurveName4 + panel = scriptCurve4 + + dialog = scriptCurve5Settings, "", yAxis + field = "Name", scriptCurveName5 + panel = scriptCurve5 + + dialog = scriptCurve6Settings, "", yAxis + field = "Name", scriptCurveName6 + panel = scriptCurve6 + + dialog = tChargeRpmTpsSettings, "RPM+TPS mode" + field = "We use these coefficients to approximate air/fuel charge" + field = "temperature based on CLT and IAT, depending on RPM and TPM" + field = "Low RPM/Low TPS", tChargeMinRpmMinTps + field = "Low RPM/High TPS", tChargeMinRpmMaxTps + field = "High RPM/Low TPS", tChargeMaxRpmMinTps + field = "High RPM/High TPS", tChargeMaxRpmMaxTps + + dialog = tChargeGeneralSettings, "" + field = "Mode", tChargeMode + field = "#These two parameters limit the estimate's rate of change" + field = "Increase rate limit", tChargeAirIncrLimit + field = "Decrease rate limit", tChargeAirDecrLimit + field = "" + + dialog = tChargeAirInterpSettings, "Airflow interpolation mode" + field = "Low flow coefficient", tChargeAirCoefMin + field = "High flow coefficient", tChargeAirCoefMax + field = "Max air flow", tChargeAirFlowMax + + dialog = tChargeSettings, "Charge temperature estimation" + panel = tChargeGeneralSettings + panel = tChargeRpmTpsSettings, { tChargeMode == 0} + panel = tChargeAirInterpSettings, { tChargeMode == 1} + panel = tchargeCurve, { tChargeMode == 2 } + + dialog = baseInjection, "Injection" + field = "Enabled", isInjectionEnabled + field = "Mode", injectionMode, {isInjectionEnabled == 1} + field = "#Batch injection with individual wiring" + field = "Alpha-N uses IAT density correction", alphaNUseIat, { fuelAlgorithm == 2 } + field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } + field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } + field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled } + + dialog = ignitionOutputs, "Ignition Outputs" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Ignition Output Mode", ignitionPinMode, {isIgnitionEnabled == 1} + field = "Ignition Output 1", ignitionPins1, {isIgnitionEnabled == 1} + ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says + ; this section is auto-generated by FiringOrderTSLogic.java + field = "Ignition Output 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 29)))} + field = "Ignition Output 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 27) || (firingOrder == 28)))} + field = "Ignition Output 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 26) || (firingOrder == 27) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 23) || (firingOrder == 26) || (firingOrder == 30) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 29) || (firingOrder == 30)))} + field = "Ignition Output 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 22) || (firingOrder == 28)))} + field = "Ignition Output 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19) || (firingOrder == 26) || (firingOrder == 28) || (firingOrder == 32)))} + field = "Ignition Output 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))} + field = "Ignition Output 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))} + field = "Ignition Output 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))} + field = "Ignition Output 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18) || (firingOrder == 22)))} + + + dialog = ignitionBasic, "" + field = "Enabled", isIgnitionEnabled + field = "Mode", ignitionMode, {isIgnitionEnabled} + field = "Maximum timing advance", maximumIgnitionTiming, {isIgnitionEnabled} + field = "Minimum timing advance", minimumIgnitionTiming, {isIgnitionEnabled} + field = "Individually wired Wasted Spark", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2 } + field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} + field = "#Use fixed timing while validating with a timing gun" + field = "Timing Mode", timingMode, {isIgnitionEnabled} + field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} + + dialog = ignitionSettings, "", xAxis + panel = ignitionBasic + panel = ignitionOutputs, { uiMode == 0 || uiMode == 1 } + + dialog = baseEngineConfig, "Engine Configuration" + field = "Number of cylinders", cylindersCount + field = "Displacement", displacement + field = "Firing order", firingOrder + field = "Vehicle weight", vehicleWeight + + dialog = engineMetadata, "Engine Metadata" + field = "#These metadata are used by rusEFI Online" + field = "Engine Make", engineMake + field = "Manufacturer Engine Code", engineCode + field = "Vehicle Name", vehicleName + field = "Compression Ratio", compressionRatio + field = "Forced Induction?", isForcedInduction + + dialog = trigger_primary, "Primary Trigger" + topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "What kind of engine", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Primary Edge", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Secondary Edge", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "2JZ Position", camDecoder2jzPosition, 1, {vvtMode1 == 2} + field = "2JZ Precision", camDecoder2jzPrecision, 1, {vvtMode1 == 2} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" + field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } + field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } + field = "Cam Edge Select", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" + field = "Override well known trigger gaps", overrideTriggerGaps + field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "First gap to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Override well known VVT gaps", overrideVvtTriggerGaps + field = gapVvtTrackingLengthOverride, gapVvtTrackingLengthOverride, { overrideVvtTriggerGaps == 1 } + field = "First VVT gap from", triggerVVTGapOverrideFrom1 + field = "First VVT gap to", triggerVVTGapOverrideTo1 + field = "Second VVT gap from", triggerVVTGapOverrideFrom2 + field = "Second VVT gap to", triggerVVTGapOverrideTo2 + field = "VVT gap #3 from", triggerVVTGapOverrideFrom3 + field = "VVT gap #3 to", triggerVVTGapOverrideTo3 + field = "VVT gap #4 from", triggerVVTGapOverrideFrom4 + field = "VVT gap #4 to", triggerVVTGapOverrideTo4 + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } + +; Engine->Injection Settings + dialog = injChars, "Injector Settings", yAxis + field = "Injector flow", injector_flow, {isInjectionEnabled == 1} + field = "Injector flow units", injectorFlowAsMassFlow, {isInjectionEnabled == 1} + field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } + field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } + field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } + + dialog = fuelParams, "Fuel characteristics", yAxis + field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} + field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } + + dialog = injectorOutputSettings, "Injector Outputs", yAxis + field = "Use only first half of outputs for batch mode" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Injection Output 1", injectionPins1, {isInjectionEnabled == 1} + field = "Injection Output 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Injection Output 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Injection Output 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Injection Output 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Injection Output 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Injection Output 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Injection Output 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Injection Output 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Injection Output 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Injection Output 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Injection Output 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = cylinderBankSelect, "Cylinder Banks", yAxis + field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} + field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinearFord, "Ford-model Small Pulse Correction", yAxis + field = "Small pulse slope (ALOSL)", fordInjectorSmallPulseSlope + field = "Set this to 'mass flow'", injectorFlowAsMassFlow + field = "Large pulse slope (AHISL)", injector_flow + field = "Small pulse breakpoint (FUEL_BKPT)", fordInjectorSmallPulseBreakPoint + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode == 1 } + panel = injectorNonlinearFord, {1}, { injectorNonlinearMode == 2 } + + dialog = testLuaOut, "Lua Out Test" + commandButton = "Lua Out #1", cmd_test_lua1 + commandButton = "Lua Out #2", cmd_test_lua2 + commandButton = "Lua Out #3", cmd_test_lua3 + commandButton = "Lua Out #4", cmd_test_lua4 + commandButton = "Lua Out #5", cmd_test_lua5 + commandButton = "Lua Out #6", cmd_test_lua6 + commandButton = "Lua Out #7", cmd_test_lua7 + commandButton = "Lua Out #8", cmd_test_lua8 + commandButton = "Abort test", cmd_test_cancel + + dialog = testInjectors, "Injector Test" + commandButton = "Injector #1", cmd_test_inj1 + commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } + commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } + commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } + commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } + commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } + commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } + commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } + commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } + commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } + commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } + commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testSolenoids, "TCU Solenoid Test" + commandButton = "Solenoid #1", cmd_test_sol1 + commandButton = "Solenoid #2", cmd_test_sol2 + commandButton = "Solenoid #3", cmd_test_sol3 + commandButton = "Solenoid #4", cmd_test_sol4 + commandButton = "Solenoid #5", cmd_test_sol5 + commandButton = "Solenoid #6", cmd_test_sol6 + commandButton = "Abort test", cmd_test_cancel + + dialog = testOther + field = "Count", benchTestCount + field = "On Time", benchTestOnTime + field = "Off Time", benchTestOffTime + panel = testSolenoids + + dialog = injectionSettingsEast, "", yAxis + panel = testInjectors + field = "" + + dialog = injectionSettingsWest, "", yAxis + panel = injectorOutputSettings + field = "" + + dialog = injectionSettings, "", xAxis + panel = injectionSettingsWest + panel = injectionSettingsEast + + dialog = injectorConfig, "", yAxis + topicHelp = "fuelHelp" + panel = baseInjection + panel = injChars + panel = fuelParams + panel = injectorsDeadTime, {isInjectionEnabled} + + dialog = ignitionCylExtra, "Cylinder offsets" + field = "Offset angle for each cylinder if you have an odd fire" + field = "engine, like a v-twin or some V6/V10 engines" + field = "Odd Fire Engine", oddFireEngine + field = "#Positive numbers retard, negative numbers advance" + field = "Offset cyl 1", timing_offset_cylinder1 + field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1} + field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2} + field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3} + field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4} + field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5} + field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6} + field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7} + field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8} + field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9} + field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} + field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} + + dialog = stagedInjectionOutputs, "", yAxis + field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} + field = "Injection Stage 2 Output 2", injectionPinsStage22, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 1} + field = "Injection Stage 2 Output 3", injectionPinsStage23, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 2} + field = "Injection Stage 2 Output 4", injectionPinsStage24, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 3} + field = "Injection Stage 2 Output 5 ", injectionPinsStage25, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 4} + field = "Injection Stage 2 Output 6 ", injectionPinsStage26, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 5} + field = "Injection Stage 2 Output 7 ", injectionPinsStage27, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 6} + field = "Injection Stage 2 Output 8 ", injectionPinsStage28, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 7} + field = "Injection Stage 2 Output 9 ", injectionPinsStage29, {isInjectionEnabled && enableStagedInjection && cylindersCount > 8} + field = "Injection Stage 2 Output 10 ", injectionPinsStage210, {isInjectionEnabled && enableStagedInjection && cylindersCount > 9} + field = "Injection Stage 2 Output 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10} + field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} + + dialog = stagedInjection, "", yAxis + field = "Enable", enableStagedInjection, {isInjectionEnabled} + field = "" + field = "Secondary injector flow", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection} + field = "" + panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection} + + dialog = multisparkDwellParams, "Delay & Dwell" + field = "Spark duration", multisparkSparkDuration, {multisparkEnable} + field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable} + + dialog = multisparkMain, "Configuration" + field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} + field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} + field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} + + dialog = multisparkSettings, "Multispark" + field = "#WARNING! These settings have the potential to overheat ignition components" + field = "#and cause other nasty misbehavior. Use with care, at your own risk!" + field = "#Not recommended for use on distributor or wasted spark ignition systems." + field = "Enable multiple sparks", multisparkEnable + panel = multisparkMain + panel = multisparkDwellParams + + dialog = ignAdder1Cfg, "Ignition adder 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends1_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends1_yAxisOverride, {ignBlends1_blendParameter} + panel = ignAdder1Bias, {ignBlends1_blendParameter} + + dialog = ignAdder2Cfg, "Ignition adder 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends2_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends2_yAxisOverride, {ignBlends2_blendParameter} + panel = ignAdder2Bias, {ignBlends2_blendParameter} + + dialog = ignAdder3Cfg, "Ignition adder 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends3_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends3_yAxisOverride, {ignBlends3_blendParameter} + panel = ignAdder3Bias, {ignBlends3_blendParameter} + + dialog = ignAdder4Cfg, "Ignition adder 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends4_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends4_yAxisOverride, {ignBlends4_blendParameter} + panel = ignAdder4Bias, {ignBlends4_blendParameter} + + dialog = veBlend1Cfg, "VE blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends1_blendParameter + field = "Y axis override (set Zero for no override)", veBlends1_yAxisOverride, {veBlends1_blendParameter} + panel = veBlend1Bias, {veBlends1_blendParameter} + + dialog = veBlend2Cfg, "VE blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends2_blendParameter + field = "Y axis override (set Zero for no override)", veBlends2_yAxisOverride, {veBlends2_blendParameter} + panel = veBlend2Bias, {veBlends2_blendParameter} + + dialog = veBlend3Cfg, "VE blend 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends3_blendParameter + field = "Y axis override (set Zero for no override)", veBlends3_yAxisOverride, {veBlends3_blendParameter} + panel = veBlend3Bias, {veBlends3_blendParameter} + + dialog = veBlend4Cfg, "VE blend 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends4_blendParameter + field = "Y axis override (set Zero for no override)", veBlends4_yAxisOverride, {veBlends4_blendParameter} + panel = veBlend4Bias, {veBlends4_blendParameter} + + indicatorPanel = isBoostControlledPanel, 1 + indicator = {isBoostControlled}, "No Boost Control", "Boost Control Active" + + dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends1_yAxisOverride, {boostOpenLoopBlends1_blendParameter} + panel = boostOpenLoopBlend1Bias, {boostOpenLoopBlends1_blendParameter} + + dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends2_yAxisOverride, {boostOpenLoopBlends2_blendParameter} + panel = boostOpenLoopBlend2Bias, {boostOpenLoopBlends2_blendParameter} + + dialog = boostClosedBlend1Cfg, "Boost closed loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends1_yAxisOverride, {boostClosedLoopBlends1_blendParameter} + panel = boostClosedLoopBlend1Bias, {boostClosedLoopBlends1_blendParameter} + + dialog = boostClosedBlend2Cfg, "Boost closed loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends2_yAxisOverride, {boostClosedLoopBlends2_blendParameter} + panel = boostClosedLoopBlend2Bias, {boostClosedLoopBlends2_blendParameter} + + dialog = dwellSettings, "", yAxis + panel = dwellCorrection + panel = dwellVoltageCorrection + + dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" + field = "Input channel", auxTempSensor1_adcChannel + field = "Pullup resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 0} + + dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" + field = "Input channel", auxTempSensor2_adcChannel + field = "Pullup resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 0} + + dialog = tpsSent1, "SENT TPS" + field = "Input #1", sentInputPins1 + field = "ETB type", sentEtbType, {sentInputPins1 != 0} + field = "Closed value", customSentTpsMin, {sentEtbType == 3 } + field = "Open value", customSentTpsMax, {sentEtbType == 3 } + + dialog = oilTempSensor, "Oil Temp Sensor Settings" + field = "Input channel", oilTempSensor_adcChannel + field = "Pullup resistor", oilTempSensor_bias_resistor, {oilTempSensor_adcChannel != 0} + + field = "Lowest temperature", oilTempSensor_tempC_1, {oilTempSensor_adcChannel != 0} + field = "Resistance @ LT", oilTempSensor_resistance_1, {oilTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", oilTempSensor_tempC_2, {oilTempSensor_adcChannel != 0} + field = "Resistance @ MT", oilTempSensor_resistance_2, {oilTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", oilTempSensor_tempC_3, {oilTempSensor_adcChannel != 0} + field = "Resistance @ HT", oilTempSensor_resistance_3, {oilTempSensor_adcChannel != 0} + + dialog = fuelTempSensor, "Fuel Temp Sensor Settings" + field = "Input channel", fuelTempSensor_adcChannel + field = "Pullup resistor", fuelTempSensor_bias_resistor, {fuelTempSensor_adcChannel != 0} + + field = "Lowest temperature", fuelTempSensor_tempC_1, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ LT", fuelTempSensor_resistance_1, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", fuelTempSensor_tempC_2, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ MT", fuelTempSensor_resistance_2, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", fuelTempSensor_tempC_3, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ HT", fuelTempSensor_resistance_3, {fuelTempSensor_adcChannel != 0} + + dialog = ambientTempSensor, "Ambient Temp Sensor Settings" + field = "!Put this sensor before any turbocharger/supercharger" + field = "!near the air filter." + field = "Input channel", ambientTempSensor_adcChannel + field = "Pullup resistor", ambientTempSensor_bias_resistor, {ambientTempSensor_adcChannel != 0} + + field = "Lowest temperature", ambientTempSensor_tempC_1, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ LT", ambientTempSensor_resistance_1, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", ambientTempSensor_tempC_2, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ MT", ambientTempSensor_resistance_2, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", ambientTempSensor_tempC_3, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ HT", ambientTempSensor_resistance_3, {ambientTempSensor_adcChannel != 0} + + dialog = compressorDischargeTemperature, "Compressor Discharge Temp Settings" + field = "!Put this sensor after the turbocharger/supercharger" + field = "!but before the intercooler." + field = "Input channel", compressorDischargeTemperature_adcChannel + field = "Pullup resistor", compressorDischargeTemperature_bias_resistor, {compressorDischargeTemperature_adcChannel != 0} + + field = "Lowest temperature", compressorDischargeTemperature_tempC_1, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ LT", compressorDischargeTemperature_resistance_1, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Middle temperature", compressorDischargeTemperature_tempC_2, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ MT", compressorDischargeTemperature_resistance_2, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Highest temperature", compressorDischargeTemperature_tempC_3, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ HT", compressorDischargeTemperature_resistance_3, {compressorDischargeTemperature_adcChannel != 0} + + dialog = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + field = "Error Detection Threshold", etbSplit + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = idlePosConfig, "Idle position sensor" + field = "Input", idlePositionChannel + field = "Min (valve closed, low idle)", idlePositionMin + field = "Max (valve open, high idle)", idlePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + panel = idlePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + gauge = rawIdlePositionSensorGauge + gauge = idlePosSensGauge + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = tractionIgnitionSkipDialog, "Traction Ignition Skip" + field = useHardSkipInTraction, useHardSkipInTraction + panel = tractionIgnitionSkipTableTbl + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + field = "MC33816 Driven", mc33816_driven + + field = "Boost voltage", mc33_hvolt + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake Pedal", brakePedalPin + field = "Brake Pedal Mode", brakePedalPinMode + field = "Flex fuel sensor", flexSensorPin + field = flexSensorInverted, flexSensorInverted + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + field = "Throttle inlet pressure sensor", throttleInletPressureChannel + field = "Compressor discharge pressure sensor", compressorDischargePressureChannel + + dialog = fuelLevelDialog, "Fuel Level Sensor" + field = "Input channel", fuelLevelSensor + panel = fuelLevelCurve + +; +; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to +; configure the features. +; + dialog = allPinsSensors, "Sensors" + field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel + field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel + field = "Primary input channel", triggerInputPins1 + field = "Secondary channel", triggerInputPins2 + field = "Cam Sync/VVT input", camInputs1 + field = "CLT ADC input", clt_adcChannel + field = "IAT ADC input", iat_adcChannel + field = "vBatt ADC input", vbattAdcChannel + field = "TPS1 ADC input", tps1_1AdcChannel + field = "TPS2 ADC input", tps2_1AdcChannel + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + field = "AFR ADC input", afr_hwChannel + field = "AFR 2 ADC input", afr_hwChannel2 + field = "Baro ADC input", baroSensor_hwChannel + field = "MAP ADC input", map_sensor_hwChannel + field = "Fuel Level input", fuelLevelSensor + field = "Vehicle Speed input", vehicleSpeedSensorInputPin + field = "Clutch Down input", clutchDownPin + field = "Clutch Up input", clutchUpPin + field = "Brake pedal input", brakePedalPin + field = "A/C Switch", acSwitch + field = "Aux Temperature #1", auxTempSensor1_adcChannel + field = "Aux Temperature #2", auxTempSensor2_adcChannel + field = "Aux Fast Analog", auxFastSensor1_adcChannel + + dialog = allTriggerDebug, "Trigger Debug" + field = "trigger 1 debug", triggerInputDebugPins1 + field = "trigger 2 debug", triggerInputDebugPins2 + field = "cam 1 debug", camInputsDebug1 + field = "cam 2 debug", camInputsDebug2 + field = "cam 3 debug", camInputsDebug3 + field = "cam 4 debug", camInputsDebug4 + + dialog = allPinsMC33, "MC33816" + field = "Chip Select", mc33816_cs + field = rstb, mc33816_rstb + field = flag0, mc33816_flag0 + field = mc33816_driven, mc33816_driven + field = mc33816spiDevice, mc33816spiDevice + field = hpfpValvePin, hpfpValvePin + + dialog = allPins1_1 + field = "trigger stimulator output #1", triggerSimulatorPins1 + field = "trigger stimulator output #2", triggerSimulatorPins2 + field = "tle6240_cs", tle6240_cs + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "Narrowband O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "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 = "SPI4 MOSI", spi4mosiPin, {is_enabled_spi_4 == 1} + field = "SPI4 MISO", spi4misoPin, {is_enabled_spi_4 == 1} + field = "SPI4 SCK", spi4sckPin, {is_enabled_spi_4 == 1} + field = "SPI5 MOSI", spi5mosiPin, {is_enabled_spi_5 == 1} + field = "SPI5 MISO", spi5misoPin, {is_enabled_spi_5 == 1} + field = "SPI5 SCK", spi5sckPin, {is_enabled_spi_5 == 1} + field = "SPI6 MOSI", spi6mosiPin, {is_enabled_spi_6 == 1} + field = "SPI6 MISO", spi6misoPin, {is_enabled_spi_6 == 1} + field = "SPI6 SCK", spi6sckPin, {is_enabled_spi_6 == 1} + field = "hip9011CsPin", hip9011CsPin + field = "Saab CDM knock", cdmInputPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + + dialog = allPins3_1 + panel = allPinsSensors + + dialog = allPins3_2 + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "Aux Valve #1", auxValves1 + field = "Aux Valve #2", auxValves2 + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE 8888 spi", tle8888spiDevice + field = "L9779 Chip Select", l9779_cs + field = "AUX Serial TX", auxSerialTxPin + field = "AUX Serial RX", auxSerialRxPin + field = "Start/Stop Button", startStopButtonPin + field = "Upshift Pin", tcuUpshiftButtonPin + field = "Downshift Pin", tcuDownshiftButtonPin + + dialog = allPins3_1_and_2, "All IO 3/3", xAxis + panel = allPins3_1 + panel = allPins3_2 + + dialog = allPins1_1_and_2, "", xAxis + panel = allPins1_1 + panel = allPins1_2 + + dialog = allPins1, "All IO 1/3", xAxis + panel = allPins1_1_and_2 + panel = allPins1_3 + + dialog = allPins2_1_and_2, "", xAxis + panel = allPins2_1 + panel = allPins2_2 + + dialog = allPins2, "All IO 2/3", xAxis + panel = allPins2_1_and_2 + panel = allPins2_3 + + dialog = clt_thermistor, "CLT sensor" + field = "Input channel", clt_adcChannel + field = "Pullup resistor", clt_bias_resistor, {clt_adcChannel != 0} + + settingSelector = "Common CLT Sensors" + settingOption = "GM CLT", clt_tempC_1=-40,clt_resistance_1=100000,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=130,clt_resistance_3=70,useLinearCltSensor=0 + settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 + settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 + settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 0} + field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 0} + field = "" + field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 0} + field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 0} + field = "" + field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 0} + field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 0} + + dialog = cltGauges + gauge = CLTGauge + gauge = rawCltGauge + + dialog = cltSensor, "CLT Sensor", border + panel = clt_thermistor, West + panel = cltGauges, East + + dialog = iat_thermistor, "IAT sensor" + field = "Input channel", iat_adcChannel + field = "Pullup resistor", iat_bias_resistor, {iat_adcChannel != 0} + + settingSelector = "Common IAT Sensors", {iat_adcChannel != 0} + settingOption = "GM IAT", iat_tempC_1=8.9,iat_resistance_1=7000,iat_tempC_2=30.6,iat_resistance_2=1930,iat_tempC_3=63.3,iat_resistance_3=560,useLinearIatSensor=0 + settingOption = "Miata NA/NB", iat_tempC_1=-20,iat_resistance_1=16150,iat_tempC_2=40,iat_resistance_2=1150,iat_tempC_3=80,iat_resistance_3=330,useLinearIatSensor=0 + settingOption = "Miata MSM IAT2", iat_tempC_1=0,iat_resistance_1=112000,iat_tempC_2=40,iat_resistance_2=17000,iat_tempC_3=60,iat_resistance_3=8000,useLinearIatSensor=0 + settingOption = "Bosch Various", iat_tempC_1=-10,iat_resistance_1=9397,iat_tempC_2=30,iat_resistance_2=1707,iat_tempC_3=70,iat_resistance_3=436,useLinearIatSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 0} + field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 0} + field = "" + field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 0} + field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 0} + field = "" + field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 0} + field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 0} + + dialog = iatGauges + gauge = IATGauge + gauge = rawIatGauge + + dialog = iatSensor, "IAT Sensor", border + panel = iat_thermistor, West + panel = iatGauges, East + + dialog = oilp_settings, "Oil Pressure Sensor" + field = "Oil Pressure input", oilPressure_hwChannel + field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0} + field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0} + field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0} + field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0} + + dialog = oilPressureGauges + gauge = OilPressGauge + gauge = rawOilPressureGauge + + dialog = oilPressureSensor, "", border + panel = oilp_settings, West + panel = oilPressureGauges, East + + dialog = fuelp_settings, "Fuel Pressure Sensor" + field = "Fuel low pressure input", lowPressureFuel_hwChannel + field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0} + field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0} + field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0} + field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0} + field = "sensor type", fuelPressureSensorMode, {lowPressureFuel_hwChannel != 0} + + field = "Fuel high pressure input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "Input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "Input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0} + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0} + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0} + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + dialog = mapCurves, "MAP sampling", yAxis + field = "isMapAveragingEnabled", isMapAveragingEnabled + panel = map_samplingAngleCurve + panel = map_samplingWindowCurve + + dialog = mafSettings, "MAF sensor", yAxis + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + +; Sensors->EGO sensor + dialog = egoSettings_sensor, "EGO sensor" + settingSelector = "EGO Type" + settingOption = "BPSX", afr_v1=0,afr_value1=9,afr_v2=5,afr_value2=19 + settingOption = "Innovate", afr_v1=0,afr_value1=7.35,afr_v2=5,afr_value2=22.39 + settingOption = "14Point7", afr_v1=0,afr_value1=9.996,afr_v2=5,afr_value2=19.992 + settingOption = "PLX", afr_v1=0,afr_value1=10,afr_v2=5,afr_value2=20 + settingOption = "Narrow Band", afr_v1=0.1,afr_value1=15,afr_v2=0.9,afr_value2=14 + settingOption = "AEM", afr_v1=0.5,afr_value1=8.5,afr_v2=4.5,afr_value2=18 + + field = "Type", afr_type +; todo: only use these values for custom! + field = "low voltage", afr_v1 + field = "low value", afr_value1 + field = "high voltage", afr_v2 + field = "high value", afr_value2 + field = "Correction", egoValueShift + + dialog = egoSettings_IO1, "EGO Sensor 1 I/O" + field = "Input channel", afr_hwChannel,{afr_hwChannel != 0 || enableAemXSeries == 0 } + field = "Narrowband Heater output", o2heaterPin, { o2heaterPin != 0 || enableAemXSeries == 0 } + + dialog = egoSettings_IO2, "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 + panel = etbHbridgeHardwareNo2 + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Control", stepperDcIo1_controlPin + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Control", stepperDcIo2_controlPin + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = idleIncrementalPidCic, idleIncrementalPidCic + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C RPM target", acIdleRpmTarget + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Dashpot/Taper Initial IAC Adder", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Override Idle VE table load axis", idleVeOverrideMode, { useSeparateVeForIdle == 1 } + field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper + field = "Use coasting idle table", useIacTableForCoasting + field = "Dashpot coasting-to-idle Hold time", iacByTpsHoldTime + field = "Dashpot coasting-to-idle Decay time", iacByTpsDecayTime + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control is disabled at zero RPM" + +; gating applies both to open loop and closed loop! + panel = idleGating +; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected + panel = idleOpenLoop + panel = idlePidSettings, { idleMode == 0 } + panel = idleExtra + + dialog = idleTimingPidCorrDialog, "", yAxis + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Integral gain", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "Soft entry time", idleTimingSoftEntryTime, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" + +; Engine->Fan Settings + dialog = fan1Settings, "Fan 1" + field = "Output", fanPin, 1, { uiMode == 0 || uiMode == 1 } + field = "Output mode", fanPinMode, { uiMode == 0 || uiMode == 1 } + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Disable above vehicle speed", disableFan1AtSpeed + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Disable above vehicle speed", disableFan2AtSpeed + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C Idle RPM", acIdleRpmTarget + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + commandButton = "Test Fuel Pump", cmd_test_fuel_pump + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + commandButton = "Test Main Relay", cmd_test_main_relay + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + commandButton = "Test Starter Disable", cmd_test_starter_disable_relay + + dialog = startStopDialog, "Starter Control" + field = "Require Foot On Brake To Crank", requireFootOnBrakeToCrank + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + field = "Suppress On Start Up (Ms)", startButtonSuppressOnStartUpMs, {startStopButtonPin != 0} + commandButton = "Test Starter Relay", cmd_test_starter_relay + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + commandButton = "Test Check Engine", cmd_test_check_engine_light + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = speedoSettings, "Speedometer output" + field = "Output", speedometerOutputPin + field = "Pulse per km", speedometerPulsePerKm, { speedometerOutputPin } + + dialog = outputsDialogLeft + panel = mainRelayDialog + panel = fuelPumpDialog + panel = tachSettings + + dialog = outputsDialogRight + panel = startStopDialog + panel = starterRelayDialog + panel = speedoSettings + panel = malfunctionDialog + + dialog = outputsDialog, "Outputs", border + panel = outputsDialogLeft, West + panel = fanSetting, Center + panel = outputsDialogRight, East + + dialog = statusLeds, "Status LEDs" + field = "Trigger error LED", triggerErrorPin + field = "Debug Trigger Sync", debugTriggerSync + + dialog = softwareKnockCfg, "Sense" + field = "Enable", enableSoftwareKnock + field = "Cylinder Bore", cylinderBore + field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} + field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} + field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} + + field = "" + field = "Select the nearest sensor for each cylinder" + field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} + field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} + field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} + field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} + field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} + field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} + field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} + field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} + field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} + field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} + field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} + field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} + + dialog = softwareKnockResponseCfg, "Response" + field = knockRetardAggression, knockRetardAggression + field = knockRetardReapplyRate, knockRetardReapplyRate + + dialog = softwareKnockLeft, "" + panel = softwareKnockCfg + panel = softwareKnockResponseCfg + + dialog = softwareKnock, "Software Knock", border + panel = softwareKnockLeft, West + panel = knockThresholdCurve, Center + +; Engine->hip9011 Settings + dialog = hipFunction, "HIP9011 Settings (knock decoder)" + field = "Enabled", isHip9011Enabled + field = "!ECU reboot needed to apply these settings" + field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} + field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} + field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} + field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} + field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} + field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} + field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} + field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} + field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} + field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} + field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} + panel = knockThresholdCurve + + dialog = spiBuses, "SPI buses settings" + field = "!ECU reboot needed to apply these settings" + field = "SPI1 enable", is_enabled_spi_1 + field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} + field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} + field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} + + field = "SPI2 enable", is_enabled_spi_2 + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} + + field = "SPI3 enable", is_enabled_spi_3 + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} + + field = "SPI4 enable", is_enabled_spi_4 + + field = "SPI5 enable", is_enabled_spi_5 + + field = "SPI6 enable", is_enabled_spi_6 + + dialog = spiDevices, "SPI devices settings" + field = "Use SPI accelerometer", useSpiImu + + dialog = stftPartitioning, "Region Configuration" + field = "Idle region RPM", stft_maxIdleRegionRpm + field = "Overrun region load", stft_maxOverrunLoad + field = "Power region load", stft_minPowerLoad + + dialog = stftPartitionSettingsMain, "Main Region", xAxis + field = "Time const", stft_cellCfgs4_timeConstant + field = "Max add", stft_cellCfgs4_maxAdd + field = "Max remove", stft_cellCfgs4_maxRemove + + dialog = stftPartitionSettingsIdle, "Idle Region", xAxis + field = "Time const", stft_cellCfgs1_timeConstant + field = "Max add", stft_cellCfgs1_maxAdd + field = "Max remove", stft_cellCfgs1_maxRemove + + dialog = stftPartitionSettingsPower, "Power Region", xAxis + field = "Time const", stft_cellCfgs3_timeConstant + field = "Max add", stft_cellCfgs3_maxAdd + field = "Max remove", stft_cellCfgs3_maxRemove + + dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis + field = "Time const", stft_cellCfgs2_timeConstant + field = "Max add", stft_cellCfgs2_maxAdd + field = "Max remove", stft_cellCfgs2_maxRemove + + dialog = fuelClosedLoopDialog, "Closed loop fuel correction" + field = "Enabled", fuelClosedLoopCorrectionEnabled + + field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} + field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} + + panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} + + dialog = lambdaProtectionLeft, "" + field = "Enable lambda protection", lambdaProtectionEnable + field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" + panel = lambdaMaxDeviationTableTbl + + dialog = lambdaProtection, "Lambda Protection", border + panel = lambdaProtectionLeft, West + panel = lambdaProtectionRight, East + + dialog = vvtPidDialog0, "Configuration" + field = "Activation Delay", vvtActivationDelayMs + field = "Do not control below RPM", vvtControlMinRpm + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "PWM frequency", vvtOutputFrequency, {vvtPins1 != 0 || vvtPins2 != 0} + field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 } + field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 } + + dialog = vvtPidDialog1, "Intake PID" + field = "offset", auxPid1_offset, {vvtPins1 != 0} + field = "P factor", auxPid1_pFactor, {vvtPins1 != 0} + field = "I factor", auxPid1_iFactor, {vvtPins1 != 0} + field = "D factor", auxPid1_dFactor, {vvtPins1 != 0} + field = "Min", auxPid1_minValue, {vvtPins1 != 0} + field = "Max", auxPid1_maxValue, {vvtPins1 != 0} + commandButton = "Bench bank 1", cmd_test_vvt0_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt2_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog2, "Exhaust PID" + field = "offset", auxPid2_offset, {vvtPins2 != 0} + field = "P factor", auxPid2_pFactor, {vvtPins2 != 0} + field = "I factor", auxPid2_iFactor, {vvtPins2 != 0} + field = "D factor", auxPid2_dFactor, {vvtPins2 != 0} + field = "Min", auxPid2_minValue, {vvtPins2 != 0} + field = "Max", auxPid2_maxValue, {vvtPins2 != 0} + commandButton = "Bench bank 1", cmd_test_vvt1_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt3_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog, "VVT Configuration & PID", border + panel = vvtPidDialog0, West + panel = vvtPidDialog1, Center + panel = vvtPidDialog2, East + +; Engine->Battery & Alternator + dialog = batteryDialog, "Battery Settings", yAxis + field = "vBatt ADC input", vbattAdcChannel + field = "Battery Input Divider Coefficient", vbattDividerCoeff + dialog = alternator, "Alternator Settings", yAxis + field = "Enabled", isAlternatorControlEnabled + field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} + field = "Control output", alternatorControlPin, {isAlternatorControlEnabled == 1} + field = "Control output mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} + field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1} + field = "A/C duty adder", acRelayAlternatorDutyAdder, {isAlternatorControlEnabled == 1} + field = "#PID control" + field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1} + field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1} + field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1} + field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1} + field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1} + field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1} + field = "#% duty = Pterm + Iterm + Dterm + offset%" + + dialog = energySystems, "Battery and Alternator Settings", yAxis + panel = batteryDialog + panel = alternator + + dialog = speedSensorAnalog, "Speed sensor" + field = "Input", vehicleSpeedSensorInputPin + field = "Filter parameter", vssFilterReciprocal, { vehicleSpeedSensorInputPin != 0 } + +; +; We prefer quantities that users can actually measure or inspect without math, so we have +; two separate natural settings here without one 'sensor tooth to wheel revolution' ratio +; + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Speed sensor gear ratio", vssGearRatio, { vehicleSpeedSensorInputPin != 0 } + field = "Speed sensor tooth count", vssToothCount, { vehicleSpeedSensorInputPin != 0 } + + dialog = speedSensorCan, "CAN Vehicle Speed" + field = "Enable CAN VSS", enableCanVss, { canReadEnabled } + field = "CAN VSS type", canVssNbcType, { enableCanVss } + field = "CAN VSS scaling", canVssScaling, { canReadEnabled } + + dialog = speedSensorLeft, "", yAxis + panel = speedSensorAnalog, { enableCanVss == 0 } + panel = speedSensorCan + + dialog = gearDetection, "Gear Detection" + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Final drive ratio", finalGearRatio + field = "" + field = "Forward gear count", totalGearsCount + field = "" + field = "1st gear", gearRatio1, { totalGearsCount >= 1 } + field = "2nd gear", gearRatio2, { totalGearsCount >= 2 } + field = "3rd gear", gearRatio3, { totalGearsCount >= 3 } + field = "4th gear", gearRatio4, { totalGearsCount >= 4 } + field = "5th gear", gearRatio5, { totalGearsCount >= 5 } + field = "6th gear", gearRatio6, { totalGearsCount >= 6 } + field = "7th gear", gearRatio7, { totalGearsCount >= 7 } + field = "8th gear", gearRatio8, { totalGearsCount >= 8 } + + dialog = speedSensor, "Speed sensor", xAxis + panel = speedSensorLeft + gauge = VSSGauge + panel = gearDetection + +; Engine->Other inputs + dialog = analogInputSettings, "Analog Input Settings" + field = "!ECU reboot needed to apply these settings" + field = "ADC vRef voltage", adcVcc + field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap + + +; 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 = "Enable extended rusEFI CAN broadcast", enableExtendedCanBroadcast + field = "rusEFI CAN data bus", canBroadcastUseChannelTwo + field = "rusEFI CAN data base address", verboseCanBaseAddress + field = "rusEFI CAN data address type", rusefiVerbose29b + field = "rusEFI CAN data period", canSleepPeriodMs + + dialog = canBus2, "Secondary CAN Bus" + + dialog = canBusMain, "CAN Bus Communication", yAxis + panel = canBus + + panel = canHw1 + + 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 = tle8888Dialog, "TLE8888", yAxis + field = "TLE8888 SPI", tle8888spiDevice + field = "TLE8888 Chip Select", tle8888_cs + field = "Trigger Input Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinitialize", cmd_tle8888_init + + dialog = l9779Dialog, "L9779", yAxis + field = "L9779 SPI", l9779spiDevice + field = "L9779 Chip Select", l9779_cs + + dialog = connection, "", yAxis + panel = tsPort + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + field = enableKline, enableKline + + dialog = monitoringSettings, "rusEFI Console Settings" + field = "Sensor Sniffer", sensorChartMode + field = " Threshold", sensorSnifferRpmThreshold + field = "Engine Sniffer Threshold", engineSnifferRpmThreshold + + dialog = 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 = dutyCycleLimiting, "Injector Duty Cycle Limiter" + field = "Instantaneous injector duty cycle limit", maxInjectorDutyInstant, {isInjectionEnabled} + field = "Sustained injector duty cycle limit", maxInjectorDutySustained, {isInjectionEnabled} + field = "Sustained injector duty cycle delay", maxInjectorDutySustainedTimeout, {isInjectionEnabled} + + dialog = limitsSettings, "Limits" + field = "Cut fuel on RPM limit", cutFuelOnHardLimit + field = "Cut spark on RPM limit", cutSparkOnHardLimit + field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit } + field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + field = "RPM limit hysteresis", rpmHardLimitHyst + field = "Boost cut pressure", boostCutPressure + field = "Boost cut pressure hysteresis", boostCutPressureHyst + field = "Minimum oil pressure after start", minOilPressureAfterStart + panel = dutyCycleLimiting + + dialog = softRpmLimitSettings, "Soft RPM Limit" + field = "Window size", rpmSoftLimitWindowSize + field = "Timing retard", rpmSoftLimitTimingRetard, { cutSparkOnHardLimit } + field = "Fuel added", rpmSoftLimitFuelAdded, { cutFuelOnHardLimit } + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = softRpmLimitSettings, West, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + panel = etbLimits + + dialog = limitsAndFallbackCenter, "CLT-based RPM Limit" + panel = cltRevLimitCurve + + dialog = limitsAndFallback, "Limits and fallbacks", border + panel = limitsAndFallbackLeft, West + panel = limitsAndFallbackCenter, Center, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && useCltBasedRpmLimit } + +; Engine->Base Engine Settings + dialog = engineChars, "Base Engine Settings" + topicHelp = "baseHelp" + panel = baseEngineConfig + panel = engineMetadata + panel = 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 = primingFuelPulsePanel, "Priming fuel pulse" + field = "Priming delay", primingDelay + panel = primingPulse + + dialog = crankingAdv, "Advanced" + field = "Enable flood clear", isCylinderCleanupEnabled + field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled + field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking + field = "Use Flex Fuel cranking table", flexCranking + +; Cranking->Cranking Settings + dialog = crankingDialog, "Cranking Settings" + field = "Cranking RPM limit", cranking_rpm + panel = crankingFuel + panel = crankingIgnition + panel = crankingIAC + panel = crankingAdv + + dialog = TpsAccelPanel, "TPS" + field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" + field = "Length", tpsAccelLookback + field = "Accel Threshold", tpsAccelEnrichmentThreshold + field = "Decel Threshold", tpsDecelEnleanmentThreshold +; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier + field = "#Accelerator Pump model:" + field = "Fraction Period", tpsAccelFractionPeriod + field = "Fraction Divisor", tpsAccelFractionDivisor + + dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" + field = "Wall fueling model type", complexWallModel + field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } + field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } + + +; Tuning->AccelEnrichment + dialog = AccelEnrich, "Accel/Decel Enrichment" + panel = TpsAccelPanel + panel = WallWettingAccelPanel + field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs + + + dialog = wwTauCurves, "Wall wetting AE evaporation time" + field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." + panel = wwTauCltCurve + panel = wwTauMapCurve + + dialog = wwBetaCurves, "Wall wetting AE impact fraction" + field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." + panel = wwBetaCltCurve + panel = wwBetaMapCurve + + dialog = auxValvesIO, "Outputs" + field = "aux valve #1", auxValves1 + field = "aux valve #2", auxValves2 + + dialog = scriptSetting, "Setting" + field = "!Use rusEFI console for Lua script editing" + field = "Set number is not associated with the output number." + field = "Set number, only the cell number with some numbers." + field = "Name #1", scriptSettingName1 + field = "Setting #1", scriptSetting1 + field = "Name #2", scriptSettingName2 + field = "Setting #2", scriptSetting2 + field = "Name #3", scriptSettingName3 + field = "Setting #3", scriptSetting3 + field = "Name #4", scriptSettingName4 + field = "Setting #4", scriptSetting4 + field = "Name #5", scriptSettingName5 + field = "Setting #5", scriptSetting5 + field = "Name #6", scriptSettingName6 + field = "Setting #6", scriptSetting6 + + dialog = scriptSettingDialog, "Script Settings", border + panel = scriptSetting, East + + dialog = luaDigitalInputsLeftDialog + field = "Digital #1", luaDigitalInputPins1 + field = "Digital #2", luaDigitalInputPins2 + field = "Digital #3", luaDigitalInputPins3 + field = "Digital #4", luaDigitalInputPins4 + field = "Digital #5", luaDigitalInputPins5 + field = "Digital #6", luaDigitalInputPins6 + field = "Digital #7", luaDigitalInputPins7 + field = "Digital #8", luaDigitalInputPins8 + + dialog = luaDigitalInputsRightDialog + field = "Mode #1", luaDigitalInputPinModes1 + field = "Mode #2", luaDigitalInputPinModes2 + field = "Mode #3", luaDigitalInputPinModes3 + field = "Mode #4", luaDigitalInputPinModes4 + field = "Mode #5", luaDigitalInputPinModes5 + field = "Mode #6", luaDigitalInputPinModes6 + field = "Mode #7", luaDigitalInputPinModes7 + field = "Mode #8", luaDigitalInputPinModes8 + + dialog = luaDigitalInputsDialog, "Lua Digital Aux Inputs", border + panel = luaDigitalInputsLeftDialog, West + panel = luaDigitalInputsRightDialog, East + + dialog = auxInputsDialog, "Lua Analog Inputs" + field = "ADC #1", auxAnalogInputs1 + field = "ADC #2", auxAnalogInputs2 + field = "ADC #3", auxAnalogInputs3 + field = "ADC #4", auxAnalogInputs4 + field = "ADC #5", auxAnalogInputs5 + field = "ADC #6", auxAnalogInputs6 + field = "ADC #7", auxAnalogInputs7 + field = "ADC #8", auxAnalogInputs8 + + dialog = luaOutputs, "Lua Outputs" + field = "!Use rusEFI console for Lua script editing" + field = "#Call startPwm to initialize, then call" + field = "#setPwmDuty and setPwmFreq to vary duty/freq" + field = "#See rusefi.com/s/lua for more info" + field = "output #0", luaOutputPins1 + field = "output #1", luaOutputPins2 + field = "output #2", luaOutputPins3 + field = "output #3", luaOutputPins4 + field = "output #4", luaOutputPins5 + field = "output #5", luaOutputPins6 + field = "output #6", luaOutputPins7 + field = "output #7", luaOutputPins8 + + dialog = transmissionPanel + field = "TCU Enabled" tcuEnabled + field = "Gear Controller" gearControllerMode, { tcuEnabled } + field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } + + dialog = shiftSolenoidPanel, "Shift Solenoids" + field = "Solenoid 1 output" tcu_solenoid1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 1 output Mode" tcu_solenoid_mode1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output" tcu_solenoid2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output Mode" tcu_solenoid_mode2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output" tcu_solenoid3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output Mode" tcu_solenoid_mode3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output" tcu_solenoid4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output Mode" tcu_solenoid_mode4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output" tcu_solenoid5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output Mode" tcu_solenoid_mode5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output" tcu_solenoid6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output Mode" tcu_solenoid_mode6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "3-2 Solenoid output" tcu_32_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid output mode" tcu_32_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid Frequency" tcu_32_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = otherSolenoidPanel, "Other Solenoids" + field = "TCC On/Off Solenoid Pin" tcu_tcc_onoff_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC On/Off Solenoid Pin Mode" tcu_tcc_onoff_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin" tcu_tcc_pwm_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin Mode" tcu_tcc_pwm_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Frequency" tcu_tcc_pwm_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin" tcu_pc_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin Mode" tcu_pc_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Frequency" tcu_pc_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = buttonShiftInputPanel, "Switch/Button Shift" + field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + + dialog = inputSpeedSensorPanel, "Input Speed Sensor" + field = "Input Pin", tcuInputSpeedSensorPin + field = "Filter parameter", issFilterReciprocal, { tcuInputSpeedSensorPin != 0 } + field = "Tooth Count", tcuInputSpeedSensorTeeth + +dialog = rangeMatrixInputPanel, "Range Selector Inputs" + field = "Input 1 Pin", tcu_rangeInput1, { tcuEnabled } + field = "Input 1 Pin Mode", tcu_rangeInputMode1, { tcuEnabled } + field = "Input 2 Pin", tcu_rangeInput2, { tcuEnabled } + field = "Input 2 Pin Mode", tcu_rangeInputMode2, { tcuEnabled } + field = "Input 3 Pin", tcu_rangeInput3, { tcuEnabled } + field = "Input 3 Pin Mode", tcu_rangeInputMode3, { tcuEnabled } + field = "Input 4 Pin", tcu_rangeInput4, { tcuEnabled } + field = "Input 4 Pin Mode", tcu_rangeInputMode4, { tcuEnabled } + +dialog = tcuControls, "Transmission Settings" + panel = transmissionPanel + panel = shiftSolenoidPanel + panel = otherSolenoidPanel + + dialog = gearControls, "Gear Selection Settings" + panel = buttonShiftInputPanel + panel = rangeMatrixInputPanel + + dialog = inputSpeedSensor, "Input Speed Sensor" + panel = inputSpeedSensorPanel + + dialog = tccCurves, "TCC Lock/Unlock Speed" + panel = tccLockCurve + + dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State" + panel = pcPerGearCurve + + dialog = pcPerShiftDialog, "Line Pressure Per Shift" + panel = pcPerShiftCurve + + dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed" + panel = 32Curve + + dialog = rangeMatrixDocumentation, "Cell Values" + field = "0 = this pin must be low to reach this state" + field = "1 = this pin must be high to reach this state" + field = "2 = this pin is ignored for reaching this state" + field = "3 = this state is unreachable" + + dialog = rangeMatrixDialog, "Range Selector Input Matrix", border + panel = rangeMatrix, Center + panel = rangeMatrixDocumentation, South + +;Boost Open Loop + + dialog = boostDialog, "" + field = "Enable", isBoostControlEnabled + field = "Control Mode", boostType, { isBoostControlEnabled } + field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled } + field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } + field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } + field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled } + field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled } + field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled } + field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled } + + dialog = boostOpenLoopDialog, "", border + panel = boostTableTbl, Center + + dialog = boostOpenLoopGearAdderDialog, "", border + panel = boostOpenLoopGearAdderCurve, Center + +;Boost Closed Loop + + dialog = boostPidDialog, "" + topicHelp = "boostPidHelp" + field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 } + field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } + field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } + field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } + field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } + field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } + + dialog = boostTargetDialog, "", card + panel = boostTable2Tbl + + dialog = boostEtbPid, "" + field = "This PID is controlling how DC motor reaches desired position" + field = "" + field = "!This section is for advanced users only!" + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } + field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } + field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } + field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } + field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } + + help = boostPidHelp, "Boost Control PID" + text = "P = % per kPa error" + text = "I = % per kPa-seconds" + text = "D = % per kPa/sec" + text = "" + text = "If the boost error is 5kpa, and your P is set to 2, it will make a correction of 10%." + text = "If the boost error has been 5kPa for 2 second (10 kPa-seconds) and I is set to 0.1, it will make a correction of 1%" + text = "If the boost is changing at 10kPa/s and D is set to 0.5, it will make a correction of 5%." + text = "Those three terms are then added together, and limited by the PID min/max settings." + text = "" + text = "That is then added to the value from the open loop table, and sent to PWM the valve." + + help = veTableDialogHelp, "Volumetric Efficiency" + text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode. VE incorporates pressure ratio as measured by MAP sensor in boost (no VE ever above 105%ish)" + webHelp = "https://rusefi.com/s/fuel" + + help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" + text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." + + help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" + text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" + + help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" + text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." + + help = iatFuelCorrCurveHelp, "IAT Fuel Correction" + text = "Charge temperature estimation coefficient is the more proper way to handle IAT for fuel purposes" + text = "Open question who if anyone needs IAT Fuel Correction when" + + help = fuelHelp, "Fuel Control" + text = "More about fuel control on the web" + webHelp = "https://rusefi.com/s/fuel" + + help = triggerHelp, "Trigger Settings" + text = "More about Trigger Settings on the web" + webHelp = "https://rusefi.com/s/trigger" + + help = etbHelp, "ETB Control" + text = "More about electronic throttle body on the web" + webHelp = "https://rusefi.com/s/etb" + + help = vrThresholdHelp, "VR Sensor Threshold" + text = "This is about rusEFI VR Discrete decoder" + webHelp = "https://rusefi.com/" + + help = tpsTpsHelp, "Acceleration Enrichment" + text = "More about Tps To Tps acceleration on the web" + webHelp = "https://rusefi.com/s/tpstps" + + help = baseHelp, "Base Settings Control" + text = "More about rusefi on the web" + webHelp = "https://rusefi.com/" + + dialog = veTableDialog + topicHelp = "veTableDialogHelp" + panel = veTableTbl, South + + dialog = veTableDialog3D, "VE Table" + topicHelp = "veTableDialogHelp" + panel = veTableMap, South + + dialog = etbPidDialog, "PID settings" + field = "pFactor", etb_pFactor + field = "iFactor", etb_iFactor + field = "dFactor", etb_dFactor + field = "pid min", etb_minValue + field = "pid max", etb_maxValue + field = "iTermMin", etb_iTermMin + field = "iTermMax", etb_iTermMax + + dialog = etbIdleDialog, "ETB Idle" + field = "ETB idle maximum angle", etbIdleThrottleRange + + dialog = etbDialogLeft + field = "https://rusefi.com/s/etb" + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped + field = "Disable ETB Motor", pauseEtbControl + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "PWM Frequency", etbFreq + field = "Minimum ETB position", etbMinimumPosition + field = "Maximum ETB position", etbMaximumPosition + field = "Jam detection integrator max", etbJamIntegratorLimit + field = "Jam detection timeout period", etbJamTimeout + field = "Duty Averaging Length", etbExpAverageLength + field = "Rate of change Averaging Length", etbRocExpAverageLength + ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility + ; criteria for the same panel when used in multiple places + ; todo: report bug to TS? + ; another todo: split panel into two panels so that we can enable/disable h-bridge #1 separately from h-bridge #2 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + commandButton = "Reset ETB", cmd_etb_reset + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = testSpark, "Spark" + commandButton = "Spark #1", cmd_test_spk1 + commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } + commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } + commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } + commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } + commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } + commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } + commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } + commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } + commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } + commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } + commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testMisc, "Misc" + commandButton = "A/C Relay", cmd_test_ac_relay + commandButton = "Idle Air Valve", cmd_test_idle_valve + commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve + commandButton = "Stop Engine", cmd_stop_engine + commandButton = "Write Config", cmd_write_config + commandButton = "Reset ECU", cmd_reset_controller + commandButton = "Reset to DFU", cmd_dfu + commandButton = "Reset to OpenBLT", cmd_openblt + commandButton = "No flash Burn mode", cmd_burn_without_flash + + ; bench test + dialog = ioTest, "Bench Test & Commands", xAxis + panel = testSpark + panel = testInjectors + panel = testOther + panel = testLuaOut + panel = testMisc + + ; Injectors test + dialog = injTest_l, "Output test modes", yAxis + field = "Iterations", benchTestCount + field = "ON time", benchTestOffTime + field = "OFF time", benchTestOnTime + + dialog = injTest_r, "Reference gauges", yAxis + gauge = VBattGauge,North + gauge = testBenchIterGauge,South + + dialog = injTest, "", xAxis + panel = injTest_l + panel = injTest_r + + dialog = widebandConfig, "rusEFI Wideband Config" + field = "!Please connect exactly one wideband controller before pressing these buttons!" + commandButton = "Update Firmware", cmd_wideband_firmare_update + field = "!These buttons will set ALL connected controllers to the specified index." + field = "!Disconnect all controllers you don't want to set!" + commandButton = "Set Index 0", cmd_set_wideband_idx_0 + commandButton = "Set Index 1", cmd_set_wideband_idx_1 + field = "Wideband CAN bus", widebandOnSecondBus + field = "Force O2 sensor heating", forceO2Heating + + dialog = engineTypeDialog, "Popular vehicles" + field = "!These buttons send a command to rusEFI controller to apply preset values" + field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" + + commandButton = "Honda OBD1", cmd_set_engine_type_HONDA_OBD1 + +; commandButton = "Mitsubishi 3A92", cmd_set_engine_type_MITSUBISHI_3A92 +; commandButton = "Mitsubishi 4G93", cmd_set_engine_type_MITSUBISHI_4G93 + + + + commandButton = "Fuel Bench", cmd_set_engine_type_FUEL_BENCH + + + + commandButton = "Mazda Miata NA6", cmd_set_engine_type_MAZDA_MIATA_NA6 + commandButton = "Mazda Miata NA8 94-95", cmd_set_engine_type_MAZDA_MIATA_NA94 + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorRpm + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim +; field = "" +; field = "digipot spi", digitalPotentiometerSpiDevice +; field = "digipot CS #0", digitalPotentiometerChipSelect1 +; field = "digipot CS #1", digitalPotentiometerChipSelect2 +; field = "digipot CS #2", digitalPotentiometerChipSelect3 +; field = "digipot CS #3", digitalPotentiometerChipSelect4 + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + panel = IgnSkipTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot2, "Experimental 2" + field = dacOutputPins1, dacOutputPins1 + field = dacOutputPins2, dacOutputPins2 + field = luaCanRxWorkaround, luaCanRxWorkaround + field = "Read RPM matching VSS profile", canInputBCM + field = auxSpeed1Multiplier, auxSpeed1Multiplier + field = useAuxSpeedForSlipRatio, useAuxSpeedForSlipRatio + field = useVssAsSecondWheelSpeed, useVssAsSecondWheelSpeed + field = brakeMeanEffectivePressureDifferential, brakeMeanEffectivePressureDifferential + + dialog = mc33810Dialog, "MC33810 IGN/INJ driver" + field = "SPI settings" + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "Chip configuration" + field = "Maximum dwell (IGN pins mode only)", mc33810maxDwellTimer + field = "Disable auto recovery from OV/UV", mc33810DisableRecoveryMode + field = "Disable ING mode if you have no IGBT/MOSFETs on board and no feedback routed to IC" + field = "GD0 output disable IGN mode", mc33810Gpgd0Mode + field = "GD1 output disable IGN mode", mc33810Gpgd1Mode + field = "GD2 output disable IGN mode", mc33810Gpgd2Mode + field = "GD3 output disable IGN mode", mc33810Gpgd3Mode + commandButton = "Reinitialize", cmd_mc33810_init + + indicatorPanel = acrActiveDiagPanel, 1, { 1 } + indicator = { acrActive }, "ACR off", "ACR on", white, black, green, black + + dialog = harleyAcr, "Harley Automatic Compression Release" + field = "Pin", acrPin + field = "Pin 2", acrPin2 + field = "cutFuelInAcr", cutFuelInAcr + field = "#ACR is disabled after the specified number" + field = "#of revolutions, plus degrees of engine phase" + field = "Disable after revolutions", acrRevolutions + field = "Disable after engine phase", acrDisablePhase + commandButton = "ACR #1", cmd_test_acr_valve + commandButton = "ACR #2", cmd_test_acr2_valve + panel = acrActiveDiagPanel + + dialog = kLineDialog, "K Line" + field = kLineBaudRate, kLineBaudRate + field = verboseKLine, verboseKLine + field = hondaK, hondaK + field = kLineDoHondaSend, kLineDoHondaSend + field = kLinePeriodUs, kLinePeriodUs + + dialog = parkingLot, "Experimental/Broken" +; field = uiMode, uiMode + field = auxiliarySetting1, auxiliarySetting1 + field = can1ListenMode, can1ListenMode + field = can2ListenMode, can2ListenMode + field = rethrowHardFault, rethrowHardFault + field = canGpioType, canGpioType + field = "I understand ECU Locking", yesUnderstandLocking + field = "! Use console for unlocking" + field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } + field = verboseQuad, verboseQuad +; field = useEeprom, useEeprom + field = "#System hacks" + field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases + field = watchOutForLinearTime, watchOutForLinearTime + field = "TS over CAN debug", verboseIsoTp + field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex + field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning + field = "Warning Message", warning_message + field = "Ford/Toyota redundant TPS mode", useFordRedundantTps + field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps} + field = "Ford/Toyota redundant PPS mode", useFordRedundantPps + field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps} + + field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} + field = "BRZ/FRS/GT86 pedal", allowIdenticalPps + field = "Artificial Misfire", artificialTestMisfire + field = "Always use instant RPM", alwaysInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "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 + + 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} + commandButton = "HPFP Valve", cmd_test_hpfp_valve + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + + indicatorPanel = IgnitionDiagPanel, 1, { 1 } + indicator = { ignitorDiagnostic1 > 1 }, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, green, black, red, black + indicator = { ignitorDiagnostic2 > 1 }, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, green, black, red, black + indicator = { ignitorDiagnostic3 > 1 }, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, green, black, red, black + indicator = { ignitorDiagnostic4 > 1 }, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, green, black, red, black + indicator = { ignitorDiagnostic5 > 1 }, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, green, black, red, black + indicator = { ignitorDiagnostic6 > 1 }, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, green, black, red, black + indicator = { ignitorDiagnostic7 > 1 }, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, green, black, red, black + indicator = { ignitorDiagnostic8 > 1 }, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, green, black, red, black + indicator = { ignitorDiagnostic9 > 1 }, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, green, black, red, black + indicator = { ignitorDiagnostic10 > 1 }, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, green, black, red, black + indicator = { ignitorDiagnostic11 > 1 }, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, green, black, red, black + indicator = { ignitorDiagnostic12 > 1 }, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, green, black, red, black + + indicatorPanel = InjectionDiagPanel, 1, { 1 } + indicator = { injectorDiagnostic1 > 1 }, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, green, black, red, black + indicator = { injectorDiagnostic2 > 1 }, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, green, black, red, black + indicator = { injectorDiagnostic3 > 1 }, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, green, black, red, black + indicator = { injectorDiagnostic4 > 1 }, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, green, black, red, black + indicator = { injectorDiagnostic5 > 1 }, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, green, black, red, black + indicator = { injectorDiagnostic6 > 1 }, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, green, black, red, black + indicator = { injectorDiagnostic7 > 1 }, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, green, black, red, black + indicator = { injectorDiagnostic8 > 1 }, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, green, black, red, black + indicator = { injectorDiagnostic9 > 1 }, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, green, black, red, black + indicator = { injectorDiagnostic10 > 1 }, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, green, black, red, black + indicator = { injectorDiagnostic11 > 1 }, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, green, black, red, black + indicator = { injectorDiagnostic12 > 1 }, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, green, black, red, black + + dialog = OutputDiagDialog, "Output diagnostic", xAxis + panel = IgnitionDiagPanel + panel = InjectionDiagPanel + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/rusefi_hellenMiataNA96.ini b/firmware/tunerstudio/generated/rusefi_hellenMiataNA96.ini new file mode 100644 index 0000000000..67853281f6 --- /dev/null +++ b/firmware/tunerstudio/generated/rusefi_hellenMiataNA96.ini @@ -0,0 +1,9212 @@ +; This is a TunerStudio project for the rusEFI.com engine management system +; +; This file has been generated by invoking gen_config.bat. +; The input files are +; rusefi.input the common template +; rusefi_config.txt the project specific file +; +; In TunerStudio some fields have little question mark on the left of the name for additional field tips. +; Those tips are defined in ../integration/rusefi_config.txt +; +; For example +; +; float bias_resistor;Pull-up resistor value on your board;"Ohm" +; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip +; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio +; +; +; field = "# blue text" +; field = "! red text" +; field = "normal text" +; +; pok +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + settingGroup = connectivityProfile, "Protocol Profile" + settingOption = CONN_SLOW, "Slower / Wireless" + settingOption = CONN_FAST, "High Speed / USB" + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI master.2024.03.06.hellenMiataNA96.3552802930" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI master.2024.03.06.hellenMiataNA96.3552802930" ; signature is expected to be 7 or more characters. + + ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C + useLegacyFTempUnits = false + ignoreMissingBitOptions = true + + ; Optimize comms for fast rusEFI ECUs + noCommReadDelay = true; + defaultRuntimeRecordPerSec = 100; +#if CONN_SLOW +#else + maxUnusedRuntimeRange = 1000; +#endif + + ; Set default IP/port to our IP/port + defaultIpAddress = localhost + defaultIpPort = 29000; + +[Constants] +; new packet serial format with CRC + messageEnvelopeFormat = msEnvelope_1.0 + + endianness = little + nPages = 1 + + pageIdentifier = "\x00\x00" + pageReadCommand = "R%2o%2c" + burnCommand = "B" + pageActivate = "P" + pageValueWrite = "W%2o%v" + pageChunkWrite = "C%2o%2c%v" + crc32CheckCommand = "k%2o%2c" + retrieveConfigError = "e" + +;communication settings + 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 +#define gpio_list="NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +#define switch_input_pin_e_list="NONE","INVALID","INVALID","TPS1","INVALID","PPS1","INVALID","INVALID","INVALID","3S - EGR BOOST IN","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2A - Pressure Input","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4C - IN TEMP/PPS2","1K - AC Switch","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1L - Clutch","INVALID","INVALID","INVALID","INVALID","INVALID","2D - O2S2","INVALID","INVALID","INVALID","INVALID","INVALID","1Q - Brake/RES1" +#define output_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1B - AC Fan Relay","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","ETB EN","ETB +","ETB -","INVALID","INVALID","INVALID","INVALID","3N - IGN_1 (1&4)","INVALID","INVALID","INVALID","INVALID","P18/P22","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4E - VVT","3X - INJ_4","3W - INJ_3","1A - ECF","3L - TACH","3Q - IDLE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3R - IGN_2 (2&3)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4D - BOOST OUT","INVALID","INVALID","INVALID","INVALID","INVALID","1U - Fuel Pump","INVALID","1E - Check Engine Light","INVALID","INVALID","3U - INJ_1","3V - INJ_2","INVALID","INVALID","1G - AC Relay","INVALID","3Z - O2H2" +#define brain_input_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3G - CAM","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3F - CRANK","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4B - DIGITAL/FLEX","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1M - VSS" +#define adc_channel_e_list="NONE","2C - O2S","TPS1","intMAP","PPS1","2F - TPS","3B - Battery Sense","3G - CAM","3S - EGR BOOST IN","2A - Pressure Input","3F - CRANK","2B - MAF","INVALID","2G - Coolant","2B - IAT","4C - IN TEMP/PPS2","1K - AC Switch" + +; CONFIG_DEFINITION_START +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:33 UTC 2024 + +pageSize = 22236 +page = 1 +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 +sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 +launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 +rpmHardLimit = scalar, U16, 8, "rpm", 1, 0, 0, 20000, 0 +engineSnifferRpmThreshold = scalar, U16, 10, "RPM", 1, 0, 0, 30000, 0 +multisparkMaxRpm = scalar, U08, 12, "rpm", 50.0, 0, 0, 3000, 0 +maxAcRpm = scalar, U08, 13, "rpm", 50.0, 0, 0, 10000, 0 +maxAcTps = scalar, U08, 14, "%", 1, 0, 0, 100, 0 +maxAcClt = scalar, U08, 15, "deg C", 1, 0, 0, 150, 0 +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 +injectorSecondary_flow = scalar, F32, 120, "cm3/min", 1, 0, 0, 99999, 2 +injectorSecondary_battLagCorrBins = array, F32, 124, [8], "volts", 1, 0, 0, 20, 2 +injectorSecondary_battLagCorr = array, F32, 156, [8], "ms", 1, 0, 0, 50, 2 +isForcedInduction = bits, U32, 188, [0:0], "false", "true" +useFordRedundantTps = bits, U32, 188, [1:1], "false", "true" +enableKline = bits, U32, 188, [2:2], "false", "true" +overrideTriggerGaps = bits, U32, 188, [3:3], "false", "true" +enableFan1WithAc = bits, U32, 188, [4:4], "false", "true" +enableFan2WithAc = bits, U32, 188, [5:5], "false", "true" +disableFan1WhenStopped = bits, U32, 188, [6:6], "false", "true" +disableFan2WhenStopped = bits, U32, 188, [7:7], "false", "true" +enableTrailingSparks = bits, U32, 188, [8:8], "false", "true" +etb_use_two_wires = bits, U32, 188, [9:9], "false", "true" +isDoubleSolenoidIdle = bits, U32, 188, [10:10], "false", "true" +useEeprom = bits, U32, 188, [11:11], "false", "true" +useCicPidForIdle = bits, U32, 188, [12:12], "false", "true" +useTLE8888_cranking_hack = bits, U32, 188, [13:13], "false", "true" +kickStartCranking = bits, U32, 188, [14:14], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 188, [15:15], "false", "true" +launchControlEnabled = bits, U32, 188, [16:16], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 188, [17:17], "with filter", "without filter" +antiLagEnabled = bits, U32, 188, [18:18], "false", "true" +useRunningMathForCranking = bits, U32, 188, [19:19], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 188, [20:20], "false", "true" +useTLE8888_stepper = bits, U32, 188, [21:21], "false", "true" +usescriptTableForCanSniffingFiltering = bits, U32, 188, [22:22], "false", "true" +verboseCan = bits, U32, 188, [23:23], "Do not print", "Print all" +artificialTestMisfire = bits, U32, 188, [24:24], "No thank you", "Danger Mode" +useFordRedundantPps = bits, U32, 188, [25:25], "false", "true" +cltSensorPulldown = bits, U32, 188, [26:26], "false", "true" +iatSensorPulldown = bits, U32, 188, [27:27], "false", "true" +allowIdenticalPps = bits, U32, 188, [28:28], "false", "true" +overrideVvtTriggerGaps = bits, U32, 188, [29:29], "false", "true" +useSpiImu = bits, U32, 188, [30:30], "false", "true" +enableStagedInjection = bits, U32, 188, [31:31], "false", "true" +tpsMin = scalar, S16, 192, "ADC", 1, 0, 0, 1023, 0 +tpsMax = scalar, S16, 194, "ADC", 1, 0, 0, 1023, 0 +tpsErrorDetectionTooLow = scalar, S16, 196, "%", 1, 0, -10, 0, 0 +tpsErrorDetectionTooHigh = scalar, S16, 198, "%", 1, 0, 100, 110, 0 +cranking_baseFuel = scalar, F32, 200, "mg", 1, 0, 0, 500, 1 +cranking_rpm = scalar, S16, 204, "RPM", 1, 0, 0, 12000, 0 +ignitionDwellForCrankingMs = scalar, F32, 208, "ms", 1, 0, 0, 200, 1 +etbRevLimitStart = scalar, U16, 212, "rpm", 1, 0, 0, 15000, 0 +etbRevLimitRange = scalar, U16, 214, "rpm", 1, 0, 0, 2000, 0 +map_samplingAngleBins = array, F32, 216, [8], "", 1, 0, 0, 18000, 2 +map_samplingAngle = array, F32, 248, [8], "deg", 1, 0, -720, 720, 2 +map_samplingWindowBins = array, F32, 280, [8], "", 1, 0, 0, 18000, 2 +map_samplingWindow = array, F32, 312, [8], "deg", 1, 0, -720, 720, 2 +map_sensor_lowValue = scalar, F32, 344, "kpa", 1, 0, -400, 800, 2 +map_sensor_highValue = scalar, F32, 348, "kpa", 1, 0, -400, 800, 2 +map_sensor_type = bits, U08, 352, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +map_sensor_hwChannel = bits, U08, 353, [0:5], $adc_channel_e_list +clt_tempC_1 = scalar, F32, 356, "*C", 1, 0, -55, 200, 1 +clt_tempC_2 = scalar, F32, 360, "*C", 1, 0, -55, 200, 1 +clt_tempC_3 = scalar, F32, 364, "*C", 1, 0, -55, 200, 1 +clt_resistance_1 = scalar, F32, 368, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_2 = scalar, F32, 372, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_3 = scalar, F32, 376, "Ohm", 1, 0, 0, 1000000, 1 +clt_bias_resistor = scalar, F32, 380, "Ohm", 1, 0, 0, 200000, 1 +clt_adcChannel = bits, U08, 384, [0:5], $adc_channel_e_list +iat_tempC_1 = scalar, F32, 388, "*C", 1, 0, -55, 200, 1 +iat_tempC_2 = scalar, F32, 392, "*C", 1, 0, -55, 200, 1 +iat_tempC_3 = scalar, F32, 396, "*C", 1, 0, -55, 200, 1 +iat_resistance_1 = scalar, F32, 400, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_2 = scalar, F32, 404, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_3 = scalar, F32, 408, "Ohm", 1, 0, 0, 1000000, 1 +iat_bias_resistor = scalar, F32, 412, "Ohm", 1, 0, 0, 200000, 1 +iat_adcChannel = bits, U08, 416, [0:5], $adc_channel_e_list +launchTimingRetard = scalar, S32, 420, "deg", 1, 0, -180, 180, 2 +hip9011PrescalerAndSDO = scalar, S32, 424, "integer", 1, 0, 0, 32, 0 +knockBandCustom = scalar, F32, 428, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, U16, 432, "L", 0.001, 0, 0, 65, 3 +triggerSimulatorRpm = scalar, U16, 434, "RPM", 1, 0, 0, 30000, 0 +cylindersCount = scalar, U32, 436, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 440, [0:6], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "1-5-4-8-3-7-2-6", "fo33", "fo34", "fo35", "fo36", "fo37", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +communityCommsLedPid = bits, U16, 442, [0:7], $gpio_list +cylinderBore = scalar, F32, 444, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 448, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua", "INVALID", "INVALID", "INVALID", "INVALID" +ALSMaxTPS = scalar, U08, 449, "%", 1, 0, 0, 10, 0 +crankingInjectionMode = bits, U08, 450, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 451, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 452, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 454, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 455, "", 1, 0, 0, 250, 0 +crankingTimingAngle = scalar, F32, 456, "deg", 1, 0, -30, 30, 0 +ignitionMode = bits, U08, 460, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" +gapTrackingLengthOverride = scalar, S08, 461, "count", 1, 0, 1, 18, 0 +maxIdleVss = scalar, U08, 462, "kph", 1, 0, 0, 100, 0 +minOilPressureAfterStart = scalar, U16, 464, "kPa", 1, 0, 0, 1000, 0 +timingMode = bits, U08, 466, [0:0], "dynamic", "fixed" +fixedModeTiming = scalar, F32, 468, "RPM", 1, 0, 0, 3000, 0 +globalTriggerAngleOffset = scalar, F32, 472, "deg btdc", 1, 0, -720, 720, 0 +analogInputDividerCoefficient = scalar, F32, 476, "coef", 1, 0, 0.01, 10, 2 +vbattDividerCoeff = scalar, F32, 480, "coef", 1, 0, 0.01, 99, 2 +fanOnTemperature = scalar, F32, 484, "deg C", 1, 0, 0, 150, 0 +fanOffTemperature = scalar, F32, 488, "deg C", 1, 0, 0, 150, 0 +acrPin = bits, U16, 492, [0:8], $output_pin_e_list +driveWheelRevPerKm = scalar, F32, 496, "revs/km", 1, 0, 100, 1000, 1 +canNbcType = bits, U08, 500, [0:4], "None", "FIAT", "VAG", "MAZDA RX8", "BMW E46", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "MS Simplified Broadcast", "type 14", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canSleepPeriodMs = scalar, S32, 504, "ms", 1, 0, 0, 1000, 2 +camDecoder2jzPrecision = scalar, U08, 508, "", 1, 0, 0, 100, 0 +justATempTest = scalar, U08, 509, "", 1, 0, 0, 100, 0 +unusedHere333 = scalar, U08, 510, "", 1, 0, 0, 100, 0 +unusedHere334 = scalar, U08, 511, "", 1, 0, 0, 100, 0 +byFirmwareVersion = scalar, S32, 512, "index", 1, 0, 0, 300, 0 +tps1_1AdcChannel = bits, U08, 516, [0:5], $adc_channel_e_list +vbattAdcChannel = bits, U08, 517, [0:5], $adc_channel_e_list +fuelLevelSensor = bits, U08, 518, [0:5], $adc_channel_e_list +tps2_1AdcChannel = bits, U08, 519, [0:5], $adc_channel_e_list +idle_derivativeFilterLoss = scalar, F32, 520, "x", 1, 0, -1000000, 1000000, 4 +trailingSparkAngle = scalar, S32, 524, "angle", 1, 0, 0, 720, 0 +trigger_type = bits, U32, 528, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +trigger_customTotalToothCount = scalar, S32, 532, "number", 1, 0, 1, 300, 0 +trigger_customSkippedToothCount = scalar, S32, 536, "number", 1, 0, 0, 300, 0 +airByRpmTaper = scalar, F32, 540, "%", 1, 0, 0, 50, 1 +hip9011SpiDevice = bits, U08, 544, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +boostControlSafeDutyCycle = scalar, U08, 545, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 546, [0:5], $adc_channel_e_list +acrRevolutions = scalar, U08, 547, "", 1, 0, 0, 100, 0 +unused4bytesHere = scalar, F32, 548, "", 1, 0, 0, 100, 0 +adcVcc = scalar, F32, 552, "volts", 1, 0, 0, 6, 3 +mapCamDetectionAnglePosition = scalar, F32, 556, "Deg", 1, 0, 0, 360, 0 +camInputs1 = bits, U16, 560, [0:7], $brain_input_pin_e_list +camInputs2 = bits, U16, 562, [0:7], $brain_input_pin_e_list +camInputs3 = bits, U16, 564, [0:7], $brain_input_pin_e_list +camInputs4 = bits, U16, 566, [0:7], $brain_input_pin_e_list +afr_hwChannel = bits, U08, 568, [0:5], $adc_channel_e_list +afr_hwChannel2 = bits, U08, 569, [0:5], $adc_channel_e_list +afr_v1 = scalar, F32, 572, "volts", 1, 0, 0, 10, 2 +afr_value1 = scalar, F32, 576, "AFR", 1, 0, 0, 1000, 2 +afr_v2 = scalar, F32, 580, "volts", 1, 0, 0, 10, 2 +afr_value2 = scalar, F32, 584, "AFR", 1, 0, 0, 1000, 2 +throttlePedalPositionAdcChannel = bits, U08, 588, [0:5], $adc_channel_e_list +etbSplit = scalar, U08, 589, "%", 0.1, 0, 0, 20, 1 +tle6240_cs = bits, U16, 590, [0:7], $gpio_list +tle6240_csPinMode = bits, U08, 592, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33810_csPinMode = bits, U08, 593, [0:1], "default", "default inverted", "open collector", "open collector inverted" +throttlePedalUpPin = bits, U16, 594, [0:7], $switch_input_pin_e_list +baroSensor_lowValue = scalar, F32, 596, "kpa", 1, 0, -400, 800, 2 +baroSensor_highValue = scalar, F32, 600, "kpa", 1, 0, -400, 800, 2 +baroSensor_type = bits, U08, 604, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +baroSensor_hwChannel = bits, U08, 605, [0:5], $adc_channel_e_list +idle_solenoidFrequency = scalar, S32, 608, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 612, [0:8], $output_pin_e_list +idle_stepperDirectionPin = bits, U16, 614, [0:7], $gpio_list +idle_stepperStepPin = bits, U16, 616, [0:7], $gpio_list +idle_solenoidPinMode = bits, U08, 618, [0:1], "default", "default inverted", "open collector", "open collector inverted" +manIdlePosition = scalar, F32, 620, "%", 1, 0, 0, 100, 0 +knockRetardAggression = scalar, U08, 624, "%", 0.1, 0, 0, 20, 1 +knockRetardReapplyRate = scalar, U08, 625, "deg/s", 0.1, 0, 0, 10, 1 +engineSyncCam = bits, S08, 626, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" +vssFilterReciprocal = scalar, U08, 627, "", 1, 0, 3, 200 0 +vssGearRatio = scalar, U16, 628, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 630, "count", 1, 0, 1, 100, 0 +idleVeOverrideMode = bits, U08, 631, [0:1], "None", "MAP", "TPS", "INVALID" +l9779_cs = bits, U16, 632, [0:7], $gpio_list +injectionPins1 = bits, U16, 634, [0:8], $output_pin_e_list +injectionPins2 = bits, U16, 636, [0:8], $output_pin_e_list +injectionPins3 = bits, U16, 638, [0:8], $output_pin_e_list +injectionPins4 = bits, U16, 640, [0:8], $output_pin_e_list +injectionPins5 = bits, U16, 642, [0:8], $output_pin_e_list +injectionPins6 = bits, U16, 644, [0:8], $output_pin_e_list +injectionPins7 = bits, U16, 646, [0:8], $output_pin_e_list +injectionPins8 = bits, U16, 648, [0:8], $output_pin_e_list +injectionPins9 = bits, U16, 650, [0:8], $output_pin_e_list +injectionPins10 = bits, U16, 652, [0:8], $output_pin_e_list +injectionPins11 = bits, U16, 654, [0:8], $output_pin_e_list +injectionPins12 = bits, U16, 656, [0:8], $output_pin_e_list +ignitionPins1 = bits, U16, 658, [0:8], $output_pin_e_list +ignitionPins2 = bits, U16, 660, [0:8], $output_pin_e_list +ignitionPins3 = bits, U16, 662, [0:8], $output_pin_e_list +ignitionPins4 = bits, U16, 664, [0:8], $output_pin_e_list +ignitionPins5 = bits, U16, 666, [0:8], $output_pin_e_list +ignitionPins6 = bits, U16, 668, [0:8], $output_pin_e_list +ignitionPins7 = bits, U16, 670, [0:8], $output_pin_e_list +ignitionPins8 = bits, U16, 672, [0:8], $output_pin_e_list +ignitionPins9 = bits, U16, 674, [0:8], $output_pin_e_list +ignitionPins10 = bits, U16, 676, [0:8], $output_pin_e_list +ignitionPins11 = bits, U16, 678, [0:8], $output_pin_e_list +ignitionPins12 = bits, U16, 680, [0:8], $output_pin_e_list +injectionPinMode = bits, U08, 682, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 683, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 684, [0:8], $output_pin_e_list +fuelPumpPinMode = bits, U08, 686, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gapVvtTrackingLengthOverride = scalar, S08, 687, "count", 1, 0, 1, 4, 0 +malfunctionIndicatorPin = bits, U16, 688, [0:8], $output_pin_e_list +malfunctionIndicatorPinMode = bits, U08, 690, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 691, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 692, [0:8], $output_pin_e_list +clutchDownPin = bits, U16, 694, [0:7], $switch_input_pin_e_list +alternatorControlPin = bits, U16, 696, [0:8], $output_pin_e_list +alternatorControlPinMode = bits, U08, 698, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 699, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +digitalPotentiometerChipSelect1 = bits, U16, 700, [0:7], $gpio_list +digitalPotentiometerChipSelect2 = bits, U16, 702, [0:7], $gpio_list +digitalPotentiometerChipSelect3 = bits, U16, 704, [0:7], $gpio_list +digitalPotentiometerChipSelect4 = bits, U16, 706, [0:7], $gpio_list +electronicThrottlePin1Mode = bits, U08, 708, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 709, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +debugTriggerSync = bits, U16, 710, [0:7], $gpio_list +digitalPotentiometerSpiDevice = bits, U08, 712, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33972_cs = bits, U16, 714, [0:7], $gpio_list +mc33972_csPinMode = bits, U08, 716, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 717, [0:5], $adc_channel_e_list +tps1_2AdcChannel = bits, U08, 718, [0:5], $adc_channel_e_list +tps2_2AdcChannel = bits, U08, 719, [0:5], $adc_channel_e_list +throttlePedalPositionSecondAdcChannel = bits, U08, 720, [0:5], $adc_channel_e_list +fuelLevelValues = array, U08, 721, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 729, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM", "INVALID" +mc33810_cs1 = bits, U16, 730, [0:7], $gpio_list +idle_antiwindupFreq = scalar, F32, 732, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 736, [0:7], $brain_input_pin_e_list +triggerInputPins2 = bits, U16, 738, [0:7], $brain_input_pin_e_list +mc33_t_min_boost = scalar, U16, 740, "us", 1, 0, 0, 10000, 0 +hip9011CsPinMode = bits, U08, 742, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tachOutputPin = bits, U16, 744, [0:8], $output_pin_e_list +tachOutputPinMode = bits, U08, 746, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 748, [0:8], $output_pin_e_list +sdCardCsPin = bits, U16, 750, [0:7], $gpio_list +canTxPin = bits, U16, 752, [0:7], $gpio_list +canRxPin = bits, U16, 754, [0:7], $gpio_list +throttlePedalUpPinMode = bits, U08, 756, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acIdleExtraOffset = scalar, U08, 757, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 758, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 760, [0:7], $brain_input_pin_e_list +tcuInputSpeedSensorTeeth = scalar, U08, 762, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 764, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 766, "mv", 1, 0, 0, 5000, 0 +idlePositionMin = scalar, U16, 768, "mv", 1, 0, 0, 5000, 0 +idlePositionMax = scalar, U16, 770, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 772, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 776, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 780, [0:7], $gpio_list +triggerSimulatorPins2 = bits, U16, 782, [0:7], $gpio_list +fordInjectorSmallPulseSlope = scalar, U16, 784, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 786, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 787, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 788, [0:5], $adc_channel_e_list +o2heaterPin = bits, U16, 790, [0:8], $output_pin_e_list +o2heaterPinModeTodO = bits, U08, 792, [0:1], "default", "default inverted", "open collector", "open collector inverted" +lambdaProtectionMinRpm = scalar, U08, 793, "RPM", 100.0, 0, 0, 25000, 0 +lambdaProtectionMinLoad = scalar, U08, 794, "%", 10.0, 0, 0, 1000, 0 +is_enabled_spi_1 = bits, U32, 796, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 796, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 796, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 796, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 796, [4:4], "11 bit", "29 bit" +rethrowHardFault = bits, U32, 796, [5:5], "false", "true" +isHip9011Enabled = bits, U32, 796, [6:6], "false", "true" +requireFootOnBrakeToCrank = bits, U32, 796, [7:7], "false", "true" +verboseQuad = bits, U32, 796, [8:8], "false", "true" +useStepperIdle = bits, U32, 796, [9:9], "false", "true" +enabledStep1Limiter = bits, U32, 796, [10:10], "false", "true" +useTpicAdvancedMode = bits, U32, 796, [11:11], "false", "true" +lambdaProtectionEnable = bits, U32, 796, [12:12], "false", "true" +verboseTLE8888 = bits, U32, 796, [13:13], "false", "true" +enableVerboseCanTx = bits, U32, 796, [14:14], "false", "true" +etb1configured = bits, U32, 796, [15:15], "false", "true" +etb2configured = bits, U32, 796, [16:16], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 796, [17:17], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 796, [18:18], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 796, [19:19], "false", "true" +coastingFuelCutEnabled = bits, U32, 796, [20:20], "false", "true" +useIacTableForCoasting = bits, U32, 796, [21:21], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 796, [22:22], "false", "true" +useIdleTimingPidControl = bits, U32, 796, [23:23], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 796, [24:24], "false", "true" +is_enabled_spi_4 = bits, U32, 796, [25:25], "false", "true" +pauseEtbControl = bits, U32, 796, [26:26], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 796, [27:27], "false", "true" +verboseKLine = bits, U32, 796, [28:28], "false", "true" +idleIncrementalPidCic = bits, U32, 796, [29:29], "false", "true" +enableAemXSeries = bits, U32, 796, [30:30], "false", "true" +logicAnalyzerPins1 = bits, U16, 800, [0:7], $brain_input_pin_e_list +logicAnalyzerPins2 = bits, U16, 802, [0:7], $brain_input_pin_e_list +logicAnalyzerPins3 = bits, U16, 804, [0:7], $brain_input_pin_e_list +logicAnalyzerPins4 = bits, U16, 806, [0:7], $brain_input_pin_e_list +mainRelayPinMode = bits, U08, 808, [0:1], "default", "default inverted", "open collector", "open collector inverted" +hip9011CsPin = bits, U16, 810, [0:7], $gpio_list +hip9011IntHoldPin = bits, U16, 812, [0:7], $gpio_list +hip9011IntHoldPinMode = bits, U08, 814, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 816, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 820, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 821, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 822, [0:8], $output_pin_e_list +acFanPinMode = bits, U08, 824, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 825, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +dwellVoltageCorrVoltBins = array, U08, 826, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 834, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +dwellVoltageCorrValues = array, U08, 835, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 844, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 846, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 848, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 850, [0:7], $gpio_list +lps25BaroSensorSda = bits, U16, 852, [0:7], $gpio_list +vehicleSpeedSensorInputPin = bits, U16, 854, [0:7], $brain_input_pin_e_list +clutchUpPin = bits, U16, 856, [0:7], $switch_input_pin_e_list +injectorNonlinearMode = bits, U08, 858, [0:1], "None", "Polynomial", "Ford (dual slope)", "INVALID" +clutchUpPinMode = bits, U08, 859, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +max31855_cs1 = bits, U16, 860, [0:7], $gpio_list +max31855_cs2 = bits, U16, 862, [0:7], $gpio_list +max31855_cs3 = bits, U16, 864, [0:7], $gpio_list +max31855_cs4 = bits, U16, 866, [0:7], $gpio_list +max31855_cs5 = bits, U16, 868, [0:7], $gpio_list +max31855_cs6 = bits, U16, 870, [0:7], $gpio_list +max31855_cs7 = bits, U16, 872, [0:7], $gpio_list +max31855_cs8 = bits, U16, 874, [0:7], $gpio_list +flexSensorPin = bits, U16, 876, [0:7], $brain_input_pin_e_list +test557pin = bits, U16, 878, [0:7], $gpio_list +stepperDirectionPinMode = bits, U08, 880, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 881, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioSecondary = scalar, U08, 882, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 883, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 884, "hz", 1, 0, 1, 250, 0 +idlePositionChannel = bits, U08, 886, [0:5], $adc_channel_e_list +debugMapAveraging = bits, U16, 888, [0:7], $gpio_list +starterRelayDisablePin = bits, U16, 890, [0:8], $output_pin_e_list +starterRelayDisablePinMode = bits, U08, 892, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 894, [0:8], $output_pin_e_list +startStopButtonPin = bits, U16, 896, [0:7], $switch_input_pin_e_list +mapMinBufferLength = scalar, S32, 900, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 904, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 906, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 908, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 910, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 912, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 914, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 916, [0:7], $gpio_list +triggerErrorPinMode = bits, U08, 918, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 920, [0:8], $output_pin_e_list +lambdaProtectionMinTps = scalar, U08, 922, "%", 1, 0, 0, 100, 0 +lambdaProtectionTimeout = scalar, U08, 923, "s", 0.1, 0, 0, 10, 1 +lambdaProtectionRestoreRpm = scalar, U08, 924, "RPM", 100.0, 0, 0, 25000, 0 +acRelayPinMode = bits, U08, 925, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 928, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 932, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 936, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 940, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 944, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 948, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 952, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 956, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 960, [0:7], $gpio_list +spi1misoPin = bits, U16, 962, [0:7], $gpio_list +spi1sckPin = bits, U16, 964, [0:7], $gpio_list +spi2mosiPin = bits, U16, 966, [0:7], $gpio_list +spi2misoPin = bits, U16, 968, [0:7], $gpio_list +spi2sckPin = bits, U16, 970, [0:7], $gpio_list +spi3mosiPin = bits, U16, 972, [0:7], $gpio_list +spi3misoPin = bits, U16, 974, [0:7], $gpio_list +spi3sckPin = bits, U16, 976, [0:7], $gpio_list +cdmInputPin = bits, U16, 978, [0:7], $gpio_list +consoleUartDevice = bits, U08, 980, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 981, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1", "INVALID", "INVALID" +mafSensorType = bits, S08, 982, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 984, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 984, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 984, [2:2], "false", "true" +multisparkEnable = bits, U32, 984, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 984, [4:4], "false", "true" +canInputBCM = bits, U32, 984, [5:5], "false", "true" +consumeObdSensors = bits, U32, 984, [6:6], "false", "true" +enableCanVss = bits, U32, 984, [7:7], "false", "true" +enableInnovateLC2 = bits, U32, 984, [8:8], "false", "true" +showHumanReadableWarning = bits, U32, 984, [9:9], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 984, [10:10], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 984, [11:11], "false", "true" +enableSoftwareKnock = bits, U32, 984, [12:12], "false", "true" +verboseVVTDecoding = bits, U32, 984, [13:13], "false", "true" +invertCamVVTSignal = bits, U32, 984, [14:14], "Rising", "Falling" +alphaNUseIat = bits, U32, 984, [15:15], "false", "true" +knockBankCyl1 = bits, U32, 984, [16:16], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 984, [17:17], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 984, [18:18], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 984, [19:19], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 984, [20:20], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 984, [21:21], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 984, [22:22], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 984, [23:23], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 984, [24:24], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 984, [25:25], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 984, [26:26], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 984, [27:27], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 984, [28:28], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 984, [29:29], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 984, [30:30], "false", "true" +verboseCan2 = bits, U32, 984, [31:31], "Do not print", "Print all" +etbIo1_directionPin1 = bits, U16, 988, [0:7], $gpio_list +etbIo1_directionPin2 = bits, U16, 990, [0:7], $gpio_list +etbIo1_controlPin = bits, U16, 992, [0:7], $gpio_list +etbIo1_disablePin = bits, U16, 994, [0:7], $gpio_list +etbIo2_directionPin1 = bits, U16, 996, [0:7], $gpio_list +etbIo2_directionPin2 = bits, U16, 998, [0:7], $gpio_list +etbIo2_controlPin = bits, U16, 1000, [0:7], $gpio_list +etbIo2_disablePin = bits, U16, 1002, [0:7], $gpio_list +boostControlPin = bits, U16, 1004, [0:8], $output_pin_e_list +boostControlPinMode = bits, U08, 1006, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 1008, [0:7], $switch_input_pin_e_list +launchActivatePin = bits, U16, 1010, [0:7], $switch_input_pin_e_list +boostPid_pFactor = scalar, F32, 1012, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 1016, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 1020, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 1024, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 1026, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 1028, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 1030, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 1032, [0:0], "Open Loop", "Open + Closed Loop" +ignitionKeyDigitalPinMode = bits, U08, 1033, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +ignitionKeyDigitalPin = bits, U16, 1034, [0:7], $gpio_list +boostPwmFrequency = scalar, S32, 1036, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 1040, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)", "INVALID" +antiLagActivationMode = bits, S08, 1041, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 1044, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 1048, "RPM", 1, 0, 0, 8000, 0 +launchSparkSkipPercent = scalar, S32, 1052, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 1056, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 1060, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 1064, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 1068, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 1072, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 1076, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 1077, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 1078, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 1079, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 1080, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 1081, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 1082, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 1083, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 1084, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 1085, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 1086, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 1088, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 1089, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 1090, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1092, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1093, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1094, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1096, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1097, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1098, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1100, [0:7], $gpio_list +stepperDcIo1_directionPin2 = bits, U16, 1102, [0:7], $gpio_list +stepperDcIo1_controlPin = bits, U16, 1104, [0:7], $gpio_list +stepperDcIo1_disablePin = bits, U16, 1106, [0:7], $gpio_list +stepperDcIo2_directionPin1 = bits, U16, 1108, [0:7], $gpio_list +stepperDcIo2_directionPin2 = bits, U16, 1110, [0:7], $gpio_list +stepperDcIo2_controlPin = bits, U16, 1112, [0:7], $gpio_list +stepperDcIo2_disablePin = bits, U16, 1114, [0:7], $gpio_list +engineMake = string, ASCII, 1116, 32 +engineCode = string, ASCII, 1148, 32 +vehicleName = string, ASCII, 1180, 32 +tcu_solenoid1 = bits, U16, 1212, [0:8], $output_pin_e_list +tcu_solenoid2 = bits, U16, 1214, [0:8], $output_pin_e_list +tcu_solenoid3 = bits, U16, 1216, [0:8], $output_pin_e_list +tcu_solenoid4 = bits, U16, 1218, [0:8], $output_pin_e_list +tcu_solenoid5 = bits, U16, 1220, [0:8], $output_pin_e_list +tcu_solenoid6 = bits, U16, 1222, [0:8], $output_pin_e_list +etbFunctions1 = bits, U08, 1224, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +etbFunctions2 = bits, U08, 1225, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +drv8860spiDevice = bits, U08, 1226, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +drv8860_cs = bits, U16, 1228, [0:7], $gpio_list +drv8860_csPinMode = bits, U08, 1230, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1232, [0:7], $gpio_list +fuelLevelBins = array, U16, 1234, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1250, [0:8], $output_pin_e_list +luaOutputPins2 = bits, U16, 1252, [0:8], $output_pin_e_list +luaOutputPins3 = bits, U16, 1254, [0:8], $output_pin_e_list +luaOutputPins4 = bits, U16, 1256, [0:8], $output_pin_e_list +luaOutputPins5 = bits, U16, 1258, [0:8], $output_pin_e_list +luaOutputPins6 = bits, U16, 1260, [0:8], $output_pin_e_list +luaOutputPins7 = bits, U16, 1262, [0:8], $output_pin_e_list +luaOutputPins8 = bits, U16, 1264, [0:8], $output_pin_e_list +vvtOffsets1 = scalar, F32, 1268, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1272, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1276, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1280, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1284, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1290, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1296, [0:7], $gpio_list +vrThreshold2_rpmBins = array, U08, 1300, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1306, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_pin = bits, U16, 1312, [0:7], $gpio_list +gpPwmNote1 = string, ASCII, 1316, 16 +gpPwmNote2 = string, ASCII, 1332, 16 +gpPwmNote3 = string, ASCII, 1348, 16 +gpPwmNote4 = string, ASCII, 1364, 16 +tps2SecondaryMin = scalar, U16, 1380, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1382, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1384, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1384, [1:1], "false", "true" +oddFireEngine = bits, U32, 1384, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1384, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1384, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1384, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1384, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1384, [7:7], "false", "true" +canReadEnabled = bits, U32, 1384, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1384, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1384, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1384, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1384, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1384, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1384, [14:14], "Rising", "Falling" +invertSecondaryTriggerSignal = bits, U32, 1384, [15:15], "Rising", "Falling" +cutFuelOnHardLimit = bits, U32, 1384, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1384, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1384, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1384, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1384, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1384, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1384, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1384, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1384, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1384, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1384, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1384, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1384, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1384, [29:29], "false", "true" +twoStroke = bits, U32, 1384, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1384, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1388, [0:5], $adc_channel_e_list +acSwitch = bits, U16, 1390, [0:7], $switch_input_pin_e_list +vRefAdcChannel = bits, U08, 1392, [0:5], $adc_channel_e_list +etbNeutralPosition = scalar, U08, 1393, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1394, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1396, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1396, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1396, [2:2], "false", "true" +complexWallModel = bits, U32, 1396, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1396, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1396, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1396, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1396, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1396, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1396, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1396, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1396, [11:11], "false", "true" +cutFuelInAcr = bits, U32, 1396, [12:12], "false", "true" +hondaK = bits, U32, 1396, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1396, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1396, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1396, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1396, [17:17], "false", "true" +flexCranking = bits, U32, 1396, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1396, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1396, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1396, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1396, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1396, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1396, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1396, [25:25], "advance", "retard" +invertVvtControlExhaust = bits, U32, 1396, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1396, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1396, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1396, [29:29], "false", "true" +stepper_dc_use_two_wires = bits, U32, 1396, [30:30], "false", "true" +watchOutForLinearTime = bits, U32, 1396, [31:31], "false", "true" +engineChartSize = scalar, U32, 1400, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1404, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1408, [0:7], $gpio_list +camInputsDebug2 = bits, U16, 1410, [0:7], $gpio_list +camInputsDebug3 = bits, U16, 1412, [0:7], $gpio_list +camInputsDebug4 = bits, U16, 1414, [0:7], $gpio_list +acIdleRpmTarget = scalar, S16, 1416, "RPM", 1, 0, 0, 2000, 0 +warningPeriod = scalar, S16, 1418, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1420, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1424, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1428, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1432, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1436, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1440, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1444, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1448, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1452, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1456, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1460, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1464, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1466, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1468, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1470, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1472, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1476, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1480, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1484, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1486, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1488, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1490, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1492, [0:7], $gpio_list +triggerInputDebugPins2 = bits, U16, 1494, [0:7], $gpio_list +airTaperRpmRange = scalar, S16, 1496, "RPM", 1, 0, 0, 1500, 0 +turboSpeedSensorInputPin = bits, U16, 1498, [0:7], $brain_input_pin_e_list +tps2Min = scalar, S16, 1500, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1502, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1504, [0:8], $output_pin_e_list +startStopButtonMode = bits, U08, 1506, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +mc33816_flag0 = bits, U16, 1508, [0:7], $gpio_list +tachPulsePerRev = scalar, U08, 1510, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1512, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1516, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1520, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1522, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1524, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1528, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1532, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1536, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1538, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1540, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1542, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1544, "Fraction", 1, 0, 0, 1, 2 +binarySerialTxPin = bits, U16, 1548, [0:7], $gpio_list +binarySerialRxPin = bits, U16, 1550, [0:7], $gpio_list +auxValves1 = bits, U16, 1552, [0:7], $gpio_list +auxValves2 = bits, U16, 1554, [0:7], $gpio_list +tcuUpshiftButtonPin = bits, U16, 1556, [0:7], $switch_input_pin_e_list +tcuDownshiftButtonPin = bits, U16, 1558, [0:7], $switch_input_pin_e_list +throttlePedalUpVoltage = scalar, F32, 1560, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1564, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1568, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1570, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1572, "Volts", 1, 0, 0, 30, 1 +mc33810DisableRecoveryMode = bits, U32, 1576, [0:0], "false", "true" +mc33810Gpgd0Mode = bits, U32, 1576, [1:1], "false", "true" +mc33810Gpgd1Mode = bits, U32, 1576, [2:2], "false", "true" +mc33810Gpgd2Mode = bits, U32, 1576, [3:3], "false", "true" +mc33810Gpgd3Mode = bits, U32, 1576, [4:4], "false", "true" +enableExtendedCanBroadcast = bits, U32, 1576, [5:5], "false", "true" +luaCanRxWorkaround = bits, U32, 1576, [6:6], "false", "true" +flexSensorInverted = bits, U32, 1576, [7:7], "false", "true" +useHardSkipInTraction = bits, U32, 1576, [8:8], "false", "true" +useAuxSpeedForSlipRatio = bits, U32, 1576, [11:11], "false", "true" +useVssAsSecondWheelSpeed = bits, U32, 1576, [12:12], "false", "true" +is_enabled_spi_5 = bits, U32, 1576, [13:13], "false", "true" +is_enabled_spi_6 = bits, U32, 1576, [14:14], "false", "true" +afterCrankingIACtaperDuration = scalar, S16, 1580, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1582, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1584, [0:7], $gpio_list +auxSerialRxPin = bits, U16, 1586, [0:7], $gpio_list +accelerometerCsPin = bits, U16, 1588, [0:7], $gpio_list +tpsAccelLookback = scalar, U08, 1590, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1591, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1592, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1593, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1596, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1600, [0:7], $brain_input_pin_e_list +auxSpeedSensorInputPin2 = bits, U16, 1602, [0:7], $brain_input_pin_e_list +totalGearsCount = scalar, U08, 1604, "", 1, 0, 1, 10, 0 +injectionTimingMode = bits, U08, 1605, [0:1], "End of injection", "Start of injection", "Center of injection", "INVALID" +debugMode = bits, U08, 1606, [0:5], "INVALID", "TPS acceleration enrichment", "INVALID", "Stepper Idle Control", "Engine Load accl enrich", "Trigger Counters", "Soft Spark Cut", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "SD card", "sr5", "Knock", "INVALID", "Electronic Throttle", "Executor", "Bench Test / TS commands", "INVALID", "Analog inputs #1", "INSTANT_RPM", "INVALID", "Status", "INVALID", "INVALID", "MAP", "Metrics", "INVALID", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "INVALID", "Boost Control", "INVALID", "INVALID", "ETB Autotune", "Composite Log", "INVALID", "INVALID", "INVALID", "Dyno_View", "Logic_Analyzer", "INVALID", "TCU", "Lua", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan1ExtraIdle = scalar, U08, 1607, "%", 1, 0, 0, 100, 0 +uartConsoleSerialSpeed = scalar, U32, 1608, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1612, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1616, "coeff", 1, 0, 0, 200, 2 +auxSerialSpeed = scalar, U32, 1620, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1624, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1628, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1632, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +veOverrideMode = bits, U08, 1633, [0:1], "None", "MAP", "TPS", "INVALID" +can2BaudRate = bits, U08, 1634, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +afrOverrideMode = bits, U08, 1635, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +mc33_hpfp_i_peak = scalar, U08, 1636, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1637, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1638, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1639, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1640, [0:0], "false", "true" +canOpenBLT = bits, U32, 1640, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1640, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1640, [3:3], "volumetric flow", "mass flow" +boardUseCanTerminator = bits, U32, 1640, [4:4], "false", "true" +kLineDoHondaSend = bits, U32, 1640, [5:5], "false", "true" +can1ListenMode = bits, U32, 1640, [6:6], "false", "true" +can2ListenMode = bits, U32, 1640, [7:7], "false", "true" +camDecoder2jzPosition = scalar, U08, 1644, "", 1, 0, 0, 100, 0 +mc33810maxDwellTimer = bits, U08, 1645, [0:2], "2 mS", "4 mS", "8 mS", "16 mS", "32 mS", "64 mS", "INVALID", "INVALID" +benchTestOnTime = scalar, U16, 1646, "ms", 0.01, 0, 0, 500, 2 +lambdaProtectionRestoreTps = scalar, U08, 1648, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1649, "%", 10.0, 0, 0, 1000, 0 +launchActivatePinMode = bits, U08, 1650, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +can2TxPin = bits, U16, 1652, [0:7], $gpio_list +can2RxPin = bits, U16, 1654, [0:7], $gpio_list +starterControlPinMode = bits, U08, 1656, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1657, [0:5], $adc_channel_e_list +ignOverrideMode = bits, U08, 1658, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +injectorPressureType = bits, U08, 1659, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1660, [0:8], $output_pin_e_list +hpfpValvePinMode = bits, U08, 1662, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1664, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1668, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1684, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1700, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1704, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1708, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1712, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1716, [0:8], $output_pin_e_list +vvtPins2 = bits, U16, 1718, [0:8], $output_pin_e_list +vvtPins3 = bits, U16, 1720, [0:8], $output_pin_e_list +vvtPins4 = bits, U16, 1722, [0:8], $output_pin_e_list +sdCardCsPinMode = bits, U08, 1724, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1728, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1732, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1736, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1740, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1744, "", 1, 0, 0, 3, 4 +vvtOutputFrequency = scalar, U16, 1748, "Hz", 1, 0, 0, 3000, 0 +minimumIgnitionTiming = scalar, S08, 1750, "deg BTDC", 1, 0, -90, 90, 0 +maximumIgnitionTiming = scalar, S08, 1751, "deg BTDC", 1, 0, -90, 90, 0 +alternatorPwmFrequency = scalar, S32, 1752, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1756, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vvtMode2 = bits, U08, 1757, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan2ExtraIdle = scalar, U08, 1758, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1759, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1760, [0:5], $adc_channel_e_list +auxAnalogInputs2 = bits, U08, 1761, [0:5], $adc_channel_e_list +auxAnalogInputs3 = bits, U08, 1762, [0:5], $adc_channel_e_list +auxAnalogInputs4 = bits, U08, 1763, [0:5], $adc_channel_e_list +auxAnalogInputs5 = bits, U08, 1764, [0:5], $adc_channel_e_list +auxAnalogInputs6 = bits, U08, 1765, [0:5], $adc_channel_e_list +auxAnalogInputs7 = bits, U08, 1766, [0:5], $adc_channel_e_list +auxAnalogInputs8 = bits, U08, 1767, [0:5], $adc_channel_e_list +trailingCoilPins1 = bits, U16, 1768, [0:8], $output_pin_e_list +trailingCoilPins2 = bits, U16, 1770, [0:8], $output_pin_e_list +trailingCoilPins3 = bits, U16, 1772, [0:8], $output_pin_e_list +trailingCoilPins4 = bits, U16, 1774, [0:8], $output_pin_e_list +trailingCoilPins5 = bits, U16, 1776, [0:8], $output_pin_e_list +trailingCoilPins6 = bits, U16, 1778, [0:8], $output_pin_e_list +trailingCoilPins7 = bits, U16, 1780, [0:8], $output_pin_e_list +trailingCoilPins8 = bits, U16, 1782, [0:8], $output_pin_e_list +trailingCoilPins9 = bits, U16, 1784, [0:8], $output_pin_e_list +trailingCoilPins10 = bits, U16, 1786, [0:8], $output_pin_e_list +trailingCoilPins11 = bits, U16, 1788, [0:8], $output_pin_e_list +trailingCoilPins12 = bits, U16, 1790, [0:8], $output_pin_e_list +tle8888mode = bits, U08, 1792, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +accelerometerCsPinMode = bits, U08, 1793, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1794, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure", "INVALID" +fan2PinMode = bits, U08, 1795, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1796, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = array, F32, 1800, [6x6], "mult", 1, 0, 1, 3, 2 +postCrankingDurationBins = array, F32, 1944, [6], "count", 1, 0, 0, 1000, 0 +postCrankingCLTBins = array, F32, 1968, [6], "C", 1, 0, -100, 100, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1992, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1996, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 2000, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 2004, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 2008, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 2012, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 2016, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 2020, [0:5], $adc_channel_e_list +auxTempSensor2_tempC_1 = scalar, F32, 2024, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 2028, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 2032, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 2036, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 2040, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 2044, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 2048, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 2052, [0:5], $adc_channel_e_list +knockSamplingDuration = scalar, S16, 2056, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 2058, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 2060, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 2064, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 2068, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 2072, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 2074, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 2076, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 2078, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 2080, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperMinDutyCycle = scalar, U08, 2081, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 2082, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 2083, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +timing_offset_cylinder1 = scalar, F32, 2084, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 2088, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 2092, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 2096, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 2100, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 2104, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 2108, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 2112, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 2116, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 2120, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 2124, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 2128, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 2132, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 2136, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MosiMode = bits, U08, 2137, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MisoMode = bits, U08, 2138, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2SckMode = bits, U08, 2139, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MosiMode = bits, U08, 2140, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MisoMode = bits, U08, 2141, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3SckMode = bits, U08, 2142, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MosiMode = bits, U08, 2143, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MisoMode = bits, U08, 2144, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperEnablePinMode = bits, U08, 2145, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 2146, [0:7], $gpio_list +mc33816_driven = bits, U16, 2148, [0:7], $gpio_list +brakePedalPin = bits, U16, 2150, [0:7], $switch_input_pin_e_list +brakePedalPinMode = bits, U08, 2152, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +auxPid1_pFactor = scalar, F32, 2156, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 2160, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 2164, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 2168, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 2170, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 2172, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 2174, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 2176, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 2180, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 2184, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 2188, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 2190, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 2192, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 2194, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2196, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2200, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2204, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2208, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2212, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2216, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2220, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2224, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 2228, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 2236, [0:5], $adc_channel_e_list +oilPressure_v1 = scalar, F32, 2240, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 2244, "", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 2248, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 2252, "", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 2256, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +fan2Pin = bits, U16, 2258, [0:8], $output_pin_e_list +fan2OnTemperature = scalar, U08, 2260, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 2261, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 2262, [0:7], $gpio_list +tle8888_cs = bits, U16, 2264, [0:7], $gpio_list +tle8888_csPinMode = bits, U08, 2266, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_cs = bits, U16, 2268, [0:7], $gpio_list +auxFrequencyFilter = scalar, F32, 2272, "hz", 1, 0, 0, 100, 1 +vvtControlMinRpm = scalar, S16, 2276, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2278, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +launchFuelAdderPercent = scalar, S08, 2280, "%", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2281, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2282, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2284, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2288, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2290, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2292, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2294, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2296, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2298, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2300, [0:5], $adc_channel_e_list +highPressureFuel_v1 = scalar, F32, 2304, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2308, "", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2312, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2316, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2320, [0:5], $adc_channel_e_list +lowPressureFuel_v1 = scalar, F32, 2324, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2328, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2332, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2336, "", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2340, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2344, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2352, 16 +scriptCurveName2 = string, ASCII, 2368, 16 +scriptCurveName3 = string, ASCII, 2384, 16 +scriptCurveName4 = string, ASCII, 2400, 16 +scriptCurveName5 = string, ASCII, 2416, 16 +scriptCurveName6 = string, ASCII, 2432, 16 +scriptTableName1 = string, ASCII, 2448, 16 +scriptTableName2 = string, ASCII, 2464, 16 +scriptTableName3 = string, ASCII, 2480, 16 +scriptTableName4 = string, ASCII, 2496, 16 +scriptSettingName1 = string, ASCII, 2512, 16 +scriptSettingName2 = string, ASCII, 2528, 16 +scriptSettingName3 = string, ASCII, 2544, 16 +scriptSettingName4 = string, ASCII, 2560, 16 +scriptSettingName5 = string, ASCII, 2576, 16 +scriptSettingName6 = string, ASCII, 2592, 16 +scriptSettingName7 = string, ASCII, 2608, 16 +scriptSettingName8 = string, ASCII, 2624, 16 +tChargeAirCoefMin = scalar, F32, 2640, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2644, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2648, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2652, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2656, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2660, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table", "INVALID" +hip9011Gain = scalar, F32, 2664, "", 1, 0, 0, 100, 2 +etb_iTermMin = scalar, S16, 2668, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2670, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2672, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2676, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2680, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2684, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2686, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2688, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2690, "", 1, 0, -30000, 30000, 0 +idleTimingSoftEntryTime = scalar, F32, 2692, "", 1, 0, 0, 100, 1 +etbRocExpAverageLength = scalar, S16, 2696, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2698, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2700, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2704, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33816spiDevice = bits, U08, 2705, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +idlerpmpid_iTermMin = scalar, S16, 2706, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2708, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioPrimary = scalar, U08, 2709, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2710, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2712, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2716, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2717, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2718, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2719, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2720, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2721, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2722, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2723, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2724, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2725, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2726, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2727, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2728, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2736, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2737, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2738, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2739, "RPM", 50.0, 0, 0, 12000, 0 +tractionControlSlipBins = array, U16, 2740, [6], "ratio", 0.01, 0, 0, 999, 2 +tractionControlSpeedBins = array, U08, 2752, [6], "RPM", 1, 0, 0, 250, 0 +disableFan1AtSpeed = scalar, S08, 2758, "", 1, 0, 0, 100, 0 +disableFan2AtSpeed = scalar, S08, 2759, "", 1, 0, 0, 100, 0 +canVssNbcType = bits, U08, 2760, [0:2], "BMW_e46", "W202", "BMW E8x/E9x MK60e5", "Nissan 350", "Hyundai PB", "Honda Civic9", "INVALID", "INVALID" +gppwm1_pin = bits, U16, 2764, [0:8], $output_pin_e_list +gppwm1_dutyIfError = scalar, U08, 2766, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2768, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2770, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2771, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2772, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_rpmAxis = bits, U08, 2773, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadBins = array, S16, 2774, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm1_rpmBins = array, S16, 2790, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2806, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2872, [0:8], $output_pin_e_list +gppwm2_dutyIfError = scalar, U08, 2874, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2876, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2878, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2879, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2880, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_rpmAxis = bits, U08, 2881, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadBins = array, S16, 2882, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm2_rpmBins = array, S16, 2898, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2914, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2980, [0:8], $output_pin_e_list +gppwm3_dutyIfError = scalar, U08, 2982, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2984, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2986, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2987, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2988, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_rpmAxis = bits, U08, 2989, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadBins = array, S16, 2990, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm3_rpmBins = array, S16, 3006, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 3022, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 3088, [0:8], $output_pin_e_list +gppwm4_dutyIfError = scalar, U08, 3090, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 3092, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 3094, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 3095, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 3096, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_rpmAxis = bits, U08, 3097, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadBins = array, S16, 3098, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm4_rpmBins = array, S16, 3114, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 3130, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 3196, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 3198, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 3200, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 3202, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 3204, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 3206, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 3208, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 3210, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 3212, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 3214, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcuDownshiftButtonPinMode = bits, U08, 3215, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acSwitchMode = bits, U08, 3216, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_solenoid_mode1 = bits, U08, 3217, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 3218, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 3219, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 3220, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 3221, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 3222, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 3223, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 3240, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 3244, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 3248, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 3252, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 3256, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 3260, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 3264, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 3268, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3272, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3276, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3280, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3284, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3288, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3292, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3296, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3300, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3304, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3308, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3312, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3316, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3320, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3324, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3328, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3332, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3336, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3340, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3344, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3348, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3352, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3356, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3360, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3364, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3368, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3372, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3376, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3380, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3384, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3385, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3386, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3388, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3390, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3394, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3395, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3396, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2", "INVALID", "INVALID", "INVALID" +auxiliarySetting1 = scalar, U08, 3397, "", 1, 0, 0, 100, 0 +hpfpMinAngle = scalar, U08, 3398, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3400, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3402, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3403, "", 1, 0, 0, 255, 0 +hpfpPidP = scalar, U16, 3404, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3406, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3408, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3410, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3426, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3442, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3450, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3466, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3666, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3686, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3696, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3796, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3816, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3826, [0:8], $output_pin_e_list +stepper_raw_output2 = bits, U16, 3828, [0:8], $output_pin_e_list +stepper_raw_output3 = bits, U16, 3830, [0:8], $output_pin_e_list +stepper_raw_output4 = bits, U16, 3832, [0:8], $output_pin_e_list +gearRatio1 = scalar, U16, 3834, "ratio", 0.01, 0, 0, 30, 2 +gearRatio2 = scalar, U16, 3836, "ratio", 0.01, 0, 0, 30, 2 +gearRatio3 = scalar, U16, 3838, "ratio", 0.01, 0, 0, 30, 2 +gearRatio4 = scalar, U16, 3840, "ratio", 0.01, 0, 0, 30, 2 +gearRatio5 = scalar, U16, 3842, "ratio", 0.01, 0, 0, 30, 2 +gearRatio6 = scalar, U16, 3844, "ratio", 0.01, 0, 0, 30, 2 +gearRatio7 = scalar, U16, 3846, "ratio", 0.01, 0, 0, 30, 2 +gearRatio8 = scalar, U16, 3848, "ratio", 0.01, 0, 0, 30, 2 +gearRatio9 = scalar, U16, 3850, "ratio", 0.01, 0, 0, 30, 2 +gearRatio10 = scalar, U16, 3852, "ratio", 0.01, 0, 0, 30, 2 +vvtActivationDelayMs = scalar, U16, 3854, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3856, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3864, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3872, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3880, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3888, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3896, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3904, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3940, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3952, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3964, [0:1], "None", "Button Shift", "INVALID", "INVALID" +transmissionControllerMode = bits, U08, 3965, [0:1], "None", "Simple Transmission", "GM 4L6X", "INVALID" +acrDisablePhase = scalar, U16, 3966, "deg", 1, 0, 0, 720, 0 +auxLinear1_hwChannel = bits, U08, 3968, [0:5], $adc_channel_e_list +auxLinear1_v1 = scalar, F32, 3972, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3976, "", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3980, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3984, "", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3988, [0:5], $adc_channel_e_list +auxLinear2_v1 = scalar, F32, 3992, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3996, "", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 4000, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 4004, "", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 4008, [0:8], $output_pin_e_list +tcu_tcc_onoff_solenoid_mode = bits, U08, 4010, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 4012, [0:8], $output_pin_e_list +tcu_tcc_pwm_solenoid_mode = bits, U08, 4014, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 4016, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 4018, [0:8], $output_pin_e_list +tcu_pc_solenoid_pin_mode = bits, U08, 4020, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 4022, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 4024, [0:8], $output_pin_e_list +tcu_32_solenoid_pin_mode = bits, U08, 4026, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 4028, "Hz", 1, 0, 0, 3000, 0 +acrPin2 = bits, U16, 4030, [0:8], $output_pin_e_list +etbMinimumPosition = scalar, F32, 4032, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 4036, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 4038, 17 +highSpeedOffsets = array, U16, 4056, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 4120, "", 1, 0, 0, 100, 0 +fuelPressureSensorMode = bits, U08, 4124, [0:1], "Absolute", "Gauge", "Differential", "INVALID" +luaDigitalInputPins1 = bits, U16, 4126, [0:7], $switch_input_pin_e_list +luaDigitalInputPins2 = bits, U16, 4128, [0:7], $switch_input_pin_e_list +luaDigitalInputPins3 = bits, U16, 4130, [0:7], $switch_input_pin_e_list +luaDigitalInputPins4 = bits, U16, 4132, [0:7], $switch_input_pin_e_list +luaDigitalInputPins5 = bits, U16, 4134, [0:7], $switch_input_pin_e_list +luaDigitalInputPins6 = bits, U16, 4136, [0:7], $switch_input_pin_e_list +luaDigitalInputPins7 = bits, U16, 4138, [0:7], $switch_input_pin_e_list +luaDigitalInputPins8 = bits, U16, 4140, [0:7], $switch_input_pin_e_list +tpsTspCorrValuesBins = array, U08, 4142, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 4146, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 4148, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 4150, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 4152, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 4153, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 4154, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 4155, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 4156, "%", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 4157, [0:1], "None", "GM type 1", "Ford type 1", "Custom" +customSentTpsMin = scalar, U16, 4158, "", 1, 0, 0, 32000, 0 +ALSIdleAdd = scalar, S32, 4160, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 4164, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, F32, 4168, "", 1, 0, 0, 1, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 4172, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 4173, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tpsSecondaryMaximum = scalar, U08, 4174, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 4175, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 4176, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes2 = bits, U08, 4177, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes3 = bits, U08, 4178, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes4 = bits, U08, 4179, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes5 = bits, U08, 4180, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes6 = bits, U08, 4181, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes7 = bits, U08, 4182, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes8 = bits, U08, 4183, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +customSentTpsMax = scalar, U16, 4184, "", 1, 0, 0, 32000, 0 +kLineBaudRate = scalar, U16, 4186, "", 1, 0, 0, 32000, 0 +canGpioType = bits, S08, 4188, [0:1], "None", "DRT protocol", "MS protocol", "INVALID" +uiMode = bits, S08, 4189, [0:1], "Full", "Installation", "Tuning", "INVALID" +hpfpPeakPos = scalar, S16, 4190, "deg", 1, 0, -719, 719, 0 +kLinePeriodUs = scalar, S16, 4192, "us", 1, 0, 0, 30000, 0 +rpmSoftLimitWindowSize = scalar, U08, 4194, "RPM", 10.0, 0, 0, 2500, 0 +rpmSoftLimitTimingRetard = scalar, U08, 4195, "deg", 0.2, 0, 0, 50, 1 +rpmSoftLimitFuelAdded = scalar, U08, 4196, "%", 0.2, 0, 0, 50, 1 +rpmHardLimitHyst = scalar, U08, 4197, "RPM", 10.0, 0, 0, 2500, 0 +benchTestOffTime = scalar, U16, 4198, "ms", 0.1, 0, 0, 2000, 1 +boostCutPressureHyst = scalar, U08, 4200, "kPa (absolute)", 0.5, 0, 0, 125, 1 +gearBasedOpenLoopBoostAdder = array, U08, 4201, [10], "%", 0.5, 0, 0, 100, 1 +benchTestCount = scalar, U32, 4212, "", 1, 0, 0, 10000000, 0 +iacByTpsHoldTime = scalar, U08, 4216, "seconds", 0.1, 0, 0, 25, 1 +iacByTpsDecayTime = scalar, U08, 4217, "seconds", 0.1, 0, 0, 25, 1 +tcu_rangeInput1 = bits, U16, 4218, [0:7], $switch_input_pin_e_list +tcu_rangeInput2 = bits, U16, 4220, [0:7], $switch_input_pin_e_list +tcu_rangeInput3 = bits, U16, 4222, [0:7], $switch_input_pin_e_list +tcu_rangeInput4 = bits, U16, 4224, [0:7], $switch_input_pin_e_list +tcu_rangeInput5 = bits, U16, 4226, [0:7], $switch_input_pin_e_list +tcu_rangeInput6 = bits, U16, 4228, [0:7], $switch_input_pin_e_list +tcu_rangeInputMode1 = bits, U08, 4230, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode2 = bits, U08, 4231, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode3 = bits, U08, 4232, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode4 = bits, U08, 4233, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode5 = bits, U08, 4234, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode6 = bits, U08, 4235, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +canVssScaling = scalar, U16, 4236, "ratio", 1.0E-4, 0, 0.5, 1.5, 4 +oilTempSensor_tempC_1 = scalar, F32, 4240, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_2 = scalar, F32, 4244, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_3 = scalar, F32, 4248, "*C", 1, 0, -55, 200, 1 +oilTempSensor_resistance_1 = scalar, F32, 4252, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_2 = scalar, F32, 4256, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_3 = scalar, F32, 4260, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_bias_resistor = scalar, F32, 4264, "Ohm", 1, 0, 0, 200000, 1 +oilTempSensor_adcChannel = bits, U08, 4268, [0:5], $adc_channel_e_list +fuelTempSensor_tempC_1 = scalar, F32, 4272, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_2 = scalar, F32, 4276, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_3 = scalar, F32, 4280, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_resistance_1 = scalar, F32, 4284, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_2 = scalar, F32, 4288, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_3 = scalar, F32, 4292, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_bias_resistor = scalar, F32, 4296, "Ohm", 1, 0, 0, 200000, 1 +fuelTempSensor_adcChannel = bits, U08, 4300, [0:5], $adc_channel_e_list +ambientTempSensor_tempC_1 = scalar, F32, 4304, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_2 = scalar, F32, 4308, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_3 = scalar, F32, 4312, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_resistance_1 = scalar, F32, 4316, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_2 = scalar, F32, 4320, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_3 = scalar, F32, 4324, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_bias_resistor = scalar, F32, 4328, "Ohm", 1, 0, 0, 200000, 1 +ambientTempSensor_adcChannel = bits, U08, 4332, [0:5], $adc_channel_e_list +compressorDischargeTemperature_tempC_1 = scalar, F32, 4336, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_2 = scalar, F32, 4340, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_3 = scalar, F32, 4344, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_resistance_1 = scalar, F32, 4348, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_2 = scalar, F32, 4352, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_3 = scalar, F32, 4356, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_bias_resistor = scalar, F32, 4360, "Ohm", 1, 0, 0, 200000, 1 +compressorDischargeTemperature_adcChannel = bits, U08, 4364, [0:5], $adc_channel_e_list +throttleInletPressureChannel = bits, U08, 4368, [0:5], $adc_channel_e_list +compressorDischargePressureChannel = bits, U08, 4369, [0:5], $adc_channel_e_list +dacOutputPins1 = bits, U16, 4370, [0:7], $gpio_list +dacOutputPins2 = bits, U16, 4372, [0:7], $gpio_list +speedometerOutputPin = bits, U16, 4374, [0:8], $output_pin_e_list +speedometerPulsePerKm = scalar, U16, 4376, "", 1, 0, 0, 65000, 0 +simulatorCamPosition1 = scalar, U08, 4378, "", 1, 0, 0, 100, 0 +simulatorCamPosition2 = scalar, U08, 4379, "", 1, 0, 0, 100, 0 +simulatorCamPosition3 = scalar, U08, 4380, "", 1, 0, 0, 100, 0 +simulatorCamPosition4 = scalar, U08, 4381, "", 1, 0, 0, 100, 0 +ignKeyAdcChannel = bits, U08, 4382, [0:5], $adc_channel_e_list +spi6MisoMode = bits, U08, 4383, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerVVTGapOverrideFrom1 = scalar, F32, 4384, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom2 = scalar, F32, 4388, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom3 = scalar, F32, 4392, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom4 = scalar, F32, 4396, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo1 = scalar, F32, 4400, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo2 = scalar, F32, 4404, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo3 = scalar, F32, 4408, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo4 = scalar, F32, 4412, "ratio", 1, 0, 0, 20, 3 +tractionControlEtbDrop = array, S08, 4416, [6x6], "%", 1, 0, -100, 0, 0 +maxInjectorDutyInstant = scalar, U08, 4452, "%", 1, 0, 50, 200, 0 +maxInjectorDutySustained = scalar, U08, 4453, "%", 1, 0, 50, 120, 0 +maxInjectorDutySustainedTimeout = scalar, U08, 4454, "sec", 0.1, 0, 0, 5, 1 +injectionPinsStage21 = bits, U16, 4456, [0:8], $output_pin_e_list +injectionPinsStage22 = bits, U16, 4458, [0:8], $output_pin_e_list +injectionPinsStage23 = bits, U16, 4460, [0:8], $output_pin_e_list +injectionPinsStage24 = bits, U16, 4462, [0:8], $output_pin_e_list +injectionPinsStage25 = bits, U16, 4464, [0:8], $output_pin_e_list +injectionPinsStage26 = bits, U16, 4466, [0:8], $output_pin_e_list +injectionPinsStage27 = bits, U16, 4468, [0:8], $output_pin_e_list +injectionPinsStage28 = bits, U16, 4470, [0:8], $output_pin_e_list +injectionPinsStage29 = bits, U16, 4472, [0:8], $output_pin_e_list +injectionPinsStage210 = bits, U16, 4474, [0:8], $output_pin_e_list +injectionPinsStage211 = bits, U16, 4476, [0:8], $output_pin_e_list +injectionPinsStage212 = bits, U16, 4478, [0:8], $output_pin_e_list +tractionControlTimingDrop = array, S08, 4480, [6x6], "Deg", 1, 0, -100, 100, 0 +tractionControlIgnitionSkip = array, S08, 4516, [6x6], "%", 1, 0, 0, 100, 0 +auxSpeed1Multiplier = scalar, F32, 4552, "", 1, 0, 0, 100, 0 +brakeMeanEffectivePressureDifferential = scalar, F32, 4556, "", 1, 0, 0, 100, 0 +spi4mosiPin = bits, U16, 4560, [0:7], $gpio_list +spi4misoPin = bits, U16, 4562, [0:7], $gpio_list +spi4sckPin = bits, U16, 4564, [0:7], $gpio_list +spi5mosiPin = bits, U16, 4566, [0:7], $gpio_list +spi5misoPin = bits, U16, 4568, [0:7], $gpio_list +spi5sckPin = bits, U16, 4570, [0:7], $gpio_list +spi6mosiPin = bits, U16, 4572, [0:7], $gpio_list +spi6misoPin = bits, U16, 4574, [0:7], $gpio_list +spi6sckPin = bits, U16, 4576, [0:7], $gpio_list +spi4SckMode = bits, U08, 4578, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MosiMode = bits, U08, 4579, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MisoMode = bits, U08, 4580, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5SckMode = bits, U08, 4581, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MosiMode = bits, U08, 4582, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MisoMode = bits, U08, 4583, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6SckMode = bits, U08, 4584, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6MosiMode = bits, U08, 4585, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +unusedOftenChangesDuringFirmwareUpdate = array, U08, 4586, [120], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4708, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4740, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4772, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4836, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4844, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4852, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4868, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4884, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4900, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4916, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4948, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4980, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 5044, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 5108, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 5172, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 5236, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 5268, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 5300, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 5332, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 5364, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 5396, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 5428, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 5460, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 5492, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 5508, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 5524, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 5588, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 5620, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 5652, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 5660, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 5668, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 5684, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 5700, 120 +afterstartCoolantBins = array, F32, 5820, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5852, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5884, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5916, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5948, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 6012, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 6020, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 6084, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 6092, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 6156, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 6164, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 6172, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 6204, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 6236, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 6244, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 6276, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 6280, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 6284, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 6316, 8000 +cltFuelCorrBins = array, F32, 14316, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 14380, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 14444, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 14508, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 14572, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 14604, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 14636, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 14668, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 14700, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14764, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14828, [32], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 14956, [32], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 15084, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 15148, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 15156, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 15164, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 15676, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 15708, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 15740, [10x6], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 15800, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 16312, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 16344, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 16376, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 16440, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 16456, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 16472, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 16536, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 16552, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 16568, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 17080, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 17112, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 17144, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 17656, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 17688, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 17720, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 17720, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 17976, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 18008, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 18040, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 18296, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 18328, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 18360, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 18616, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 18632, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 18648, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 18712, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 18728, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 18744, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 18808, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 18824, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 18840, [10x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 18920, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 18936, [10], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 18956, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 18964, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 18972, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 18988, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 19004, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 19020, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 19036, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 19052, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 19068, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 19084, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 19100, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 19116, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 19132, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 19148, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 19164, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 19172, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 19180, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 19196, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 19212, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 19228, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 19244, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 19260, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 19276, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 19292, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 19308, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 19324, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 19340, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 19356, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 19372, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 19388, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 19396, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 19404, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 19412, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 19420, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 19428, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 19436, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 19444, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 19452, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 19460, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 19468, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 19476, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 19484, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 19492, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 19500, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 19508, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 19516, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 19524, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 19532, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 19568, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 19574, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 19580, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 19616, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 19622, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 19628, [4x4], "deg", 0.1, 0, -60, 0, 1 +alsIgnRetardLoadBins = array, U16, 19660, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 19668, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 19676, [4x4], "percent", 0.1, 0, 0, 50, 1 +alsFuelAdjustmentLoadBins = array, U16, 19708, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 19716, [4], "RPM", 1, 0, 0, 25000, 0 +ALSIgnSkipTable = array, S16, 19724, [4x4], "ratio", 10.0, 0, 0, 50, 1 +alsIgnSkipLoadBins = array, U16, 19756, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnSkiprpmBins = array, U16, 19764, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 19772, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 19900, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 19916, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 19932, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_yAxisOverride = bits, U08, 19933, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_blendBins = array, S16, 19934, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 19950, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 19960, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 20088, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 20104, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 20120, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_yAxisOverride = bits, U08, 20121, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_blendBins = array, S16, 20122, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 20138, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 20148, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 20276, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 20292, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 20308, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_yAxisOverride = bits, U08, 20309, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_blendBins = array, S16, 20310, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 20326, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 20336, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 20464, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 20480, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 20496, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_yAxisOverride = bits, U08, 20497, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_blendBins = array, S16, 20498, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 20514, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 20524, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 20652, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 20668, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 20684, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_yAxisOverride = bits, U08, 20685, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_blendBins = array, S16, 20686, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 20702, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 20712, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 20840, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 20856, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 20872, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_yAxisOverride = bits, U08, 20873, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_blendBins = array, S16, 20874, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 20890, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 20900, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 21028, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 21044, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 21060, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_yAxisOverride = bits, U08, 21061, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_blendBins = array, S16, 21062, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 21078, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 21088, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 21216, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 21232, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 21248, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_yAxisOverride = bits, U08, 21249, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_blendBins = array, S16, 21250, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 21266, [8], "%", 0.5, 0, 0, 100, 1 +throttleEstimateEffectiveAreaBins = array, U16, 21276, [12], "%", 0.1, 0, 0, 100, 1 +throttleEstimateEffectiveAreaValues = array, U16, 21300, [12], "g/s", 0.1, 0, 0, 6500, 1 +boostOpenLoopBlends1_table = array, S16, 21324, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends1_loadBins = array, U16, 21452, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends1_rpmBins = array, U16, 21468, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends1_blendParameter = bits, U08, 21484, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_yAxisOverride = bits, U08, 21485, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_blendBins = array, S16, 21486, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends1_blendValues = array, U08, 21502, [8], "%", 0.5, 0, 0, 100, 1 +boostOpenLoopBlends2_table = array, S16, 21512, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends2_loadBins = array, U16, 21640, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends2_rpmBins = array, U16, 21656, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends2_blendParameter = bits, U08, 21672, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_yAxisOverride = bits, U08, 21673, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_blendBins = array, S16, 21674, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends2_blendValues = array, U08, 21690, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends1_table = array, S16, 21700, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends1_loadBins = array, U16, 21828, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends1_rpmBins = array, U16, 21844, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends1_blendParameter = bits, U08, 21860, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_yAxisOverride = bits, U08, 21861, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_blendBins = array, S16, 21862, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends1_blendValues = array, U08, 21878, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends2_table = array, S16, 21888, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends2_loadBins = array, U16, 22016, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends2_rpmBins = array, U16, 22032, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends2_blendParameter = bits, U08, 22048, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_yAxisOverride = bits, U08, 22049, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_blendBins = array, S16, 22050, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends2_blendValues = array, U08, 22066, [8], "%", 0.5, 0, 0, 100, 1 +tcu_rangeP = array, U08, 22076, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeR = array, U08, 22082, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeN = array, U08, 22088, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeD = array, U08, 22094, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM = array, U08, 22100, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM3 = array, U08, 22106, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM2 = array, U08, 22112, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM1 = array, U08, 22118, [6], "level", 1, 0, 0, 3, 0 +tcu_rangePlus = array, U08, 22124, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeMinus = array, U08, 22130, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeLow = array, U08, 22136, [6], "level", 1, 0, 0, 3, 0 +lambdaMaxDeviationTable = array, U08, 22142, [4x4], "lambda", 0.01, 0, 0, 1, 2 +lambdaMaxDeviationLoadBins = array, U16, 22158, [4], "", 1, 0, 0, 1000, 0 +lambdaMaxDeviationRpmBins = array, U16, 22166, [4], "RPM", 1, 0, 0, 18000, 0 +injectorStagingTable = array, U08, 22174, [6x6], "%", 1, 0, 0, 90, 0 +injectorStagingLoadBins = array, U16, 22210, [6], "", 1, 0, 0, 1000, 0 +injectorStagingRpmBins = array, U16, 22222, [6], "RPM", 1, 0, 0, 18000, 0 +; total TS size = 22236 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type\nset engine_type X" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + rpmHardLimit = "set rpm_hard_limit X" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm\nset engineSnifferRpmThreshold X" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injector_battLagCorr = "ms delay between injector open and close dead times" + injectorSecondary_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injectorSecondary_battLagCorr = "ms delay between injector open and close dead times" + isForcedInduction = "Does the vehicle have a turbo or supercharger?" + useFordRedundantTps = "On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + enableFan1WithAc = "Turn on this fan when AC is on." + enableFan2WithAc = "Turn on this fan when AC is on." + disableFan1WhenStopped = "Inhibit operation of this fan while the engine is not running." + disableFan2WhenStopped = "Inhibit operation of this fan while the engine is not running." + enableTrailingSparks = "Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines)." + etb_use_two_wires = "TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode." + isDoubleSolenoidIdle = "Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position." + useCicPidForIdle = "Switch between Industrial and Cic PID implementation" + useSeparateIdleTablesForCrankingTaper = "This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration)." + doNotFilterTriggerEdgeNoise = "Detect double trigger edges" + useRunningMathForCranking = "For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table)." + displayLogicLevelsInEngineSniffer = "Shall we display real life signal or just the part consumed by trigger decoder.\nApplies to both trigger and cam/vvt input.\n\nenable logic_level_trigger" + verboseCan = "Print incoming and outgoing first bus CAN messages in rusEFI console" + artificialTestMisfire = "Experimental setting that will cause a misfire\nDO NOT ENABLE." + useFordRedundantPps = "On some Ford and Toyota vehicles one of the pedal sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + useSpiImu = "If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages" + tpsMin = "Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel\nset tps_min X" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equipped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equipped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. \nset cranking_rpm X" + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + hip9011PrescalerAndSDO = "value '6' for 8MHz hw osc\nread hip9011 datasheet for details\ntodo split into two bit fields" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override\nRequires power cycling to effect" + displacement = "Engine displacement in litres" + cylindersCount = "Number of cylinder the engine has." + cylinderBore = "Cylinder diameter in mm." + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nAlpha-N means drive by TPS commonly only used for NA engines\nSpeed Density requires MAP sensor and is the default choice for may installs\nMAF air charge is a cylinder filling based method that uses a mass air flow sensor." + crankingInjectionMode = "This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous"." + injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups." + boostControlMinRpm = "Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinTps = "Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinMap = "Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nThere is tapering towards running timing advance\nset cranking_timing_angle X" + ignitionMode = "Single coil = distributor\nIndividual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode\nWasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder\nTwo distributors = A pair of distributors, found on some BMW, Toyota and other engines\nset ignition_mode X" + gapTrackingLengthOverride = "How many consecutive gap rations have to match expected ranges for sync to happen" + maxIdleVss = "Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed)." + minOilPressureAfterStart = "Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting." + timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light)." + fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location." + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchronization point before TDC and negative in case of synchronization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canNbcType = "set can_mode X" + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor. See also pedalPositionAdcChannel" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body position sensor, single channel so far\nset_analog_input_pin tps2 X" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers\nset trigger_type X" + airByRpmTaper = "Extra air taper amount" + boostControlSafeDutyCycle = "Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met." + camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 1" + camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 2" + camInputs3 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 3" + camInputs4 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 4" + throttlePedalPositionAdcChannel = "Electronic throttle pedal position first channel\nSee throttlePedalPositionSecondAdcChannel for second channel\nSee also tps1_1AdcChannel\nset_analog_input_pin pps X\nSee throttlePedalUpVoltage and throttlePedalWOTVoltage" + etbSplit = "TPS/PPS error threshold" + throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" + baroSensor_lowValue = "kPa value at low volts" + baroSensor_highValue = "kPa value at high volts" + manIdlePosition = "Value between 0 and 100 used in Manual mode" + knockRetardAggression = "Ignition timing to remove when a knock event occurs." + knockRetardReapplyRate = "After a knock event, reapply timing at this rate." + engineSyncCam = "Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync." + vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response." + vssGearRatio = "Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0." + vssToothCount = "Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft." + idleVeOverrideMode = "Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectionPins1 = "injectionPins 1" + injectionPins2 = "injectionPins 2" + injectionPins3 = "injectionPins 3" + injectionPins4 = "injectionPins 4" + injectionPins5 = "injectionPins 5" + injectionPins6 = "injectionPins 6" + injectionPins7 = "injectionPins 7" + injectionPins8 = "injectionPins 8" + injectionPins9 = "injectionPins 9" + injectionPins10 = "injectionPins 10" + injectionPins11 = "injectionPins 11" + injectionPins12 = "injectionPins 12" + ignitionPins1 = "ignitionPins 1" + ignitionPins2 = "ignitionPins 2" + ignitionPins3 = "ignitionPins 3" + ignitionPins4 = "ignitionPins 4" + ignitionPins5 = "ignitionPins 5" + ignitionPins6 = "ignitionPins 6" + ignitionPins7 = "ignitionPins 7" + ignitionPins8 = "ignitionPins 8" + ignitionPins9 = "ignitionPins 9" + ignitionPins10 = "ignitionPins 10" + ignitionPins11 = "ignitionPins 11" + ignitionPins12 = "ignitionPins 12" + gapVvtTrackingLengthOverride = "How many consecutive VVT gap rations have to match expected ranges for sync to happen" + malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + clutchDownPin = "Some cars have a switch to indicate that clutch pedal is all the way down" + digitalPotentiometerChipSelect1 = "digitalPotentiometerChipSelect 1" + digitalPotentiometerChipSelect2 = "digitalPotentiometerChipSelect 2" + digitalPotentiometerChipSelect3 = "digitalPotentiometerChipSelect 3" + digitalPotentiometerChipSelect4 = "digitalPotentiometerChipSelect 4" + digitalPotentiometerSpiDevice = "Digital Potentiometer is used by stock ECU stimulation code" + auxFastSensor1_adcChannel = "Useful in Research&Development phase" + tps1_2AdcChannel = "First throttle body, second sensor." + tps2_2AdcChannel = "Second throttle body, second sensor." + throttlePedalPositionSecondAdcChannel = "Electronic throttle pedal position input\nSecond channel\nSee also tps1_1AdcChannel\nSee throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage" + afr_type = "AFR, WBO, EGO - whatever you like to call it" + mc33810_cs1 = "mc33810_cs 1" + idle_antiwindupFreq = "0.1 is a good default value" + triggerInputPins1 = "triggerInputPins 1" + triggerInputPins2 = "triggerInputPins 2" + mc33_t_min_boost = "Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit." + canTxPin = "set_can_tx_pin X" + canRxPin = "set_can_rx_pin X" + acIdleExtraOffset = "Additional idle % while A/C is active" + finalGearRatio = "Ratio between the wheels and your transmission output." + wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!" + wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units" + idlePositionMin = "Voltage when the idle valve is closed.\nYou probably don't have one of these!" + idlePositionMax = "Voltage when the idle valve is open.\nYou probably don't have one of these!\n1 volt = 1000 units" + tunerStudioSerialSpeed = "Secondary TTL channel baud rate" + compressionRatio = "Just for reference really, not taken into account by any logic at this point" + triggerSimulatorPins1 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 1" + triggerSimulatorPins2 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 2" + triggerSimulatorPinModes1 = "triggerSimulatorPinModes 1" + triggerSimulatorPinModes2 = "triggerSimulatorPinModes 2" + o2heaterPin = "On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking." + isSdCardEnabled = "enable sd/disable sd" + rusefiVerbose29b = "Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format." + useStepperIdle = "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed." + enableVerboseCanTx = "CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_broadcast" + measureMapOnlyInOneCylinder = "Useful for individual intakes" + isFasterEngineSpinUpEnabled = "If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled." + coastingFuelCutEnabled = "This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing." + useIacTableForCoasting = "Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle." + disableEtbWhenEngineStopped = "Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary." + pauseEtbControl = "Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle." + enableAemXSeries = "AEM X-Series or rusEFI Wideband" + logicAnalyzerPins1 = "logicAnalyzerPins 1" + logicAnalyzerPins2 = "logicAnalyzerPins 2" + logicAnalyzerPins3 = "logicAnalyzerPins 3" + logicAnalyzerPins4 = "logicAnalyzerPins 4" + mc33_hvolt = "Boost Voltage" + minimumBoostClosedLoopMap = "Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost." + acFanPin = "Optional Radiator Fan used with A/C" + idlePidRpmUpperLimit = "How far above idle speed do we consider idling, i.e. coasting detection threshold.\nFor example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle." + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." + clutchUpPin = "Some vehicles have a switch to indicate that clutch pedal is all the way up" + max31855_cs1 = "max31855_cs 1" + max31855_cs2 = "max31855_cs 2" + max31855_cs3 = "max31855_cs 3" + max31855_cs4 = "max31855_cs 4" + max31855_cs5 = "max31855_cs 5" + max31855_cs6 = "max31855_cs 6" + max31855_cs7 = "max31855_cs 7" + max31855_cs8 = "max31855_cs 8" + flexSensorPin = "Continental/GM flex fuel sensor, 50-150hz type" + stoichRatioSecondary = "Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0" + etbMaximumPosition = "Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open." + sdCardLogFrequency = "Rate the ECU will log to the SD card, in hz (log lines per second)." + starterRelayDisablePinMode = "On some vehicles we can disable starter once engine is already running" + secondSolenoidPin = "Some Subaru and some Mazda use double-solenoid idle air valve" + startStopButtonPin = "See also starterControlPin" + mapMinBufferLength = "This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies." + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%." + startCrankingDuration = "Maximum time to crank starter when start/stop button is pressed" + triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" + lambdaProtectionTimeout = "Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed" + scriptSetting1 = "scriptSetting 1" + scriptSetting2 = "scriptSetting 2" + scriptSetting3 = "scriptSetting 3" + scriptSetting4 = "scriptSetting 4" + scriptSetting5 = "scriptSetting 5" + scriptSetting6 = "scriptSetting 6" + scriptSetting7 = "scriptSetting 7" + scriptSetting8 = "scriptSetting 8" + cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + alphaNUseIat = "In Alpha-N mode, compensate for air temperature." + useRawOutputToDriveIdleStepper = "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils" + verboseCan2 = "Print incoming and outgoing second bus CAN messages in rusEFI console" + etbIo1_controlPin = "Acts as EN pin in two-wire mode" + etbIo2_controlPin = "Acts as EN pin in two-wire mode" + boostControlPin = "Wastegate control Solenoid" + boostPid_offset = "Linear addition to PID logic" + boostPid_periodMs = "PID dTime" + boostPid_minValue = "Output Min Duty Cycle" + boostPid_maxValue = "Output Max Duty Cycle" + launchSpeedThreshold = "Launch disabled above this speed if setting is above zero" + launchTimingRpmRange = "Range from Launch RPM for Timing Retard to activate" + launchSparkSkipPercent = "Spark Skip Transition Target" + 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_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs1_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs1_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs2_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs2_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs2_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs3_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs3_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs3_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs4_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs4_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs4_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stepperDcIo1_controlPin = "Acts as EN pin in two-wire mode" + stepperDcIo2_controlPin = "Acts as EN pin in two-wire mode" + engineMake = "For example, BMW, GM or Chevrolet\nREQUIRED for rusEFI Online" + engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online" + vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online" + tcu_solenoid1 = "tcu_solenoid 1" + tcu_solenoid2 = "tcu_solenoid 2" + tcu_solenoid3 = "tcu_solenoid 3" + tcu_solenoid4 = "tcu_solenoid 4" + tcu_solenoid5 = "tcu_solenoid 5" + tcu_solenoid6 = "tcu_solenoid 6" + etbFunctions1 = "etbFunctions 1" + etbFunctions2 = "etbFunctions 2" + luaOutputPins1 = "luaOutputPins 1" + luaOutputPins2 = "luaOutputPins 2" + luaOutputPins3 = "luaOutputPins 3" + luaOutputPins4 = "luaOutputPins 4" + luaOutputPins5 = "luaOutputPins 5" + luaOutputPins6 = "luaOutputPins 6" + luaOutputPins7 = "luaOutputPins 7" + luaOutputPins8 = "luaOutputPins 8" + vvtOffsets1 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + oddFireEngine = "On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines." + silentTriggerError = "Sometimes we have a performance issue while printing error" + canReadEnabled = "enable can_read/disable can_read" + canWriteEnabled = "enable can_write/disable can_write. See also can1ListenMode" + tachPulseDurationAsDutyCycle = "Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%" + isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings." + invertPrimaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the primary engine speed sensor." + invertSecondaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the secondary engine speed sensor." + cutSparkOnHardLimit = "Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer." + launchSparkCutEnable = "This is the Cut Mode normally used" + verboseIsoTp = "Are you a developer troubleshooting TS over CAN ISO/TP?" + skippedWheelOnCam = "Where is your primary skipped wheel located?" + acSwitch = "A/C button input" + etbNeutralPosition = "Expected neutral position" + idleMode = "See also idleRpmPid" + isCylinderCleanupEnabled = "When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders." + complexWallModel = "Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?" + alwaysInstantRpm = "RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution" + overrideCrankingIacSetting = "If enabled, use separate temperature multiplier table for cranking idle position.\nIf disabled, use normal running multiplier table applied to the cranking base position." + useSeparateAdvanceForIdle = "This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed." + useSeparateVeForIdle = "This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling." + verboseTriggerSynchDetails = "Verbose info in console below engineSnifferRpmThreshold\nenable trigger_details" + isManualSpinningMode = "Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed" + twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)." + useSeparateAdvanceForCranking = "In Constant mode, timing is automatically tapered to running as RPM increases.\nIn Table mode, the "Cranking ignition advance" table is used directly." + useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).\nYou probably don't need this." + flexCranking = "Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor." + useIacPidMultTable = "This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller" + launchSmoothRetard = "Interpolates the Ignition Retard from 0 to 100% within the RPM Range" + isPhaseSyncRequiredForIgnition = "Some engines are OK running semi-random sequential while other engine require phase synchronization" + useCltBasedRpmLimit = "If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value." + forceO2Heating = "If enabled, don't wait for engine start to heat O2 sensors. WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element." + invertVvtControlIntake = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + invertVvtControlExhaust = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + sdTriggerLog = "'Trigger' mode will write a high speed log of trigger events (warning: uses lots of space!). 'Normal' mode will write a standard MLG of sensors, engine function, etc. similar to the one captured in TunerStudio." + camInputsDebug1 = "camInputsDebug 1" + camInputsDebug2 = "camInputsDebug 2" + camInputsDebug3 = "camInputsDebug 3" + camInputsDebug4 = "camInputsDebug 4" + acIdleRpmTarget = "Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling." + warningPeriod = "set warningPeriod X" + noAccelAfterHardLimitPeriodSecs = "TODO: finish this #413" + mapAveragingSchedulingAtIndex = "At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + tachPulseDuractionMs = "Duration in ms or duty cycle depending on selected mode" + wwaeTau = "Length of time the deposited wall fuel takes to dissipate after the start of acceleration." + alternatorControl_offset = "Linear addition to PID logic" + alternatorControl_periodMs = "PID dTime" + alternatorControl_minValue = "Output Min Duty Cycle" + alternatorControl_maxValue = "Output Max Duty Cycle" + etb_offset = "Linear addition to PID logic" + etb_periodMs = "PID dTime" + etb_minValue = "Output Min Duty Cycle" + etb_maxValue = "Output Max Duty Cycle" + triggerInputDebugPins1 = "triggerInputDebugPins 1" + triggerInputDebugPins2 = "triggerInputDebugPins 2" + airTaperRpmRange = "RPM range above upper limit for extra air taper" + tps2Min = "Closed throttle#2. todo: extract these two fields into a structure\nSee also tps2_1AdcChannel\nset tps2_min X" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel\nset tps2_max X" + starterControlPin = "See also startStopButtonPin" + mapErrorDetectionTooLow = "kPa value which is too low to be true" + mapErrorDetectionTooHigh = "kPa value which is too high to be true" + multisparkSparkDuration = "How long to wait for the spark to fire before recharging the coil for another spark." + multisparkDwell = "This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table." + idleRpmPid_offset = "Linear addition to PID logic" + idleRpmPid_periodMs = "PID dTime" + idleRpmPid_minValue = "Output Min Duty Cycle" + idleRpmPid_maxValue = "Output Max Duty Cycle" + wwaeBeta = "0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment." + binarySerialTxPin = "See also EFI_CONSOLE_RX_BRAIN_PIN" + auxValves1 = "auxValves 1" + auxValves2 = "auxValves 2" + throttlePedalWOTVoltage = "Pedal in the floor" + startUpFuelPumpDuration = "on IGN voltage detection turn fuel pump on to build fuel pressure" + idlePidRpmDeadZone = "If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation" + targetVBatt = "This is the target battery voltage the alternator PID control will attempt to maintain" + mc33810DisableRecoveryMode = "See Over/Undervoltage Shutdown/Retry bit in documentation" + useVssAsSecondWheelSpeed = "VSS and auxSpeed1 or auxSpeed1 with auxSpeed2?" + 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 = "IAC Value added when coasting and transitioning into idle." + auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + tpsAccelLookback = "How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs." + coastingFuelCutVssLow = "Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + coastingFuelCutVssHigh = "Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + noFuelTrimAfterDfcoTime = "Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut." + tpsAccelEnrichmentThreshold = "Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in." + auxSpeedSensorInputPin1 = "auxSpeedSensorInputPin 1" + auxSpeedSensorInputPin2 = "auxSpeedSensorInputPin 2" + injectionTimingMode = "Sets what part of injection's is controlled by the injection phase table." + debugMode = "See http://rusefi.com/s/debugmode" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + uartConsoleSerialSpeed = "Band rate for primary TTL" + tpsDecelEnleanmentThreshold = "For decel we simply multiply delta of TPS and tFor decel we do not use table?!" + tpsDecelEnleanmentMultiplier = "Magic multiplier, we multiply delta of TPS and get fuel squirt duration" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + can1ListenMode = "ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled" + benchTestOnTime = "Duration of each test pulse" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output solenoid pin for this cam 1" + vvtPins2 = "VVT output solenoid pin for this cam 2" + vvtPins3 = "VVT output solenoid pin for this cam 3" + vvtPins4 = "VVT output solenoid pin for this cam 4" + crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling." + minimumIgnitionTiming = "Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint." + maximumIgnitionTiming = "Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC" + vvtMode1 = "set vvt_mode X 1" + vvtMode2 = "set vvt_mode X 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder ignition and fueling timing correction for uneven engines 1" + timing_offset_cylinder2 = "per-cylinder ignition and fueling timing correction for uneven engines 2" + timing_offset_cylinder3 = "per-cylinder ignition and fueling timing correction for uneven engines 3" + timing_offset_cylinder4 = "per-cylinder ignition and fueling timing correction for uneven engines 4" + timing_offset_cylinder5 = "per-cylinder ignition and fueling timing correction for uneven engines 5" + timing_offset_cylinder6 = "per-cylinder ignition and fueling timing correction for uneven engines 6" + timing_offset_cylinder7 = "per-cylinder ignition and fueling timing correction for uneven engines 7" + timing_offset_cylinder8 = "per-cylinder ignition and fueling timing correction for uneven engines 8" + timing_offset_cylinder9 = "per-cylinder ignition and fueling timing correction for uneven engines 9" + timing_offset_cylinder10 = "per-cylinder ignition and fueling timing correction for uneven engines 10" + timing_offset_cylinder11 = "per-cylinder ignition and fueling timing correction for uneven engines 11" + timing_offset_cylinder12 = "per-cylinder ignition and fueling timing correction for uneven engines 12" + spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." + mc33816_rstb = "ResetB" + brakePedalPin = "Brake pedal switch" + auxPid1_offset = "Linear addition to PID logic" + auxPid1_periodMs = "PID dTime" + auxPid1_minValue = "Output Min Duty Cycle" + auxPid1_maxValue = "Output Max Duty Cycle" + auxPid2_offset = "Linear addition to PID logic" + auxPid2_periodMs = "PID dTime" + auxPid2_minValue = "Output Min Duty Cycle" + auxPid2_maxValue = "Output Max Duty Cycle" + injectorCorrectionPolynomial1 = "injectorCorrectionPolynomial 1" + injectorCorrectionPolynomial2 = "injectorCorrectionPolynomial 2" + injectorCorrectionPolynomial3 = "injectorCorrectionPolynomial 3" + injectorCorrectionPolynomial4 = "injectorCorrectionPolynomial 4" + injectorCorrectionPolynomial5 = "injectorCorrectionPolynomial 5" + injectorCorrectionPolynomial6 = "injectorCorrectionPolynomial 6" + injectorCorrectionPolynomial7 = "injectorCorrectionPolynomial 7" + injectorCorrectionPolynomial8 = "injectorCorrectionPolynomial 8" + fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + sentInputPins1 = "sentInputPins 1" + 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 = 1468 + +; 11.2.3 Full Optimized – High Speed + scatteredOchGetCommand = 9 + scatteredOffsetArray = highSpeedOffsets +#if CONN_SLOW + scatteredGetEnabled = { 1 } +#else + scatteredGetEnabled = { 0 } +#endif + +; +; see TunerStudioOutputChannels struct +; + +sd_present = bits, U32, 0, [0:0] +sd_logging_internal = bits, U32, 0, [1:1] +triggerScopeReady = bits, U32, 0, [2:2] +antilagTriggered = bits, U32, 0, [3:3] +isFanOn = bits, U32, 0, [4:4] +isO2HeaterOn = bits, U32, 0, [5:5] +checkEngine = bits, U32, 0, [6:6] +needBurn = bits, U32, 0, [7:7] +sd_msd = bits, U32, 0, [8:8] +isFan2On = bits, U32, 0, [9:9] +toothLogReady = bits, U32, 0, [10:10] +isTpsError = bits, U32, 0, [11:11] +isCltError = bits, U32, 0, [12:12] +isMapError = bits, U32, 0, [13:13] +isIatError = bits, U32, 0, [14:14] +isTriggerError = bits, U32, 0, [15:15] +hasCriticalError = bits, U32, 0, [16:16] +isWarnNow = bits, U32, 0, [17:17] +isPedalError = bits, U32, 0, [18:18] +isKnockChipOk = bits, U32, 0, [19:19] +launchTriggered = bits, U32, 0, [20:20] +isTps2Error = bits, U32, 0, [21:21] +injectorFault = bits, U32, 0, [22:22] +ignitionFault = bits, U32, 0, [23:23] +isMainRelayOn = bits, U32, 0, [24:24] +isUsbConnected = bits, U32, 0, [25:25] +dfcoActive = bits, U32, 0, [26:26] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, S16, 6, "RPM acceleration", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +unusedVehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +VBatt = scalar, U16, 36, "V", 0.001, 0 +oilPressure = scalar, U16, 38, "kPa", 0.03333333333333333, 0 +vvtPositionB1I = scalar, S16, 40, "deg", 0.02, 0 +actualLastInjection = scalar, U16, 42, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 44, "%", 0.5, 0 +injectionOffset = scalar, S16, 46, "deg", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 48, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 50, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 52, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 54, "", 1, 0 +canReadCounter = scalar, U16, 56, "", 1, 0 +tpsAccelFuel = scalar, S16, 58, "ms", 0.0033333333333333335, 0 +currentIgnitionMode = scalar, U08, 60, "", 1, 0 +currentInjectionMode = scalar, U08, 61, "", 1, 0 +coilDutyCycle = scalar, U16, 62, "%", 0.01, 0 +etbTarget = scalar, S16, 64, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 66, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 68, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 70, "grams", 1, 0 +fuelFlowRate = scalar, U16, 72, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 74, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 76, "crc16", 1, 0 +veValue = scalar, U16, 78, "ratio", 0.1, 0 +seconds = scalar, U32, 80, "sec", 1, 0 +engineMode = scalar, U32, 84, "em", 1, 0 +firmwareVersion = scalar, U32, 88, "version_f", 1, 0 +rawIdlePositionSensor = scalar, S16, 92, "V", 0.001, 0 +rawWastegatePosition = scalar, S16, 94, "V", 0.001, 0 +accelerationLat = scalar, S16, 96, "G", 0.001, 0 +accelerationLon = scalar, S16, 98, "G", 0.001, 0 +detectedGear = scalar, U08, 100, "", 1, 0 +maxTriggerReentrant = scalar, U08, 101, "", 1, 0 +rawLowFuelPressure = scalar, S16, 102, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 104, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 106, "kpa", 0.03333333333333333, 0 +tcuDesiredGear = scalar, S08, 108, "gear", 1, 0 +flexPercent = scalar, U08, 109, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 110, "%", 0.01, 0 +highFuelPressure = scalar, S16, 112, "bar", 0.1, 0 +calibrationValue = scalar, F32, 116, "", 1, 0 +calibrationMode = scalar, U08, 120, "", 1, 0 +idleStepperTargetPosition = scalar, U08, 121, "", 1, 0 +tsConfigVersion = scalar, U32, 124, "", 1, 0 +totalTriggerErrorCounter = scalar, U32, 128, "counter", 1, 0 +orderingErrorCounter = scalar, U32, 132, "", 1, 0 +warningCounter = scalar, U16, 136, "count", 1, 0 +lastErrorCode = scalar, U16, 138, "error", 1, 0 +recentErrorCode1 = scalar, U16, 140, "error", 1, 0 +recentErrorCode2 = scalar, U16, 142, "error", 1, 0 +recentErrorCode3 = scalar, U16, 144, "error", 1, 0 +recentErrorCode4 = scalar, U16, 146, "error", 1, 0 +recentErrorCode5 = scalar, U16, 148, "error", 1, 0 +recentErrorCode6 = scalar, U16, 150, "error", 1, 0 +recentErrorCode7 = scalar, U16, 152, "error", 1, 0 +recentErrorCode8 = scalar, U16, 154, "error", 1, 0 +debugFloatField1 = scalar, F32, 156, "val", 1, 0 +debugFloatField2 = scalar, F32, 160, "val", 1, 0 +debugFloatField3 = scalar, F32, 164, "val", 1, 0 +debugFloatField4 = scalar, F32, 168, "val", 1, 0 +debugFloatField5 = scalar, F32, 172, "val", 1, 0 +debugFloatField6 = scalar, F32, 176, "val", 1, 0 +debugFloatField7 = scalar, F32, 180, "val", 1, 0 +debugIntField1 = scalar, U32, 184, "val", 1, 0 +debugIntField2 = scalar, U32, 188, "val", 1, 0 +debugIntField3 = scalar, U32, 192, "val", 1, 0 +debugIntField4 = scalar, S16, 196, "val", 1, 0 +debugIntField5 = scalar, S16, 198, "val", 1, 0 +egt1 = scalar, U16, 200, "deg C", 1, 0 +egt2 = scalar, U16, 202, "deg C", 1, 0 +egt3 = scalar, U16, 204, "deg C", 1, 0 +egt4 = scalar, U16, 206, "deg C", 1, 0 +egt5 = scalar, U16, 208, "deg C", 1, 0 +egt6 = scalar, U16, 210, "deg C", 1, 0 +egt7 = scalar, U16, 212, "deg C", 1, 0 +egt8 = scalar, U16, 214, "deg C", 1, 0 +rawTps1Primary = scalar, S16, 216, "V", 0.001, 0 +rawPpsPrimary = scalar, S16, 218, "V", 0.001, 0 +rawClt = scalar, S16, 220, "V", 0.001, 0 +rawIat = scalar, S16, 222, "V", 0.001, 0 +rawOilPressure = scalar, S16, 224, "V", 0.001, 0 +fuelClosedLoopBinIdx = scalar, U08, 226, "", 1, 0 +rawPpsSecondary = scalar, S16, 228, "V", 0.001, 0 +idlePositionSensor = scalar, S16, 230, "%", 0.01, 0 +AFRValue = scalar, U16, 232, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 234, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 236, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 238, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 240, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 242, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 244, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 246, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 248, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 250, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 252, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 254, "V", 0.001, 0 +accelerationVert = scalar, S16, 256, "G", 0.001, 0 +gyroYaw = scalar, S16, 258, "deg/sec", 0.001, 0 +vvtTargets1 = scalar, S08, 260, "deg", 1, 0 +vvtTargets2 = scalar, S08, 261, "deg", 1, 0 +vvtTargets3 = scalar, S08, 262, "deg", 1, 0 +vvtTargets4 = scalar, S08, 263, "deg", 1, 0 +turboSpeed = scalar, U16, 264, "hz", 1, 0 +ignitionAdvanceCyl1 = scalar, S16, 266, "deg", 0.02, 0 +ignitionAdvanceCyl2 = scalar, S16, 268, "deg", 0.02, 0 +ignitionAdvanceCyl3 = scalar, S16, 270, "deg", 0.02, 0 +ignitionAdvanceCyl4 = scalar, S16, 272, "deg", 0.02, 0 +ignitionAdvanceCyl5 = scalar, S16, 274, "deg", 0.02, 0 +ignitionAdvanceCyl6 = scalar, S16, 276, "deg", 0.02, 0 +ignitionAdvanceCyl7 = scalar, S16, 278, "deg", 0.02, 0 +ignitionAdvanceCyl8 = scalar, S16, 280, "deg", 0.02, 0 +ignitionAdvanceCyl9 = scalar, S16, 282, "deg", 0.02, 0 +ignitionAdvanceCyl10 = scalar, S16, 284, "deg", 0.02, 0 +ignitionAdvanceCyl11 = scalar, S16, 286, "deg", 0.02, 0 +ignitionAdvanceCyl12 = scalar, S16, 288, "deg", 0.02, 0 +tps1Split = scalar, S16, 290, "%", 0.01, 0 +tps2Split = scalar, S16, 292, "%", 0.01, 0 +tps12Split = scalar, S16, 294, "%", 0.01, 0 +accPedalSplit = scalar, S16, 296, "%", 0.01, 0 +sparkCutReason = scalar, S08, 298, "code", 1, 0 +fuelCutReason = scalar, S08, 299, "code", 1, 0 +mafEstimate = scalar, U16, 300, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 302, "rpm", 1, 0 +rawMap = scalar, U16, 304, "V", 0.001, 0 +rawAfr = scalar, U16, 306, "V", 0.001, 0 +calibrationValue2 = scalar, F32, 308, "", 1, 0 +luaInvocationCounter = scalar, U32, 312, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 316, "nt", 1, 0 +vssEdgeCounter = scalar, U32, 320, "", 1, 0 +issEdgeCounter = scalar, U32, 324, "", 1, 0 +auxLinear1 = scalar, S16, 328, "", 0.01, 0 +auxLinear2 = scalar, S16, 330, "", 0.01, 0 +fallbackMap = scalar, U16, 332, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 334, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 336, "us", 1, 0 +canWriteOk = scalar, U16, 338, "", 1, 0 +canWriteNotOk = scalar, U16, 340, "", 1, 0 +triggerPrimaryFall = scalar, U32, 344, "", 1, 0 +triggerPrimaryRise = scalar, U32, 348, "", 1, 0 +triggerSecondaryFall = scalar, U32, 352, "", 1, 0 +triggerSecondaryRise = scalar, U32, 356, "", 1, 0 +triggerVvtFall = scalar, U16, 360, "", 1, 0 +triggerVvtRise = scalar, U16, 362, "", 1, 0 +triggerVvt2Fall = scalar, U16, 364, "", 1, 0 +triggerVvt2Rise = scalar, U16, 366, "", 1, 0 +starterState = scalar, U08, 368, "", 1, 0 +starterRelayDisable = scalar, U08, 369, "", 1, 0 +multiSparkCounter = scalar, U08, 370, "", 1, 0 +extiOverflowCount = scalar, U08, 371, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 372, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 376, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 378, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 380, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 382, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 384, "", 1, 0 +idleStatus_pTerm = scalar, F32, 388, "", 1, 0 +idleStatus_iTerm = scalar, S16, 392, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 394, "", 0.01, 0 +idleStatus_output = scalar, S16, 396, "", 0.01, 0 +idleStatus_error = scalar, S16, 398, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 400, "", 1, 0 +etbStatus_pTerm = scalar, F32, 404, "", 1, 0 +etbStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +etbStatus_output = scalar, S16, 412, "", 0.01, 0 +etbStatus_error = scalar, S16, 414, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 416, "", 1, 0 +boostStatus_pTerm = scalar, F32, 420, "", 1, 0 +boostStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +boostStatus_output = scalar, S16, 428, "", 0.01, 0 +boostStatus_error = scalar, S16, 430, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 432, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 436, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 444, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 446, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 448, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 452, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 456, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 458, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 460, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 462, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 464, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 468, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 472, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 474, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 476, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 478, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 512, "", 1, 0 +auxSpeed1 = scalar, U16, 516, "s", 1, 0 +auxSpeed2 = scalar, U16, 518, "s", 1, 0 +ISSValue = scalar, U16, 520, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 522, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 524, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 526, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 528, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 530, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 532, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 534, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 536, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 538, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 539, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 540, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 541, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 542, "", 1, 0 +gppwmXAxis2 = scalar, S16, 544, "", 1, 0 +gppwmXAxis3 = scalar, S16, 546, "", 1, 0 +gppwmXAxis4 = scalar, S16, 548, "", 1, 0 +gppwmYAxis1 = scalar, S16, 550, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 552, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 554, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 556, "", 0.1, 0 +rawBattery = scalar, S16, 558, "V", 0.001, 0 +ignBlendParameter1 = scalar, S16, 560, "", 0.1, 0 +ignBlendParameter2 = scalar, S16, 562, "", 0.1, 0 +ignBlendParameter3 = scalar, S16, 564, "", 0.1, 0 +ignBlendParameter4 = scalar, S16, 566, "", 0.1, 0 +ignBlendBias1 = scalar, U08, 568, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 569, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 570, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 571, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 572, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 574, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 576, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 578, "deg", 0.01, 0 +veBlendParameter1 = scalar, S16, 580, "", 0.1, 0 +veBlendParameter2 = scalar, S16, 582, "", 0.1, 0 +veBlendParameter3 = scalar, S16, 584, "", 0.1, 0 +veBlendParameter4 = scalar, S16, 586, "", 0.1, 0 +veBlendBias1 = scalar, U08, 588, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 589, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 590, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 591, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 592, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 594, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 596, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 598, "%", 0.01, 0 +boostOpenLoopBlendParameter1 = scalar, S16, 600, "", 0.1, 0 +boostOpenLoopBlendParameter2 = scalar, S16, 602, "", 0.1, 0 +boostOpenLoopBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +boostOpenLoopBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +boostOpenLoopBlendOutput1 = scalar, S08, 606, "%", 1, 0 +boostOpenLoopBlendOutput2 = scalar, S08, 607, "%", 1, 0 +boostClosedLoopBlendParameter1 = scalar, S16, 608, "", 0.1, 0 +boostClosedLoopBlendParameter2 = scalar, S16, 610, "", 0.1, 0 +boostClosedLoopBlendBias1 = scalar, U08, 612, "%", 0.5, 0 +boostClosedLoopBlendBias2 = scalar, U08, 613, "%", 0.5, 0 +boostClosedLoopBlendOutput1 = scalar, S16, 614, "%", 0.1, 0 +boostClosedLoopBlendOutput2 = scalar, S16, 616, "%", 0.1, 0 +coilState1 = bits, U32, 620, [0:0] +coilState2 = bits, U32, 620, [1:1] +coilState3 = bits, U32, 620, [2:2] +coilState4 = bits, U32, 620, [3:3] +coilState5 = bits, U32, 620, [4:4] +coilState6 = bits, U32, 620, [5:5] +coilState7 = bits, U32, 620, [6:6] +coilState8 = bits, U32, 620, [7:7] +coilState9 = bits, U32, 620, [8:8] +coilState10 = bits, U32, 620, [9:9] +coilState11 = bits, U32, 620, [10:10] +coilState12 = bits, U32, 620, [11:11] +injectorState1 = bits, U32, 620, [12:12] +injectorState2 = bits, U32, 620, [13:13] +injectorState3 = bits, U32, 620, [14:14] +injectorState4 = bits, U32, 620, [15:15] +injectorState5 = bits, U32, 620, [16:16] +injectorState6 = bits, U32, 620, [17:17] +injectorState7 = bits, U32, 620, [18:18] +injectorState8 = bits, U32, 620, [19:19] +injectorState9 = bits, U32, 620, [20:20] +injectorState10 = bits, U32, 620, [21:21] +injectorState11 = bits, U32, 620, [22:22] +injectorState12 = bits, U32, 620, [23:23] +triggerChannel1 = bits, U32, 620, [24:24] +triggerChannel2 = bits, U32, 620, [25:25] +vvtChannel1 = bits, U32, 620, [26:26] +vvtChannel2 = bits, U32, 620, [27:27] +vvtChannel3 = bits, U32, 620, [28:28] +vvtChannel4 = bits, U32, 620, [29:29] +outputRequestPeriod = scalar, U32, 624, "", 1, 0 +mapFast = scalar, F32, 628, "", 1, 0 +luaGauges1 = scalar, F32, 632, "value", 1, 0 +luaGauges2 = scalar, F32, 636, "value", 1, 0 +rawMaf2 = scalar, U16, 640, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 642, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 644, "", 1,0 +vehicleSpeedKph = scalar, U16, 646, "kph", 0.01, 0 +Gego = scalar, U16, 648, "%", 0.01,0 +testBenchIter = scalar, U16, 650, "count", 1, 0 +oilTemp = scalar, S16, 652, "deg C", 0.01, 0 +fuelTemp = scalar, S16, 654, "deg C", 0.01, 0 +ambientTemp = scalar, S16, 656, "deg C", 0.01, 0 +compressorDischargeTemp = scalar, S16, 658, "deg C", 0.01, 0 +compressorDischargePressure = scalar, U16, 660, "kPa", 0.03333333333333333, 0 +throttleInletPressure = scalar, U16, 662, "kPa", 0.03333333333333333, 0 +ignitionOnTime = scalar, U16, 664, "sec", 1,0 +engineRunTime = scalar, U16, 666, "sec", 1,0 +distanceTraveled = scalar, U16, 668, "km", 0.1,0 +afrGasolineScale = scalar, U16, 670, "AFR", 0.001, 0 +afr2GasolineScale = scalar, U16, 672, "AFR", 0.001, 0 +wheelSlipRatio = scalar, F32, 676, "", 1, 0 +ignitorDiagnostic1 = scalar, U08, 680, "", 1, 0 +ignitorDiagnostic2 = scalar, U08, 681, "", 1, 0 +ignitorDiagnostic3 = scalar, U08, 682, "", 1, 0 +ignitorDiagnostic4 = scalar, U08, 683, "", 1, 0 +ignitorDiagnostic5 = scalar, U08, 684, "", 1, 0 +ignitorDiagnostic6 = scalar, U08, 685, "", 1, 0 +ignitorDiagnostic7 = scalar, U08, 686, "", 1, 0 +ignitorDiagnostic8 = scalar, U08, 687, "", 1, 0 +ignitorDiagnostic9 = scalar, U08, 688, "", 1, 0 +ignitorDiagnostic10 = scalar, U08, 689, "", 1, 0 +ignitorDiagnostic11 = scalar, U08, 690, "", 1, 0 +ignitorDiagnostic12 = scalar, U08, 691, "", 1, 0 +injectorDiagnostic1 = scalar, U08, 692, "", 1, 0 +injectorDiagnostic2 = scalar, U08, 693, "", 1, 0 +injectorDiagnostic3 = scalar, U08, 694, "", 1, 0 +injectorDiagnostic4 = scalar, U08, 695, "", 1, 0 +injectorDiagnostic5 = scalar, U08, 696, "", 1, 0 +injectorDiagnostic6 = scalar, U08, 697, "", 1, 0 +injectorDiagnostic7 = scalar, U08, 698, "", 1, 0 +injectorDiagnostic8 = scalar, U08, 699, "", 1, 0 +injectorDiagnostic9 = scalar, U08, 700, "", 1, 0 +injectorDiagnostic10 = scalar, U08, 701, "", 1, 0 +injectorDiagnostic11 = scalar, U08, 702, "", 1, 0 +injectorDiagnostic12 = scalar, U08, 703, "", 1, 0 +actualLastInjectionStage2 = scalar, U16, 704, "ms", 0.0033333333333333335, 0 +injectorDutyCycleStage2 = scalar, U08, 706, "%", 0.5, 0 +unusedAtTheEnd1 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 777, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 778, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 779, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 780, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 781, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 782, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 783, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 784, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 785, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 786, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 787, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 788, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 789, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 790, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 791, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 792, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 793, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 794, "", 1, 0 +; total TS size = 796 +totalFuelCorrection = scalar, F32, 796, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 800, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 804, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 808, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 812, "secs", 1,0 +running_baseFuel = scalar, U16, 816, "mg", 0.01, 0 +running_fuel = scalar, U16, 818, "mg", 0.01, 0 +afrTableYAxis = scalar, U16, 820, "%", 0.01,0 +targetLambda = scalar, U16, 822, "", 1.0E-4,0 +targetAFR = scalar, U16, 824, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 826, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 828, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 832, "g", 1, 0 +normalizedCylinderFilling = scalar, F32, 836, "%", 1, 0 +brokenInjector = scalar, U08, 840, "", 1, 0 +unused88 = scalar, U08, 841, "", 1, 0 +idealEngineTorque = scalar, U16, 842, "", 1, 0 +injectorHwIssue = bits, U32, 844, [0:0] +; total TS size = 848 +baseDwell = scalar, F32, 848, "ms", 1,0 +sparkDwell = scalar, F32, 852, "ms", 1,0 +dwellDurationAngle = scalar, F32, 856, "deg", 1,0 +cltTimingCorrection = scalar, S16, 860, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 862, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 864, "deg", 0.01,0 +baseIgnitionAdvance = scalar, S16, 866, "deg", 0.02, 0 +correctedIgnitionAdvance = scalar, S16, 868, "deg", 0.02, 0 +tractionAdvanceDrop = scalar, S16, 870, "deg", 0.02, 0 +dwellVoltageCorrection = scalar, F32, 872, "", 1, 0 +luaTimingAdd = scalar, F32, 876, "deg", 1, 0 +luaTimingMult = scalar, F32, 880, "deg", 1, 0 +luaIgnitionSkip = bits, U32, 884, [0:0] +; total TS size = 888 +m_knockLevel = scalar, F32, 888, "Volts", 1, 0 +m_knockCyl1 = scalar, S08, 892, "dBv", 1, 0 +m_knockCyl2 = scalar, S08, 893, "dBv", 1, 0 +m_knockCyl3 = scalar, S08, 894, "dBv", 1, 0 +m_knockCyl4 = scalar, S08, 895, "dBv", 1, 0 +m_knockCyl5 = scalar, S08, 896, "dBv", 1, 0 +m_knockCyl6 = scalar, S08, 897, "dBv", 1, 0 +m_knockCyl7 = scalar, S08, 898, "dBv", 1, 0 +m_knockCyl8 = scalar, S08, 899, "dBv", 1, 0 +m_knockCyl9 = scalar, S08, 900, "dBv", 1, 0 +m_knockCyl10 = scalar, S08, 901, "dBv", 1, 0 +m_knockCyl11 = scalar, S08, 902, "dBv", 1, 0 +m_knockCyl12 = scalar, S08, 903, "dBv", 1, 0 +m_knockRetard = scalar, F32, 904, "deg", 1,0 +m_knockThreshold = scalar, F32, 908, "", 1, 0 +m_knockCount = scalar, U32, 912, "", 1, 0 +m_maximumRetard = scalar, F32, 916, "", 1, 0 +; total TS size = 920 +tcuCurrentGear = scalar, S08, 920, "gear", 1, 0 +tcRatio = scalar, U16, 922, "value", 0.01, 0 +lastShiftTime = scalar, F32, 924, "", 1, 0 +tcu_currentRange = scalar, U08, 928, "", 1, 0 +; total TS size = 932 +throttleUseWotModel = bits, U32, 932, [0:0] +throttleModelCrossoverAngle = scalar, S16, 936, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 940, "g/s", 1, 0 +; total TS size = 944 +m_requested_pump = scalar, F32, 944, "", 1, 0 +fuel_requested_percent = scalar, F32, 948, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 952, "", 1, 0 +noValve = bits, U32, 956, [0:0] +angleAboveMin = bits, U32, 956, [1:1] +isHpfpInactive = bits, U32, 956, [2:2] +m_pressureTarget_kPa = scalar, F32, 960, "", 1, 0 +nextLobe = scalar, F32, 964, "", 1, 0 +di_nextStart = scalar, F32, 968, "v", 1, 0 +; total TS size = 972 +m_deadtime = scalar, F32, 972, "ms", 1, 0 +pressureDelta = scalar, F32, 976, "kPa", 1, 0 +pressureRatio = scalar, F32, 980, "", 1, 0 +; total TS size = 984 +retardThresholdRpm = scalar, S32, 984, "", 1, 0 +combinedConditions = bits, U32, 988, [0:0] +launchActivatePinState = bits, U32, 988, [1:1] +isLaunchPreCondition = bits, U32, 988, [2:2] +isLaunchCondition = bits, U32, 988, [3:3] +isSwitchActivated = bits, U32, 988, [4:4] +isClutchActivated = bits, U32, 988, [5:5] +isValidInputPin = bits, U32, 988, [6:6] +activateSwitchCondition = bits, U32, 988, [7:7] +rpmCondition = bits, U32, 988, [8:8] +speedCondition = bits, U32, 988, [9:9] +tpsCondition = bits, U32, 988, [10:10] +; total TS size = 992 +isAntilagCondition = bits, U32, 992, [0:0] +ALSMinRPMCondition = bits, U32, 992, [1:1] +ALSMaxRPMCondition = bits, U32, 992, [2:2] +ALSMinCLTCondition = bits, U32, 992, [3:3] +ALSMaxCLTCondition = bits, U32, 992, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 992, [5:5] +isALSSwitchActivated = bits, U32, 992, [6:6] +ALSActivatePinState = bits, U32, 992, [7:7] +ALSSwitchCondition = bits, U32, 992, [8:8] +ALSTimerCondition = bits, U32, 992, [9:9] +fuelALSCorrection = scalar, F32, 996, "", 1, 0 +timingALSCorrection = scalar, S16, 1000, "deg", 0.01, 0 +timingALSSkip = scalar, S16, 1002, "deg", 0.01, 0 +; total TS size = 1004 +isTpsInvalid = bits, U32, 1004, [0:0] +m_shouldResetPid = bits, U32, 1004, [1:1] +isBelowClosedLoopThreshold = bits, U32, 1004, [2:2] +isNotClosedLoop = bits, U32, 1004, [3:3] +isZeroRpm = bits, U32, 1004, [4:4] +hasInitBoost = bits, U32, 1004, [5:5] +rpmTooLow = bits, U32, 1004, [6:6] +tpsTooLow = bits, U32, 1004, [7:7] +mapTooLow = bits, U32, 1004, [8:8] +isPlantValid = bits, U32, 1004, [9:9] +isBoostControlled = bits, U32, 1004, [10:10] +luaTargetAdd = scalar, S16, 1008, "v", 0.5,0 +boostOutput = scalar, S16, 1010, "percent", 0.01,0 +luaTargetMult = scalar, F32, 1012, "v", 1,0 +openLoopPart = scalar, F32, 1016, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 1020, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 1024, "%", 0.5,0 +boostControlTarget = scalar, S16, 1026, "kPa", 0.03333333333333333,0 +; total TS size = 1028 +acButtonState = scalar, S08, 1028, "", 1, 0 +m_acEnabled = bits, U32, 1032, [0:0] +engineTooSlow = bits, U32, 1032, [1:1] +engineTooFast = bits, U32, 1032, [2:2] +noClt = bits, U32, 1032, [3:3] +engineTooHot = bits, U32, 1032, [4:4] +tpsTooHigh = bits, U32, 1032, [5:5] +isDisabledByLua = bits, U32, 1032, [6:6] +acCompressorState = bits, U32, 1032, [7:7] +latest_usage_ac_control = scalar, S32, 1036, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 1040, "", 1, 0 +; total TS size = 1044 +cranking0 = bits, U32, 1044, [0:0] +notRunning0 = bits, U32, 1044, [1:1] +disabledWhileEngineStopped0 = bits, U32, 1044, [2:2] +brokenClt0 = bits, U32, 1044, [3:3] +enabledForAc0 = bits, U32, 1044, [4:4] +hot0 = bits, U32, 1044, [5:5] +cold0 = bits, U32, 1044, [6:6] +disabledBySpeed0 = bits, U32, 1044, [7:7] +; total TS size = 1048 +isPrime = bits, U32, 1048, [0:0] +engineTurnedRecently = bits, U32, 1048, [1:1] +isFuelPumpOn = bits, U32, 1048, [2:2] +ignitionOn = bits, U32, 1048, [3:3] +; total TS size = 1052 +isBenchTest = bits, U32, 1052, [0:0] +hasIgnitionVoltage = bits, U32, 1052, [1:1] +mainRelayState = bits, U32, 1052, [2:2] +delayedShutoffRequested = bits, U32, 1052, [3:3] +; total TS size = 1056 +lua_fuelAdd = scalar, F32, 1056, "g", 1, 0 +lua_fuelMult = scalar, F32, 1060, "", 1, 0 +lua_clutchUpState = bits, U32, 1064, [0:0] +lua_brakePedalState = bits, U32, 1064, [1:1] +lua_acRequestState = bits, U32, 1064, [2:2] +lua_luaDisableEtb = bits, U32, 1064, [3:3] +lua_luaIgnCut = bits, U32, 1064, [4:4] +sd_tCharge = scalar, S16, 1068, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1072, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1076, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1080, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1084, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1088, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1092, "", 1, 0 +hellenBoardId = scalar, S16, 1096, "id", 1, 0 +clutchUpState = scalar, S08, 1098, "", 1, 0 +clutchDownState = scalar, S08, 1099, "", 1, 0 +brakePedalState = scalar, S08, 1100, "", 1, 0 +startStopState = scalar, S08, 1101, "", 1, 0 +smartChipState = scalar, S08, 1102, "", 1, 0 +smartChipRestartCounter = scalar, S08, 1103, "", 1, 0 +smartChipAliveCounter = scalar, S08, 1104, "", 1, 0 +startStopPhysicalState = bits, U32, 1108, [0:0] +acrActive = bits, U32, 1108, [1:1] +acrEngineMovedRecently = bits, U32, 1108, [2:2] +heaterControlEnabled = bits, U32, 1108, [3:3] +luaDigitalState0 = bits, U32, 1108, [4:4] +luaDigitalState1 = bits, U32, 1108, [5:5] +luaDigitalState2 = bits, U32, 1108, [6:6] +luaDigitalState3 = bits, U32, 1108, [7:7] +startStopStateToggleCounter = scalar, U32, 1112, "", 1, 0 +egtValue1 = scalar, F32, 1116, "", 1, 0 +egtValue2 = scalar, F32, 1120, "", 1, 0 +luaSoftSparkSkip = scalar, F32, 1124, "", 1, 0 +luaHardSparkSkip = scalar, F32, 1128, "", 1, 0 +tractionControlSparkSkip = scalar, F32, 1132, "", 1, 0 +desiredRpmLimit = scalar, S16, 1136, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1140, "", 1, 0 +globalSparkCounter = scalar, U32, 1144, "", 1, 0 +fuelingLoad = scalar, F32, 1148, "", 1, 0 +ignitionLoad = scalar, F32, 1152, "", 1, 0 +veTableYAxis = scalar, U16, 1156, "%", 0.01, 0 +; total TS size = 1160 +tpsFrom = scalar, F32, 1160 +tpsTo = scalar, F32, 1164 +deltaTps = scalar, F32, 1168 +extraFuel = scalar, F32, 1172, "", 1, 0 +valueFromTable = scalar, F32, 1176, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1180, [0:0] +isBelowDecelThreshold = bits, U32, 1180, [1:1] +isTimeToResetAccumulator = bits, U32, 1180, [2:2] +isFractionalEnrichment = bits, U32, 1180, [3:3] +belowEpsilon = bits, U32, 1180, [4:4] +tooShort = bits, U32, 1180, [5:5] +fractionalInjFuel = scalar, F32, 1184, "", 1, 0 +accumulatedValue = scalar, F32, 1188, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1192, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1196, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1200, "", 1, 0 +cycleCnt = scalar, S32, 1204, "", 1, 0 +; total TS size = 1208 +hwEventCounters1 = scalar, U32, 1208, "", 1, 0 +hwEventCounters2 = scalar, U32, 1212, "", 1, 0 +hwEventCounters3 = scalar, U32, 1216, "", 1, 0 +hwEventCounters4 = scalar, U32, 1220, "", 1, 0 +hwEventCounters5 = scalar, U32, 1224, "", 1, 0 +hwEventCounters6 = scalar, U32, 1228, "", 1, 0 +vvtCamCounter = scalar, U32, 1232, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1236, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1240, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1244, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1245, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1248, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1252, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1256, "", 1, 0 +mapCamPrevToothAngle = scalar, F32, 1260, "deg", 1, 0 +isDecodingMapCam = bits, U32, 1264, [0:0] +; total TS size = 1268 +crankSynchronizationCounter0 = scalar, U32, 1268, "", 1, 0 +vvtSyncGapRatio0 = scalar, F32, 1272, "", 1, 0 +vvtToothDurations00 = scalar, U32, 1276, "us", 1, 0 +vvtCurrentPosition0 = scalar, F32, 1280, "sync: Primary Cam Position", 1, 0 +vvtToothPosition10 = scalar, F32, 1284, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition20 = scalar, F32, 1288, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition30 = scalar, F32, 1292, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition40 = scalar, F32, 1296, "sync: Cam Tooth Position", 1, 0 +triggerSyncGapRatio0 = scalar, F32, 1300, "", 1, 0 +triggerStateIndex0 = scalar, U08, 1304, "", 1, 0 +vvtStateIndex0 = scalar, U08, 1305, "", 1, 0 +; total TS size = 1308 +camResyncCounter = scalar, U08, 1308, "", 1, 0 +m_hasSynchronizedPhase = bits, U32, 1312, [0:0] +; total TS size = 1316 +wallFuelCorrection = scalar, F32, 1316, "", 1, 0 +wallFuel = scalar, F32, 1320, "", 1, 0 +; total TS size = 1324 +idleState = bits, S32, 1324, [0:2], "not important" +currentIdlePosition = scalar, F32, 1328 +baseIdlePosition = scalar, F32, 1332 +idleClosedLoop = scalar, F32, 1336 +iacByTpsTaper = scalar, F32, 1340 +throttlePedalUpState = scalar, S32, 1344, "", 1, 0 +mightResetPid = bits, U32, 1348, [0:0] +shouldResetPid = bits, U32, 1348, [1:1] +wasResetPid = bits, U32, 1348, [2:2] +mustResetPid = bits, U32, 1348, [3:3] +isCranking = bits, U32, 1348, [4:4] +isIacTableForCoasting = bits, U32, 1348, [5:5] +notIdling = bits, U32, 1348, [6:6] +needReset = bits, U32, 1348, [7:7] +isInDeadZone = bits, U32, 1348, [8:8] +isBlipping = bits, U32, 1348, [9:9] +useClosedLoop = bits, U32, 1348, [10:10] +badTps = bits, U32, 1348, [11:11] +looksLikeRunning = bits, U32, 1348, [12:12] +looksLikeCoasting = bits, U32, 1348, [13:13] +looksLikeCrankToIdle = bits, U32, 1348, [14:14] +isIdleCoasting = bits, U32, 1348, [15:15] +isIdleClosedLoop = bits, U32, 1348, [16:16] +idleTarget = scalar, S32, 1352, "", 1, 0 +targetRpmByClt = scalar, S32, 1356, "", 1, 0 +targetRpmAc = scalar, S32, 1360, "", 1, 0 +iacByRpmTaper = scalar, F32, 1364 +luaAdd = scalar, F32, 1368 +; total TS size = 1372 +idlePosition0 = scalar, F32, 1372, "per", 1,0 +trim0 = scalar, F32, 1376, "", 1, 0 +luaAdjustment0 = scalar, F32, 1380, "per", 1,0 +m_wastegatePosition0 = scalar, F32, 1384, "per", 1,0 +etbFeedForward0 = scalar, F32, 1388 +etbIntegralError0 = scalar, F32, 1392, "", 1, 0 +etbCurrentTarget0 = scalar, F32, 1396, "%", 1, 0 +etbCurrentAdjustedTarget0 = scalar, F32, 1400, "%", 1, 0 +etbRevLimitActive0 = bits, U32, 1404, [0:0] +jamDetected0 = bits, U32, 1404, [1:1] +etbDutyRateOfChange0 = scalar, F32, 1408, "per", 1,0 +etbDutyAverage0 = scalar, F32, 1412, "per", 1,0 +etbTpsErrorCounter0 = scalar, U16, 1416, "count", 1,0 +etbPpsErrorCounter0 = scalar, U16, 1418, "count", 1,0 +etbErrorCode0 = scalar, S08, 1420, "", 1, 0 +tcEtbDrop0 = scalar, S08, 1421, "", 1, 0 +jamTimer0 = scalar, U16, 1422, "sec", 0.01, 0 +; total TS size = 1424 +faultCode0 = scalar, U08, 1424, "", 1, 0 +heaterDuty0 = scalar, U08, 1425, "%", 1, 0 +pumpDuty0 = scalar, U08, 1426, "%", 1, 0 +tempC0 = scalar, U16, 1428, "C", 1, 0 +nernstVoltage0 = scalar, U16, 1430, "V", 0.001, 0 +esr0 = scalar, U16, 1432, "ohm", 1, 0 +; total TS size = 1436 +dcOutput0 = scalar, F32, 1436, "per", 1,0 +isEnabled0_int = scalar, U08, 1440, "per", 1,0 +isEnabled0 = bits, U32, 1444, [0:0] +; total TS size = 1448 +value0 = scalar, U16, 1448, "value", 1,0 +value1 = scalar, U16, 1450, "value", 1,0 +errorRate = scalar, F32, 1452, "ratio", 1,0 +; total TS size = 1456 +vvtTarget = scalar, U16, 1456, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1458, "%", 0.5, 0 +; total TS size = 1460 +lambdaCurrentlyGood = bits, U32, 1460, [0:0] +lambdaMonitorCut = bits, U32, 1460, [1:1] +lambdaTimeSinceGood = scalar, U16, 1464, "sec", 0.01, 0 +; total TS size = 1468 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + wbo0_hasFault = { enableAemXSeries && (faultCode0 >= 3) } + +[PcVariables] + tuneCrcPcVariable = continuousChannelValue, tuneCrc16 + + wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; + wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 + + gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave + solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave + + rangeInputArray = array, U08, [6], "Input", 1, 0, 0, 6, 0, noMsqSave + rangeStateArray = array, U08, [9], "State", 1, 0, 0, 9, 0, noMsqSave + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "silent", "cranking", "failed to heat", "overheat", "underheat", "no supply", "legacy" + + injModeList = bits, U08, [0:3], "Simultaneous", "Sequential", "Batch", "Single Point" + ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" + +; ClearReason + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot", "GDI Comms", "Brake" + +; TpsState + etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" + + outputDiagErrorList = bits, U08, [0:3], "Not used", "No error", "Open Load", "Short to Gnd", "Short to Battery", "Overload", "Driver Overtemp", "Driver disabled", "Unknown" + +[ConstantsExtensions] + ; defaultValue is used to provide TunerStudio with a value to use in the case of + ; the constant not yet being initialized. This is primarily important if the + ; constant is used as a variable in the ini. + ; defaultValue = constantName, value; + defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 + + ; this magic is best described in output_channels.txt search for 'maintainConstantValue' + ; TPS 1 Primary + maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax } + maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin } + + ; TPS 1 Secondary + maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } + maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } + + ; TPS 2 Primary + maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } + maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } + + ; TPS 2 Secondary + maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax } + maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin } + + ; ETB Auto Gain Calibration + maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } + maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } + maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } + + maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == 12 ) ? calibrationValue : throttlePedalUpVoltage } + maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == 12 ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage } + + maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue : throttlePedalWOTVoltage } + maintainConstantValue = throttlePedalSecondaryWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage } + + requiresPowerCycle = boardUseCanTerminator + requiresPowerCycle = lps25BaroSensorScl + requiresPowerCycle = lps25BaroSensorSda + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = canWriteEnabled + requiresPowerCycle = canReadEnabled + requiresPowerCycle = can1ListenMode + requiresPowerCycle = can2ListenMode + + requiresPowerCycle = startStopButtonPin + requiresPowerCycle = startStopButtonMode + + requiresPowerCycle = enableAemXSeries + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbSplit + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = vvtOutputFrequency + requiresPowerCycle = vvtPins1 + requiresPowerCycle = vvtPins2 + requiresPowerCycle = vvtPins3 + requiresPowerCycle = vvtPins4 + + requiresPowerCycle = auxAnalogInputs1 + requiresPowerCycle = auxAnalogInputs2 + requiresPowerCycle = auxAnalogInputs3 + requiresPowerCycle = auxAnalogInputs4 + requiresPowerCycle = auxAnalogInputs5 + requiresPowerCycle = auxAnalogInputs6 + requiresPowerCycle = auxAnalogInputs7 + requiresPowerCycle = auxAnalogInputs8 + + requiresPowerCycle = knockBandCustom + + readOnly = warning_message + + defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 + readOnly = gearCountArray + defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 + readOnly = solenoidCountArray + + defaultValue = rangeStateArray, 0 1 2 3 4 5 6 7 8 + readOnly = rangeStateArray + defaultValue = rangeInputArray, 0 1 2 3 4 5 + readOnly = solenoidCountArray + +[CurveEditor] +; xAxis = leftValue, rightValue, step +; yAxis = bottomValue, topValue, step + + curve = knockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 10 + xBins = knockNoiseRpmBins, RPMValue + yBins = knockBaseNoise + gauge = RPMGauge + + curve = scriptCurve1, "Script Curve #1" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -155, 150, 10 + xBins = scriptCurve1Bins + yBins = scriptCurve1 + showTextValues = true + + curve = scriptCurve2, "Script Curve #2" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -150, 150, 10 + xBins = scriptCurve2Bins + yBins = scriptCurve2 + showTextValues = true + + curve = scriptCurve3, "Script Curve #3" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve3Bins + yBins = scriptCurve3 + showTextValues = true + + curve = scriptCurve4, "Script Curve #4" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve4Bins + yBins = scriptCurve4 + showTextValues = true + + curve = scriptCurve5, "Script Curve #5" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve5Bins + yBins = scriptCurve5 + showTextValues = true + + curve = scriptCurve6, "Script Curve #6" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve6Bins + yBins = scriptCurve6 + showTextValues = true + + curve = dwellCorrection, "Dwell time base" + columnLabel = "RPM", "Dwell" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 9 + xBins = sparkDwellRpmBins, RPMValue + yBins = sparkDwellValues + gauge = RPMGauge + + curve = dwellVoltageCorrection, "Dwell voltage correction" + columnLabel = "Battery Volts", "Multiplier" + xAxis = 6, 16, 11 + yAxis = 0, 3, 7 + xBins = dwellVoltageCorrVoltBins, VBatt + yBins = dwellVoltageCorrValues + gauge = VBattGauge + + curve = tpsTspRpmCorrection, "Transient RPM correction" + columnLabel = "RPM", "Multiplier" + xAxis = 0, 8000, 9 + yAxis = 0, 3, 7 + xBins = tpsTspCorrValuesBins, RPMValue + yBins = tpsTspCorrValues + gauge = RPMGauge + + curve = primingPulse, "Priming pulse fuel mass" + columnLabel = "Coolant", "Prime Pulse" + xAxis = -40, 120, 9 + yAxis = 0, 1000, 9 + xBins = primeBins, coolant + yBins = primeValues + gauge = CLTGauge + + curve = map_samplingAngleCurve, "MAP Sampling Start Angle" + columnLabel = "RPM", "Angle" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingAngleBins, RPMValue + yBins = map_samplingAngle + gauge = MAPGauge + + curve = map_samplingWindowCurve, "MAP Sampling Duration" + columnLabel = "RPM", "Window" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingWindowBins, RPMValue + yBins = map_samplingWindow + gauge = MAPGauge + + curve = injectorsDeadTime, "Injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injector_battLagCorrBins, VBatt + yBins = injector_battLagCorr + gauge = VBattGauge + + curve = injectorsSecondaryDeadTime, "Secondary injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injectorSecondary_battLagCorrBins, VBatt + yBins = injectorSecondary_battLagCorr + gauge = VBattGauge + + curve = vrThresholdCurve1, "VR 1 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold1_rpmBins, RPMValue + yBins = vrThreshold1_values + + curve = vrThresholdCurve2, "VR 2 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold2_rpmBins, RPMValue + yBins = vrThreshold2_values + + curve = mafDecodingCurve, "MAF sensor" + columnLabel = "Voltage", "kg/hour" + xAxis = -1, 6, 10 + yAxis = -30, 1300, 10 + xBins = mafDecodingBins, rawMaf + yBins = mafDecoding + gauge = rawMafGauge + + curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" + topicHelp = "iatFuelCorrCurveHelp" + columnLabel = "Air Temp", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 2, 11 + xBins = iatFuelCorrBins, intake + yBins = iatFuelCorr + gauge = IATGauge + + curve = cltTimingCorrCurve, "Warmup timing correction" + columnLabel = "Coolant", "Extra" + xAxis = -40, 120, 9 + yAxis = 0, 20, 9 + xBins = cltTimingBins, coolant + yBins = cltTimingExtra + gauge = CLTGauge + + curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + gauge = CLTGauge + + curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoef + gauge = CLTGauge + + curve = crankingCltCurveE100, "Cranking Coolant Temperature Multiplier (Flex Fuel E85)" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoefE100 + gauge = CLTGauge + + curve = cltRevLimitCurve, "" + columnLabel = "Coolant", "RPM Limit" + xAxis = -40, 120, 9 + yAxis = 0, 8000, 9 + xBins = cltRevLimitRpmBins, coolant + yBins = cltRevLimitRpm + gauge = CLTGauge + + curve = etbTpsBiasCurve, "Electronic TB Bias Curve" + columnLabel = "TPS", "duty bias" + xAxis = 0, 50, 11 + yAxis = -40, 40, 9 + xBins = etbBiasBins, TPSValue + yBins = etbBiasValues + gauge = TPSGauge + + curve = crankingTpsCurve, "Cranking TPS Multiplier" + columnLabel = "TPS", "Multiplier" + xAxis = 0, 100, 11 + yAxis = 0, 3, 10 + xBins = crankingTpsBins, TPSValue + yBins = crankingTpsCoef + gauge = TPSGauge + + curve = crankingDurationCurve, "Cranking Cycle Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = cltIdleRPMCurve, "Idle Target RPM" + columnLabel = "Coolant", "RPM" + xAxis = -40, 120, 9 + yAxis = 0, 2400, 13 + xBins = cltIdleRpmBins, coolant + yBins = cltIdleRpm, RPMValue + gauge = CLTGauge + + curve = idleAdvanceCurve, "Idle Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 2400, 13 + yAxis = -100, 100, 11 + xBins = idleAdvanceBins, RPMValue + yBins = idleAdvance + gauge = RPMGauge + + curve = crankingAdvanceCurve, "Cranking Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 1200, 13 + yAxis = -30, 30, 11 + xBins = crankingAdvanceBins, RPMValue + yBins = crankingAdvance + gauge = RPMGauge + + curve = fuelLevelCurve, "Fuel Level" + columnLabel = "Voltage", "%" + xAxis = 0, 5, 6 + yAxis = 0, 100, 11 + xBins = fuelLevelBins + yBins = fuelLevelValues + gauge = fuelTankLevelGauge + + curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" + columnLabel = "Coolant", "AFR Offset" + xAxis = -40, 200, 9 + yAxis = -3, 1, 5 + xBins = cltFuelCorrBins, coolant + yBins = wueAfrTargetOffset + gauge = cltGauge + + curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" + columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" + xAxis = -40, 200, 9 + yAxis = 90, 500, 6 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + yBins = wueAnalRecommend + ;gauge = cltGauge + + lineLabel = "Warmup Correction" + lineLabel = "Recommended WUE" + + curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" + columnLabel = "% pump volume", "angle" + xAxis = 0, 100, 11 + yAxis = 0, 240, 13 + xBins = hpfpLobeProfileQuantityBins + yBins = hpfpLobeProfileAngle + + curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" + columnLabel = "volts", "ms" + xAxis = 5, 15, 11 + yAxis = 0, 5, 6 + xBins = hpfpDeadtimeVoltsBins + yBins = hpfpDeadtimeMS + + curve = wwTauCltCurve, "Evap time vs. CLT" + columnLabel = "coolant", "seconds" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwTauCltValues + gauge = CLTGauge + + curve = wwTauMapCurve, "Evap time vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwTauMapValues + gauge = MAPGauge + + curve = wwBetaCltCurve, "Impact fraction vs. CLT" + columnLabel = "coolant", "fraction" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwBetaCltValues + gauge = CLTGauge + + curve = wwBetaMapCurve, "Impact fraction vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwBetaMapValues + gauge = MAPGauge + + curve = tchargeCurve, "Charge temperature estimation coefficient" + columnLabel = "flow", "coefficient" + xAxis = 0, 500, 6 + yAxis = 0, 100, 5 + xBins = tchargeBins, mafEstimate + yBins = tchargeValues + gauge = tChargeGauge + + curve = tccLockCurve, "TCC Lock Curve" + columnLabel = "TPS", "Lock Speed", "Unlock Speed" + xAxis = 0, 100, 10 + yAxis = 0, 100, 10 + xBins = tcu_tccTpsBins, TPSValue + yBins = tcu_tccLockSpeed + yBins = tcu_tccUnlockSpeed + gauge = TPSGauge + + curve = pcPerGearCurve, "Transmission Line Pressure Control" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcValsR + yBins = tcu_pcValsN + yBins = tcu_pcVals1 + yBins = tcu_pcVals2 + yBins = tcu_pcVals3 + yBins = tcu_pcVals4 + lineLabel = "R%" + lineLabel = "N%" + lineLabel = "1%" + lineLabel = "2%" + lineLabel = "3%" + lineLabel = "4%" + +curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcVals12 + yBins = tcu_pcVals23 + yBins = tcu_pcVals34 + yBins = tcu_pcVals21 + yBins = tcu_pcVals32 + yBins = tcu_pcVals43 + lineLabel = "1->2%" + lineLabel = "2->3%" + lineLabel = "3->4%" + lineLabel = "2->1%" + lineLabel = "3->2%" + lineLabel = "4->3%" + +curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" + columnLabel = "Speed", "%" + xAxis = 0, 200, 20 + yAxis = 0, 100, 10 + xBins = tcu_32SpeedBins, vehicleSpeedKph + yBins = tcu_32Vals + +curve = rangeMatrix, "Range Switch Input Matrix" + columnLabel = "Pin", "" + xAxis = 0, 6, 6 + yAxis = 0, 3, 3 + xBins = rangeInputArray + yBins = tcu_rangeP + yBins = tcu_rangeR + yBins = tcu_rangeN + yBins = tcu_rangeD + yBins = tcu_rangeM + yBins = tcu_rangeM3 + yBins = tcu_rangeM2 + yBins = tcu_rangeM1 + yBins = tcu_rangePlus + yBins = tcu_rangeMinus + yBins = tcu_rangeLow + lineLabel = "Park" + lineLabel = "Reverse" + lineLabel = "Neutral" + lineLabel = "Drive" + lineLabel = "Manual" + lineLabel = "Manual 3rd" + lineLabel = "Manual 2nd" + lineLabel = "Manual 1st" + lineLabel = "Manual +" + lineLabel = "Manual -" + lineLabel = "Low" + + curve = ignAdder1Bias, "Ignition adder 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends1_blendBins, ignBlendParameter1 + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlendParameter2 + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlendParameter3 + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlendParameter4 + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlendParameter1 + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlendParameter2 + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlendParameter3 + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlendParameter4 + yBins = veBlends4_blendValues + + curve = boostOpenLoopBlend1Bias, "Boost open loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends1_blendBins, boostOpenLoopBlendParameter1 + yBins = boostOpenLoopBlends1_blendValues + + curve = boostOpenLoopBlend2Bias, "Boost open loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends2_blendBins, boostOpenLoopBlendParameter2 + yBins = boostOpenLoopBlends2_blendValues + + curve = boostClosedLoopBlend1Bias, "Boost Closed loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends1_blendBins, boostClosedLoopBlendParameter1 + yBins = boostClosedLoopBlends1_blendValues + + curve = boostClosedLoopBlend2Bias, "Boost Closed loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends2_blendBins, boostClosedLoopBlendParameter2 + yBins = boostClosedLoopBlends2_blendValues + + curve = throttleEffectiveArea, "Throttle effective area" + columnLabel = "TPS", "normalized flow" + xAxis = 0, 100, 11 + yAxis = 0, 2, 5 + xBins = throttleEstimateEffectiveAreaBins, TPSValue + yBins = throttleEstimateEffectiveAreaValues + gauge = TPSGauge + + curve = boostOpenLoopGearAdderCurve, "Boost Open Loop gear-based adder" + columnLabel = "Gear", "duty cycle" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = gearCountArray, tcuCurrentGear + yBins = gearBasedOpenLoopBoostAdder + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com/s/tpstps https://github.com/rusefi/rusefi/issues/5130 + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = tractionEtbTableTbl, tractionEtb, "Traction Control ETB drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlEtbDrop + + table = tractionTimingTableTbl, tractionEtb, "Traction Control Timing drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlTimingDrop + + table = tractionIgnitionSkipTableTbl, tractionEtb, "Traction Control Skip Ignition", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlIgnitionSkip + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + xBins = alsIgnRetardrpmBins, RPMValue + yBins = alsIgnRetardLoadBins, TPSValue + zBins = ALSTimingRetardTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = FuelAdderTableALS, FuelAdderALS, "Fuel adjustment", 1 + xBins = alsFuelAdjustmentrpmBins, RPMValue + yBins = alsFuelAdjustmentLoadBins, TPSValue + zBins = ALSFuelAdjustment + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = IgnSkipTableALS, IgnSkipALS, "Ignition Skip", 1 + ; constant, variable + xBins = alsIgnSkiprpmBins, RPMValue + yBins = alsIgnSkipLoadBins, TPSValue + zBins = ALSIgnSkipTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 + xyLabels = "RPM", "Ignition Load" + xBins = baroCorrRpmBins, RPMValue + yBins = baroCorrPressureBins, baroPressure + zBins = baroCorrTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignitionRpmBins, RPMValue + yBins = ignitionLoadBins, ignitionLoad + zBins = ignitionTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends1_rpmBins, RPMValue + yBins = ignBlends1_loadBins, ignitionLoad + zBins = ignBlends1_table + gridOrient = 250, 0, 340 + + table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends2_rpmBins, RPMValue + yBins = ignBlends2_loadBins, ignitionLoad + zBins = ignBlends2_table + gridOrient = 250, 0, 340 + + table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends3_rpmBins, RPMValue + yBins = ignBlends3_loadBins, ignitionLoad + zBins = ignBlends3_table + gridOrient = 250, 0, 340 + + table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends4_rpmBins, RPMValue + yBins = ignBlends4_loadBins, ignitionLoad + zBins = ignBlends4_table + gridOrient = 250, 0, 340 + + table = veBlend1Table, veBlend1Map, "VE blend 1", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends1_rpmBins, RPMValue + yBins = veBlends1_loadBins, fuelingLoad + zBins = veBlends1_table + gridOrient = 250, 0, 340 + + table = veBlend2Table, veBlend2Map, "VE blend 2", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends2_rpmBins, RPMValue + yBins = veBlends2_loadBins, fuelingLoad + zBins = veBlends2_table + gridOrient = 250, 0, 340 + + table = veBlend3Table, veBlend3Map, "VE blend 3", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends3_rpmBins, RPMValue + yBins = veBlends3_loadBins, fuelingLoad + zBins = veBlends3_table + gridOrient = 250, 0, 340 + + table = veBlend4Table, veBlend4Map, "VE blend 4", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends4_rpmBins, RPMValue + yBins = veBlends4_loadBins, fuelingLoad + zBins = veBlends4_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends1_rpmBins, RPMValue + yBins = boostOpenLoopBlends1_loadBins, TPSValue + zBins = boostOpenLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends2_rpmBins, RPMValue + yBins = boostOpenLoopBlends2_loadBins, TPSValue + zBins = boostOpenLoopBlends2_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends1_rpmBins, RPMValue + yBins = boostClosedLoopBlends1_loadBins, TPSValue + zBins = boostClosedLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends2_rpmBins, RPMValue + yBins = boostClosedLoopBlends2_loadBins, TPSValue + zBins = boostClosedLoopBlends2_table + gridOrient = 250, 0, 340 + + table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 + xyLabels = "Air Temp", "Ignition Load" + xBins = ignitionIatCorrTempBins, intake + yBins = ignitionIatCorrLoadBins, ignitionLoad + zBins = ignitionIatCorrTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = torqueTableTbl, torqueTableMap, "Engine Torque", 1 + xBins = torqueRpmBins, RPMValue + yBins = torqueLoadBins, veTableYAxis + zBins = torqueTable + + table = veTableTbl, veTableMap, "VE Table", 1 + xyLabels = "RPM", "load" + xBins = veRpmBins, RPMValue + yBins = veLoadBins, veTableYAxis + zBins = veTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = idleVeTableTbl, idleVeTable, "Idle VE" + xyLabels = "RPM", "load" + xBins = idleVeRpmBins, RPMValue + yBins = idleVeLoadBins, veTableYAxis + zBins = idleVeTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims1_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims2_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims3_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims4_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims5_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims6_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims7_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims8_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims9_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims10_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims11_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims12_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims1_table + + table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims2_table + + table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims3_table + + table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims4_table + + table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims5_table + + table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims6_table + + table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims7_table + + table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims8_table + + table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims9_table + + table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims10_table + + table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims11_table + + table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims12_table + + table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 + xBins = mapEstimateRpmBins, RPMValue + yBins = mapEstimateTpsBins, TPSValue + zBins = mapEstimateTable + + table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 + topicHelp = "fuelHelp" + xBins = injPhaseRpmBins, RPMValue + yBins = injPhaseLoadBins, fuelingLoad + zBins = injectionPhase +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 + xBins = pedalToTpsRpmBins, RPMValue + yBins = pedalToTpsPedalBins, throttlePedalPosition + zBins = pedalToTpsTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1 + xBins = throttle2TrimRpmBins, RPMValue + yBins = throttle2TrimTpsBins, TPSValue + zBins = throttle2TrimTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + + table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1 + xBins = maxKnockRetardRpmBins, RPMValue + yBins = maxKnockRetardLoadBins, TPSValue + zBins = maxKnockRetardTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + +#if LAMBDA + table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 +#else + table = afrTableTbl, afrTableMap, "Target AFR Table", 1 +#endif + xBins = lambdaRpmBins, RPMValue + yBins = lambdaLoadBins, afrTableYAxis + zBins = lambdaTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 + xyLabels = "RPM", "" + xBins = lambdaMaxDeviationRpmBins, RPMValue + yBins = lambdaMaxDeviationLoadBins, afrTableYAxis + zBins = lambdaMaxDeviationTable + + table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 + xBins = iacPidMultRpmBins, RPMValue + yBins = iacPidMultLoadBins, fuelingLoad + zBins = iacPidMultTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = gppwm1Tbl, gppwm1Map, "GP#1", 1 + xyLabels = "RPM", "" + xBins = gppwm1_rpmBins, gppwmXAxis1 + yBins = gppwm1_loadBins, gppwmYAxis1 + zBins = gppwm1_table + + table = gppwm2Tbl, gppwm2Map, "GP#2", 1 + xyLabels = "RPM", "" + xBins = gppwm2_rpmBins, gppwmXAxis2 + yBins = gppwm2_loadBins, gppwmYAxis2 + zBins = gppwm2_table + + table = gppwm3Tbl, gppwm3Map, "GP#3", 1 + xyLabels = "RPM", "" + xBins = gppwm3_rpmBins, gppwmXAxis3 + yBins = gppwm3_loadBins, gppwmYAxis3 + zBins = gppwm3_table + + table = gppwm4Tbl, gppwm4Map, "GP#4", 1 + xyLabels = "RPM", "" + xBins = gppwm4_rpmBins, gppwmXAxis4 + yBins = gppwm4_loadBins, gppwmYAxis4 + zBins = gppwm4_table + + table = stagedInjectionTbl, stagedInjectionMap, "Staged Injection %", 1 + xyLabels = "RPM", "" + xBins = injectorStagingRpmBins, RPMValue + yBins = injectorStagingLoadBins, fuelingLoad + zBins = injectorStagingTable + + table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 + xBins = gearCountArray, tcuCurrentGear + yBins = solenoidCountArray, tcuCurrentGear + zBins = tcuSolenoidTable + xyLabels = "Solenoid", "Gear" + + table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1 + xBins = hpfpTargetRpmBins, RPMValue + yBins = hpfpTargetLoadBins, veTableYAxis + zBins = hpfpTarget + + table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1 + xBins = hpfpCompensationRpmBins, RPMValue + yBins = hpfpCompensationLoadBins, running_fuel + zBins = hpfpCompensation + + table = postCrankingEnrichmentTbl, postCrankingEnrichmentMap, "After start enrichment", 1 + xyLabels = "Engine Cycles", "Coolant Temp" + xBins = postCrankingDurationBins, revolutionCounterSinceStart + yBins = postCrankingCLTBins, coolant + zBins = postCrankingFactor + + +[GaugeConfigurations] + gaugeCategory = "Sync" +triggerVvt2FallGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +triggerVvt2RiseGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +currentEngineDecodedPhaseGauge = currentEngineDecodedPhase,"Sync: Engine Phase", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"Fuel: Total correction", "mult", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +running_timeSinceCrankingInSecsGauge = running_timeSinceCrankingInSecs,"running_ timeSinceCrankingInSecs", "secs", 0.0,600000.0, 0.0,600000.0, 0.0,600000.0, 0,0 +targetLambdaGauge = targetLambda,"Fuel: target lambda", "", 0.5,1.5, 0.5,1.5, 0.5,1.5, 2,2 +targetAFRGauge = targetAFR,"Fuel: target AFR", "ratio", 10.0,20.0, 10.0,20.0, 10.0,20.0, 2,2 + gaugeCategory = "Timing" +baseDwellGauge = baseDwell,"Ignition: base dwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"Ignition: coil charge time", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +dwellDurationAngleGauge = dwellDurationAngle,"Ignition: dwell duration", "deg", 0.0,120.0, 0.0,120.0, 0.0,120.0, 1,1 +cltTimingCorrectionGauge = cltTimingCorrection,"Ign: CLT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"Ign: IAT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"Idle: Timing adjustment", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"Ign: Lua timing add", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"Ign: Lua timing mult", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + gaugeCategory = "Boost Control" +luaTargetAddGauge = luaTargetAdd,"Boost: Lua target add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostOutputGauge = boostOutput,"Boost: Output", "percent", -100.0,100.0, -100.0,100.0, -100.0,100.0, 2,2 +luaTargetMultGauge = luaTargetMult,"Boost: Lua target mult", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +openLoopPartGauge = openLoopPart,"Boost: Open loop", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +luaOpenLoopAddGauge = luaOpenLoopAdd,"Boost: Lua open loop add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostControllerClosedLoopPartGauge = boostControllerClosedLoopPart,"Boost: Closed loop", "%", -50.0,50.0, -50.0,50.0, -50.0,50.0, 1,1 +boostControlTargetGauge = boostControlTarget,"Boost: Target", "kPa", 0.0,300.0, 0.0,300.0, 0.0,300.0, 1,1 + gaugeCategory = "ETB more" +idlePosition0Gauge = idlePosition0,"ETB: idlePosition0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +luaAdjustment0Gauge = luaAdjustment0,"ETB: luaAdjustment0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +m_wastegatePosition0Gauge = m_wastegatePosition0,"DC: wastegatePosition0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +etbDutyRateOfChange0Gauge = etbDutyRateOfChange0,"ETB duty rate of change0", "per", 0.0,25.0, 0.0,25.0, 0.0,25.0, 2,2 +etbDutyAverage0Gauge = etbDutyAverage0,"ETB average duty0", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounter0Gauge = etbTpsErrorCounter0,"ETB TPS error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounter0Gauge = etbPpsErrorCounter0,"ETB pedal error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio0,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex0,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio0,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex0,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallCounterGauge = triggerPrimaryFall,"triggerPrimaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerPrimaryRiseCounterGauge = triggerPrimaryRise,"triggerPrimaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryFallCounterGauge = triggerSecondaryFall,"triggerSecondaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryRiseCounterGauge = triggerSecondaryRise,"triggerSecondaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtFallCounterGauge = triggerVvtFall,"triggerVvtFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtRiseCounterGauge = triggerVvtRise,"triggerVvtRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2FallCounterGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2RiseCounterGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0 + +gaugeCategory = Test Bench + testBenchIterGauge = testBenchIter, "Test Bench Iterations", "count", -10, {benchTestCount + 10}, -5, 0, {benchTestCount}, {benchTestCount + 5}, 1, 1 + +gaugeCategory = LUA + luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + +gaugeCategory = Alternator PID + alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Boost PID + boostStatus_iTermGauge = boostStatus_iTerm,"Boost PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_dTermGauge = boostStatus_dTerm,"Boost PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_outputGauge = boostStatus_output,"Boost PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_errorGauge = boostStatus_error,"Boost PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_resetCounterGauge = boostStatus_resetCounter,"Boost PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Idle + idlePosSensGauge = idlePositionSensor, "Idle: Position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleAirValvePositionGauge = currentIdlePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Etb PID + etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_dTermGauge = etbStatus_dTerm,"ETB 1 PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_outputGauge = etbStatus_output,"ETB 1 PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_errorGauge = etbStatus_error,"ETB 1 PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_resetCounterGauge = etbStatus_resetCounter,"ETB 1 PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + + wgStatus_iTermGauge = wastegateDcStatus_iTerm,"WG PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_dTermGauge = wastegateDcStatus_dTerm,"WG PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_outputGauge = wastegateDcStatus_output,"WG PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_errorGauge = wastegateDcStatus_error,"WG PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_resetCounterGauge = wastegateDcStatus_resetCounter,"WG PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + +gaugeCategory = CAN + canReadCounterGauge = canReadCounter,"CAN: Rx", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteOkGauge = canWriteOk,"CAN: Tx OK", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteNotOkGauge = canWriteNotOk,"CAN: Tx err", "", 0,64000, 0,64000, 0,64000, 0,0 + +gaugeCategory = GDI + di_nextStartGauge = di_nextStart,"DI: next start", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;todo see comment in HpfpQuantity class definition + ;m_I_sum_percentGauge = m_I_sum_percent,"DI: m_I_sum_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;m_pressureTarget_kPaGauge = m_pressureTarget_kPa,"DI: m_pressureTarget_kPa", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + highFuelPressureGauge = highFuelPressure, "Fuel pressure (high)", "bar", 0, 200, 0, 0, 200, 200, 1, 0 + +gaugeCategory = ECU Status + warningCounterGauge = warningCounter, "Warning: counter", "", 0, 100, 0, 0, 100, 100, 0, 0 + lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode1Gauge = recentErrorCode1, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode2Gauge = recentErrorCode2, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode3Gauge = recentErrorCode3, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode4Gauge = recentErrorCode4, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode5Gauge = recentErrorCode5, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode6Gauge = recentErrorCode6, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode7Gauge = recentErrorCode7, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode8Gauge = recentErrorCode8, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 + timeSecondsGauge = seconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 + tuneCrc16Gauge = tuneCrc16, "Tune CRC16", "", 0, 64000, 0, 0, 64000, 64000, 0, 0 + +gaugeCategory = Debug + debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Sensors - Basic + RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + CLTGauge = coolant, "Coolant temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + IATGauge = intake, "Intake air temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + afr1Gauge = AFRValue, "Air/Fuel Ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr2Gauge = AFRValue2, "Air/Fuel Ratio 2", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale1Gauge = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale2Gauge = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + lambda1Gauge = lambdaValue, "Lambda", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + lambda2Gauge = lambdaValue2, "Lambda 2", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + VBattGauge = VBatt, "Battery", "V", 8, 21, 9, 10, 17, 19, 1, 1 + MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 + massAirFlowValueGa = mafMeasured, "MAF", "kg/h", 0, 50, -999, -999, 999, 999, 1, 1 + + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld +gaugeCategory = Sensors - Extra 1 + VSSGauge = vehicleSpeedKph, "Vehicle Speed", "kmh", 0, 200, 0, 5, 110, 130, 1, 1 + wheelSlipRatioGauge = wheelSlipRatio, "Wheel Slip Ratio", "", 0, 200, 0, 1, 3, 4, 3, 3 + turboSpeedGauge = turboSpeed, "Turbocharger Speed", "hz", 0, 200, 0, 1, 3, 4, 1, 1 + baroPressureGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + fuelTempGauge = fuelTemp, "Fuel Temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 + AuxL1Gauge = auxLinear1, "Aux linear #1", "", -100, 100, -100, -100, 100, 100, 2, 2 + AuxL2Gauge = auxLinear2, "Aux linear #2", "", -100, 100, -100, -100, 100, 100, 2, 2 + +gaugeCategory = Sensors - Extra 2 + accelerationLatGauge = accelerationLat, "Accel: Lateral", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationLonGauge = accelerationLon, "Accel: Longitudinal", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationVertGauge = accelerationVert, "Accel: Vertical", "acc", 0, 1.5, 0.5, 0.6, 1.4, 1.5, 3, 1 + gyroYawGauge = gyroYaw, "Gyro: Yaw rate", "acc", -100, 100, -100, -100, 100, 100, 3, 1 + egt1Gauge = egt1, "EGT#1", "C", 0, 2000 + egt2Gauge = egt2, "EGT#2", "C", 0, 2000 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 + wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + auxSpeed2Gauge = auxSpeed2, "Aux Freq Input2", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + +gaugeCategory = VVT + vvtPositionB1IGauge = vvtPositionB1I, "VVT: bank 1 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB1EGauge = vvtPositionB1E, "VVT: bank 1 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2IGauge = vvtPositionB2I, "VVT: bank 2 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2EGauge = vvtPositionB2E, "VVT: bank 2 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtTargets1Gauge = vvtTargets1, "VVT: bank 1 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets2Gauge = vvtTargets2, "VVT: bank 1 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets3Gauge = vvtTargets3, "VVT: bank 2 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets4Gauge = vvtTargets4, "VVT: bank 2 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtOutput1Gauge = vvtStatus1_output, "vvt: output 1", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput2Gauge = vvtStatus2_output, "vvt: output 2", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput3Gauge = vvtStatus3_output, "vvt: output 3", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput4Gauge = vvtStatus4_output, "vvt: output 4", "", 00, 100, -60, -60, 60, 60, 0, 0 + + +gaugeCategory = Ignition + sparkCutReasonGauge = sparkCutReason,"Spark Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + baseIgnAdvGauge = baseIgnitionAdvance, "Ignition: Timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + correctedIgnAdvGauge = correctedIgnitionAdvance, "Timing: ignition", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + dwellGauge = sparkDwell, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 + coilDutyCycleGauge = coilDutyCycle, "Ignition: coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1 + ignitionLoadGauge = ignitionLoad, "Ignition: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + +gaugeCategory = Acceleration Enrichment + deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 + +gaugeCategory = Fueling + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + tChargeGauge = sd_tCharge, "Fuel: Estimated charge temperature", "C", -40, 140, -15, 1, 95, 110, 1, 1 + baroCorrectionGauge = baroCorrection,"Fuel: Barometric pressure mult", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 + crankingFuelGauge = crankingFuel_fuel, "Fuel: cranking", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + iatCorrectionGauge = running_intakeTemperatureCoefficient, "Fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + cltCorrectionGauge = running_coolantTemperatureCoefficient, "Fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + injectorDutyCycleGauge=injectorDutyCycle, "Fuel: injector duty cycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + injectorDutyCycleStg2Gauge=injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2","%", 0, 120, 10, 10, 100, 100, 1, 1 + actualLastInjectionGauge = actualLastInjection, "Fuel: Last inj pulse width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + actualLastInjectionStg2Gauge = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = m_deadtime, "Fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = running_fuel, "Fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = running_baseFuel, "Fuel: base cycle mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "Fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "Fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "Fuel: Load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "Fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "Fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB: position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB: position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps1SplitGauge = tps1Split, "TPS1 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps2SplitGauge = tps2Split, "TPS2 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + accPedalSplitGauge = accPedalSplit, "Pedal Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB: Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "TCU: Desired Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + currentGearGauge = tcuCurrentGear, "Current Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + detectedGearGauge = detectedGear, "Detected Gear", "gear", 0, 10, 0, 0, 10, 10, 0, 0 + speedToRpmRatioGauge = speedToRpmRatio, "Gearbox Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + ISSGauge = ISSValue, "TCU: Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "TCU: Torque Converter Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4 + idealEngineTorqueGauge = idealEngineTorque, "idealEngineTorque", "", 0, 100, 0, 0, 100, 100, 4, 4 + +gaugeCategory = Knock + knock1Gauge = m_knockCyl1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock2Gauge = m_knockCyl2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock3Gauge = m_knockCyl3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock4Gauge = m_knockCyl4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock5Gauge = m_knockCyl5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock6Gauge = m_knockCyl6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock7Gauge = m_knockCyl7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock8Gauge = m_knockCyl8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock9Gauge = m_knockCyl9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock10Gauge = m_knockCyl10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock11Gauge = m_knockCyl11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock12Gauge = m_knockCyl12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockLevelGauge = m_knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockRetardGauge = m_knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = m_knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = correctedIgnAdvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + ; todo: do we want to drop this line since we have "config error" thing above? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode0 != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode0)}, white, black, yellow, black + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { isAboveAccelThreshold }, "No TPS accel", "TPS accel active", white, black, yellow, black + ; error codes + indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black + + ; Line 3 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black + indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black + indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black + indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black + ; not implemented + ; indicator = { ind_map_error}, "map", "map error", white, black, red, black + indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black + indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black + indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black + indicator = { etbRevLimitActive0 }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black + + indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, white, black, red, black + + ; indicator = { isInjectionEnabled && fuelCutReason == 0 }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, white, black, white, black + ; indicator = { isIgnitionEnabled && sparkCutReason == 0 }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, white, black, white, black + +; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error + +[KeyActions] + showPanel = spi, spiBuses + showPanel = con, connection + +; +; this section defines how we log output channels +; see [OutputChannels] +; +[Datalog] + ; Channel Label Type Format + entry = time, "Time", float, "%.3f" +entry = sd_present, "SD: Present", int, "%d" +entry = sd_logging_internal, "SD: Logging", int, "%d" +entry = triggerScopeReady, "triggerScopeReady", int, "%d" +entry = antilagTriggered, "antilagTriggered", int, "%d" +entry = isFanOn, "Radiator Fan", int, "%d" +entry = isO2HeaterOn, "isO2HeaterOn", int, "%d" +entry = checkEngine, "checkEngine", int, "%d" +entry = needBurn, "needBurn", int, "%d" +entry = sd_msd, "SD: MSD", int, "%d" +entry = isFan2On, "Radiator Fan 2", int, "%d" +entry = toothLogReady, "Tooth Logger Ready", int, "%d" +entry = isTpsError, "Error: TPS", int, "%d" +entry = isCltError, "Error: CLT", int, "%d" +entry = isMapError, "Error: MAP", int, "%d" +entry = isIatError, "Error: IAT", int, "%d" +entry = isTriggerError, "Error: Trigger", int, "%d" +entry = hasCriticalError, "Error: Active", int, "%d" +entry = isWarnNow, "Warning: Active", int, "%d" +entry = isPedalError, "Error: Pedal", int, "%d" +entry = isKnockChipOk, "isKnockChipOk", int, "%d" +entry = launchTriggered, "Launch Control Triggered", int, "%d" +entry = isTps2Error, "Error: TPS2", int, "%d" +entry = injectorFault, "Injector Fault", int, "%d" +entry = ignitionFault, "Ignition Fault", int, "%d" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = dfcoActive, "dfcoActive", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = internalMcuTemperature, "CPU Temperature", int, "%d" +entry = coolant, "CLT", float, "%.3f" +entry = intake, "IAT", float, "%.3f" +entry = auxTemp1, "auxTemp1", float, "%.3f" +entry = auxTemp2, "auxTemp2", float, "%.3f" +entry = TPSValue, "TPS", float, "%.3f" +entry = throttlePedalPosition, "Throttle pedal position", float, "%.3f" +entry = tpsADC, "tpsADC", int, "%d" +entry = rawMaf, "rawMaf", float, "%.3f" +entry = mafMeasured, "MAF", float, "%.3f" +entry = MAPValue, "MAP", float, "%.3f" +entry = baroPressure, "baroPressure", float, "%.3f" +entry = lambdaValue, "Lambda", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" +entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" +entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" +entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" +entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" +entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" +entry = revolutionCounterSinceStart, "revolutionCounterSinceStart", int, "%d" +entry = canReadCounter, "CAN: Rx", int, "%d" +entry = tpsAccelFuel, "Fuel: TPS AE add fuel ms", float, "%.3f" +entry = currentIgnitionMode, "Ignition: Mode", int, "%d" +entry = currentInjectionMode, "Fuel: Injection mode", int, "%d" +entry = coilDutyCycle, "Ignition: coil duty cycle", float, "%.3f" +entry = etbTarget, "ETB Target", float, "%.3f" +entry = etb1DutyCycle, "ETB: Duty", float, "%.3f" +entry = fuelTankLevel, "Fuel level", float, "%.3f" +entry = totalFuelConsumption, "Fuel: Total consumed", int, "%d" +entry = fuelFlowRate, "Fuel: Flow rate", float, "%.3f" +entry = TPS2Value, "TPS2", float, "%.3f" +entry = tuneCrc16, "Tune CRC16", int, "%d" +entry = veValue, "Fuel: VE", float, "%.3f" +entry = seconds, "Uptime", int, "%d" +entry = engineMode, "Engine Mode", int, "%d" +entry = firmwareVersion, "firmware", int, "%d" +entry = rawIdlePositionSensor, "rawIdlePositionSensor", float, "%.3f" +entry = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationLat, "Accel: Lateral", float, "%.3f" +entry = accelerationLon, "Accel: Longitudinal", float, "%.3f" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", int, "%d" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = tcuDesiredGear, "TCU: Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleStepperTargetPosition, "Idle: Stepper target position", int, "%d" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = totalTriggerErrorCounter, "Trigger Error Counter", int, "%d" +entry = orderingErrorCounter, "orderingErrorCounter", int, "%d" +entry = warningCounter, "Warning: counter", int, "%d" +entry = lastErrorCode, "Warning: last", int, "%d" +entry = recentErrorCode1, "recentErrorCode 1", int, "%d" +entry = recentErrorCode2, "recentErrorCode 2", int, "%d" +entry = recentErrorCode3, "recentErrorCode 3", int, "%d" +entry = recentErrorCode4, "recentErrorCode 4", int, "%d" +entry = recentErrorCode5, "recentErrorCode 5", int, "%d" +entry = recentErrorCode6, "recentErrorCode 6", int, "%d" +entry = recentErrorCode7, "recentErrorCode 7", int, "%d" +entry = recentErrorCode8, "recentErrorCode 8", int, "%d" +entry = debugFloatField1, "debugFloatField1", float, "%.3f" +entry = debugFloatField2, "debugFloatField2", float, "%.3f" +entry = debugFloatField3, "debugFloatField3", float, "%.3f" +entry = debugFloatField4, "debugFloatField4", float, "%.3f" +entry = debugFloatField5, "debugFloatField5", float, "%.3f" +entry = debugFloatField6, "debugFloatField6", float, "%.3f" +entry = debugFloatField7, "debugFloatField7", float, "%.3f" +entry = debugIntField1, "debugIntField1", int, "%d" +entry = debugIntField2, "debugIntField2", int, "%d" +entry = debugIntField3, "debugIntField3", int, "%d" +entry = debugIntField4, "debugIntField4", int, "%d" +entry = debugIntField5, "debugIntField5", int, "%d" +entry = egt1, "EGT 1", 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 = rawPpsSecondary, "rawPpsSecondary", float, "%.3f" +entry = idlePositionSensor, "Idle: Position sensor", float, "%.3f" +entry = AFRValue, "Air/Fuel Ratio", float, "%.3f" +entry = VssAcceleration, "Vss Accel", float, "%.3f" +entry = lambdaValue2, "Lambda 2", float, "%.3f" +entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.3f" +entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.3f" +entry = vvtPositionB2I, "VVT: bank 2 intake", float, "%.3f" +entry = vvtPositionB2E, "VVT: bank 2 exhaust", float, "%.3f" +entry = fuelPidCorrection1, "Fuel: Trim bank 1", float, "%.3f" +entry = fuelPidCorrection2, "Fuel: Trim bank 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = accelerationVert, "Accel: Vertical", float, "%.3f" +entry = gyroYaw, "Gyro: Yaw rate", float, "%.3f" +entry = vvtTargets1, "vvtTargets 1", int, "%d" +entry = vvtTargets2, "vvtTargets 2", int, "%d" +entry = vvtTargets3, "vvtTargets 3", int, "%d" +entry = vvtTargets4, "vvtTargets 4", int, "%d" +entry = turboSpeed, "Turbocharger Speed", int, "%d" +entry = ignitionAdvanceCyl1, "Ign: Timing Cyl 1", float, "%.3f" +entry = ignitionAdvanceCyl2, "Ign: Timing Cyl 2", float, "%.3f" +entry = ignitionAdvanceCyl3, "Ign: Timing Cyl 3", float, "%.3f" +entry = ignitionAdvanceCyl4, "Ign: Timing Cyl 4", float, "%.3f" +entry = ignitionAdvanceCyl5, "Ign: Timing Cyl 5", float, "%.3f" +entry = ignitionAdvanceCyl6, "Ign: Timing Cyl 6", float, "%.3f" +entry = ignitionAdvanceCyl7, "Ign: Timing Cyl 7", float, "%.3f" +entry = ignitionAdvanceCyl8, "Ign: Timing Cyl 8", float, "%.3f" +entry = ignitionAdvanceCyl9, "Ign: Timing Cyl 9", float, "%.3f" +entry = ignitionAdvanceCyl10, "Ign: Timing Cyl 10", float, "%.3f" +entry = ignitionAdvanceCyl11, "Ign: Timing Cyl 11", float, "%.3f" +entry = ignitionAdvanceCyl12, "Ign: Timing Cyl 12", float, "%.3f" +entry = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Ign: Cut Code", int, "%d" +entry = fuelCutReason, "Fuel: Cut Code", int, "%d" +entry = mafEstimate, "Air: Flow estimate", float, "%.3f" +entry = instantRpm, "sync: instant RPM", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = luaInvocationCounter, "Lua: Tick counter", int, "%d" +entry = luaLastCycleDuration, "Lua: Last tick duration", int, "%d" +entry = vssEdgeCounter, "vssEdgeCounter", int, "%d" +entry = issEdgeCounter, "issEdgeCounter", int, "%d" +entry = auxLinear1, "Aux linear #1", float, "%.3f" +entry = auxLinear2, "Aux linear #2", float, "%.3f" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "CAN: Tx OK", int, "%d" +entry = canWriteNotOk, "CAN: Tx err", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = triggerVvt2Fall, "triggerVvt2Fall", int, "%d" +entry = triggerVvt2Rise, "triggerVvt2Rise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "Ign: Multispark count", int, "%d" +entry = extiOverflowCount, "extiOverflowCount", int, "%d" +entry = alternatorStatus_pTerm, "alternatorStatus_pTerm", float, "%.3f" +entry = alternatorStatus_iTerm, "alternatorStatus_iTerm", float, "%.3f" +entry = alternatorStatus_dTerm, "alternatorStatus_dTerm", float, "%.3f" +entry = alternatorStatus_output, "alternatorStatus_output", float, "%.3f" +entry = alternatorStatus_error, "alternatorStatus_error", float, "%.3f" +entry = alternatorStatus_resetCounter, "alternatorStatus_resetCounter", int, "%d" +entry = idleStatus_pTerm, "idleStatus_pTerm", float, "%.3f" +entry = idleStatus_iTerm, "idleStatus_iTerm", float, "%.3f" +entry = idleStatus_dTerm, "idleStatus_dTerm", float, "%.3f" +entry = idleStatus_output, "idleStatus_output", float, "%.3f" +entry = idleStatus_error, "idleStatus_error", float, "%.3f" +entry = idleStatus_resetCounter, "idleStatus_resetCounter", int, "%d" +entry = etbStatus_pTerm, "etbStatus_pTerm", float, "%.3f" +entry = etbStatus_iTerm, "etbStatus_iTerm", float, "%.3f" +entry = etbStatus_dTerm, "etbStatus_dTerm", float, "%.3f" +entry = etbStatus_output, "etbStatus_output", float, "%.3f" +entry = etbStatus_error, "etbStatus_error", float, "%.3f" +entry = etbStatus_resetCounter, "etbStatus_resetCounter", int, "%d" +entry = boostStatus_pTerm, "boostStatus_pTerm", float, "%.3f" +entry = boostStatus_iTerm, "boostStatus_iTerm", float, "%.3f" +entry = boostStatus_dTerm, "boostStatus_dTerm", float, "%.3f" +entry = boostStatus_output, "boostStatus_output", float, "%.3f" +entry = boostStatus_error, "boostStatus_error", float, "%.3f" +entry = boostStatus_resetCounter, "boostStatus_resetCounter", int, "%d" +entry = wastegateDcStatus_pTerm, "wastegateDcStatus_pTerm", float, "%.3f" +entry = wastegateDcStatus_iTerm, "wastegateDcStatus_iTerm", float, "%.3f" +entry = wastegateDcStatus_dTerm, "wastegateDcStatus_dTerm", float, "%.3f" +entry = wastegateDcStatus_output, "wastegateDcStatus_output", float, "%.3f" +entry = wastegateDcStatus_error, "wastegateDcStatus_error", float, "%.3f" +entry = wastegateDcStatus_resetCounter, "wastegateDcStatus_resetCounter", int, "%d" +entry = vvtStatus1_pTerm, "vvtStatus1_pTerm", float, "%.3f" +entry = vvtStatus1_iTerm, "vvtStatus1_iTerm", float, "%.3f" +entry = vvtStatus1_dTerm, "vvtStatus1_dTerm", float, "%.3f" +entry = vvtStatus1_output, "vvtStatus1_output", float, "%.3f" +entry = vvtStatus1_error, "vvtStatus1_error", float, "%.3f" +entry = vvtStatus1_resetCounter, "vvtStatus1_resetCounter", int, "%d" +entry = vvtStatus2_pTerm, "vvtStatus2_pTerm", float, "%.3f" +entry = vvtStatus2_iTerm, "vvtStatus2_iTerm", float, "%.3f" +entry = vvtStatus2_dTerm, "vvtStatus2_dTerm", float, "%.3f" +entry = vvtStatus2_output, "vvtStatus2_output", float, "%.3f" +entry = vvtStatus2_error, "vvtStatus2_error", float, "%.3f" +entry = vvtStatus2_resetCounter, "vvtStatus2_resetCounter", int, "%d" +entry = vvtStatus3_pTerm, "vvtStatus3_pTerm", float, "%.3f" +entry = vvtStatus3_iTerm, "vvtStatus3_iTerm", float, "%.3f" +entry = vvtStatus3_dTerm, "vvtStatus3_dTerm", float, "%.3f" +entry = vvtStatus3_output, "vvtStatus3_output", float, "%.3f" +entry = vvtStatus3_error, "vvtStatus3_error", float, "%.3f" +entry = vvtStatus3_resetCounter, "vvtStatus3_resetCounter", int, "%d" +entry = vvtStatus4_pTerm, "vvtStatus4_pTerm", float, "%.3f" +entry = vvtStatus4_iTerm, "vvtStatus4_iTerm", float, "%.3f" +entry = vvtStatus4_dTerm, "vvtStatus4_dTerm", float, "%.3f" +entry = vvtStatus4_output, "vvtStatus4_output", float, "%.3f" +entry = vvtStatus4_error, "vvtStatus4_error", float, "%.3f" +entry = vvtStatus4_resetCounter, "vvtStatus4_resetCounter", int, "%d" +entry = auxSpeed1, "Aux speed 1", int, "%d" +entry = auxSpeed2, "Aux speed 2", int, "%d" +entry = ISSValue, "TCU: Input Shaft Speed", int, "%d" +entry = rawAnalogInput1, "rawAnalogInput 1", float, "%.3f" +entry = rawAnalogInput2, "rawAnalogInput 2", float, "%.3f" +entry = rawAnalogInput3, "rawAnalogInput 3", float, "%.3f" +entry = rawAnalogInput4, "rawAnalogInput 4", float, "%.3f" +entry = rawAnalogInput5, "rawAnalogInput 5", float, "%.3f" +entry = rawAnalogInput6, "rawAnalogInput 6", float, "%.3f" +entry = rawAnalogInput7, "rawAnalogInput 7", float, "%.3f" +entry = rawAnalogInput8, "rawAnalogInput 8", float, "%.3f" +entry = gppwmOutput1, "GPPWM Output 1", float, "%.3f" +entry = gppwmOutput2, "GPPWM Output 2", float, "%.3f" +entry = gppwmOutput3, "GPPWM Output 3", float, "%.3f" +entry = gppwmOutput4, "GPPWM Output 4", float, "%.3f" +entry = gppwmXAxis1, "gppwmXAxis 1", int, "%d" +entry = gppwmXAxis2, "gppwmXAxis 2", int, "%d" +entry = gppwmXAxis3, "gppwmXAxis 3", int, "%d" +entry = gppwmXAxis4, "gppwmXAxis 4", int, "%d" +entry = gppwmYAxis1, "gppwmYAxis 1", float, "%.3f" +entry = gppwmYAxis2, "gppwmYAxis 2", float, "%.3f" +entry = gppwmYAxis3, "gppwmYAxis 3", float, "%.3f" +entry = gppwmYAxis4, "gppwmYAxis 4", float, "%.3f" +entry = rawBattery, "rawBattery", float, "%.3f" +entry = ignBlendParameter1, "ignBlendParameter 1", float, "%.3f" +entry = ignBlendParameter2, "ignBlendParameter 2", float, "%.3f" +entry = ignBlendParameter3, "ignBlendParameter 3", float, "%.3f" +entry = ignBlendParameter4, "ignBlendParameter 4", float, "%.3f" +entry = ignBlendBias1, "ignBlendBias 1", float, "%.3f" +entry = ignBlendBias2, "ignBlendBias 2", float, "%.3f" +entry = ignBlendBias3, "ignBlendBias 3", float, "%.3f" +entry = ignBlendBias4, "ignBlendBias 4", float, "%.3f" +entry = ignBlendOutput1, "ignBlendOutput 1", float, "%.3f" +entry = ignBlendOutput2, "ignBlendOutput 2", float, "%.3f" +entry = ignBlendOutput3, "ignBlendOutput 3", float, "%.3f" +entry = ignBlendOutput4, "ignBlendOutput 4", float, "%.3f" +entry = veBlendParameter1, "veBlendParameter 1", float, "%.3f" +entry = veBlendParameter2, "veBlendParameter 2", float, "%.3f" +entry = veBlendParameter3, "veBlendParameter 3", float, "%.3f" +entry = veBlendParameter4, "veBlendParameter 4", float, "%.3f" +entry = veBlendBias1, "veBlendBias 1", float, "%.3f" +entry = veBlendBias2, "veBlendBias 2", float, "%.3f" +entry = veBlendBias3, "veBlendBias 3", float, "%.3f" +entry = veBlendBias4, "veBlendBias 4", float, "%.3f" +entry = veBlendOutput1, "veBlendOutput 1", float, "%.3f" +entry = veBlendOutput2, "veBlendOutput 2", float, "%.3f" +entry = veBlendOutput3, "veBlendOutput 3", float, "%.3f" +entry = veBlendOutput4, "veBlendOutput 4", float, "%.3f" +entry = boostOpenLoopBlendParameter1, "boostOpenLoopBlendParameter 1", float, "%.3f" +entry = boostOpenLoopBlendParameter2, "boostOpenLoopBlendParameter 2", float, "%.3f" +entry = boostOpenLoopBlendBias1, "boostOpenLoopBlendBias 1", float, "%.3f" +entry = boostOpenLoopBlendBias2, "boostOpenLoopBlendBias 2", float, "%.3f" +entry = boostOpenLoopBlendOutput1, "boostOpenLoopBlendOutput 1", int, "%d" +entry = boostOpenLoopBlendOutput2, "boostOpenLoopBlendOutput 2", int, "%d" +entry = boostClosedLoopBlendParameter1, "boostClosedLoopBlendParameter 1", float, "%.3f" +entry = boostClosedLoopBlendParameter2, "boostClosedLoopBlendParameter 2", float, "%.3f" +entry = boostClosedLoopBlendBias1, "boostClosedLoopBlendBias 1", float, "%.3f" +entry = boostClosedLoopBlendBias2, "boostClosedLoopBlendBias 2", float, "%.3f" +entry = boostClosedLoopBlendOutput1, "boostClosedLoopBlendOutput 1", float, "%.3f" +entry = boostClosedLoopBlendOutput2, "boostClosedLoopBlendOutput 2", float, "%.3f" +entry = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = triggerChannel1, "triggerChannel1", int, "%d" +entry = triggerChannel2, "triggerChannel2", int, "%d" +entry = vvtChannel1, "bank 1 intake cam input", int, "%d" +entry = vvtChannel2, "bank 1 exhaust cam input", int, "%d" +entry = vvtChannel3, "bank 2 intake cam input", int, "%d" +entry = vvtChannel4, "bank 2 exhaust cam input", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "Lua: Gauge 1", float, "%.3f" +entry = luaGauges2, "Lua: Gauge 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = vehicleSpeedKph, "Vehicle Speed", float, "%.3f" +entry = Gego, "Gego", float, "%.3f" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = oilTemp, "oilTemp", float, "%.3f" +entry = fuelTemp, "fuelTemp", float, "%.3f" +entry = ambientTemp, "ambientTemp", float, "%.3f" +entry = compressorDischargeTemp, "compressorDischargeTemp", float, "%.3f" +entry = compressorDischargePressure, "compressorDischargePressure", float, "%.3f" +entry = throttleInletPressure, "throttleInletPressure", float, "%.3f" +entry = ignitionOnTime, "ignitionOnTime", int, "%d" +entry = engineRunTime, "engineRunTime", int, "%d" +entry = distanceTraveled, "distanceTraveled", float, "%.3f" +entry = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", float, "%.3f" +entry = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", float, "%.3f" +entry = wheelSlipRatio, "wheelSlipRatio", float, "%.3f" +entry = ignitorDiagnostic1, "ignitorDiagnostic 1", int, "%d" +entry = ignitorDiagnostic2, "ignitorDiagnostic 2", int, "%d" +entry = ignitorDiagnostic3, "ignitorDiagnostic 3", int, "%d" +entry = ignitorDiagnostic4, "ignitorDiagnostic 4", int, "%d" +entry = ignitorDiagnostic5, "ignitorDiagnostic 5", int, "%d" +entry = ignitorDiagnostic6, "ignitorDiagnostic 6", int, "%d" +entry = ignitorDiagnostic7, "ignitorDiagnostic 7", int, "%d" +entry = ignitorDiagnostic8, "ignitorDiagnostic 8", int, "%d" +entry = ignitorDiagnostic9, "ignitorDiagnostic 9", int, "%d" +entry = ignitorDiagnostic10, "ignitorDiagnostic 10", int, "%d" +entry = ignitorDiagnostic11, "ignitorDiagnostic 11", int, "%d" +entry = ignitorDiagnostic12, "ignitorDiagnostic 12", int, "%d" +entry = injectorDiagnostic1, "injectorDiagnostic 1", int, "%d" +entry = injectorDiagnostic2, "injectorDiagnostic 2", int, "%d" +entry = injectorDiagnostic3, "injectorDiagnostic 3", int, "%d" +entry = injectorDiagnostic4, "injectorDiagnostic 4", int, "%d" +entry = injectorDiagnostic5, "injectorDiagnostic 5", int, "%d" +entry = injectorDiagnostic6, "injectorDiagnostic 6", int, "%d" +entry = injectorDiagnostic7, "injectorDiagnostic 7", int, "%d" +entry = injectorDiagnostic8, "injectorDiagnostic 8", int, "%d" +entry = injectorDiagnostic9, "injectorDiagnostic 9", int, "%d" +entry = injectorDiagnostic10, "injectorDiagnostic 10", int, "%d" +entry = injectorDiagnostic11, "injectorDiagnostic 11", int, "%d" +entry = injectorDiagnostic12, "injectorDiagnostic 12", int, "%d" +entry = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", float, "%.3f" +entry = injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2", float, "%.3f" +entry = totalFuelCorrection, "Fuel: Total correction", float, "%.3f" +entry = running_postCrankingFuelCorrection, "Fuel: Post cranking mult", float, "%.3f" +entry = running_intakeTemperatureCoefficient, "Fuel: IAT correction", float, "%.3f" +entry = running_coolantTemperatureCoefficient, "Fuel: CLT correction", float, "%.3f" +entry = running_timeSinceCrankingInSecs, "running_timeSinceCrankingInSecs", float, "%.3f" +entry = running_baseFuel, "Fuel: base cycle mass", float, "%.3f" +entry = running_fuel, "Fuel: running", float, "%.3f" +entry = afrTableYAxis, "afrTableYAxis", float, "%.3f" +entry = targetLambda, "Fuel: target lambda", float, "%.3f" +entry = targetAFR, "Fuel: target AFR", float, "%.3f" +entry = stoichiometricRatio, "Fuel: Stoich ratio", float, "%.3f" +entry = sdTcharge_coff, "sdTcharge_coff", float, "%.3f" +entry = sdAirMassInOneCylinder, "Air: Cylinder airmass", float, "%.3f" +entry = normalizedCylinderFilling, "Air: Normalized cyl filling", float, "%.3f" +entry = brokenInjector, "brokenInjector", int, "%d" +entry = idealEngineTorque, "idealEngineTorque", int, "%d" +entry = injectorHwIssue, "injectorHwIssue", int, "%d" +entry = baseDwell, "Ignition: base dwell", float, "%.3f" +entry = sparkDwell, "Ignition: coil charge time", float, "%.3f" +entry = dwellDurationAngle, "Ignition: dwell duration", float, "%.3f" +entry = cltTimingCorrection, "Ign: CLT correction", float, "%.3f" +entry = timingIatCorrection, "Ign: IAT correction", float, "%.3f" +entry = timingPidCorrection, "Idle: Timing adjustment", float, "%.3f" +entry = baseIgnitionAdvance, "Ignition: Timing", float, "%.3f" +entry = correctedIgnitionAdvance, "Timing: ignition", float, "%.3f" +entry = tractionAdvanceDrop, "Traction: timing correction", float, "%.3f" +entry = dwellVoltageCorrection, "Ign: Dwell voltage correction", float, "%.3f" +entry = luaTimingAdd, "Ign: Lua timing add", float, "%.3f" +entry = luaTimingMult, "Ign: Lua timing mult", float, "%.3f" +entry = luaIgnitionSkip, "Ign: Lua Spark Skip", int, "%d" +entry = m_knockLevel, "Knock: Current level", float, "%.3f" +entry = m_knockCyl1, "Knock: Cyl 1", int, "%d" +entry = m_knockCyl2, "Knock: Cyl 2", int, "%d" +entry = m_knockCyl3, "Knock: Cyl 3", int, "%d" +entry = m_knockCyl4, "Knock: Cyl 4", int, "%d" +entry = m_knockCyl5, "Knock: Cyl 5", int, "%d" +entry = m_knockCyl6, "Knock: Cyl 6", int, "%d" +entry = m_knockCyl7, "Knock: Cyl 7", int, "%d" +entry = m_knockCyl8, "Knock: Cyl 8", int, "%d" +entry = m_knockCyl9, "Knock: Cyl 9", int, "%d" +entry = m_knockCyl10, "Knock: Cyl 10", int, "%d" +entry = m_knockCyl11, "Knock: Cyl 11", int, "%d" +entry = m_knockCyl12, "Knock: Cyl 12", int, "%d" +entry = m_knockRetard, "Knock: Retard", float, "%.3f" +entry = m_knockThreshold, "Knock: Threshold", float, "%.3f" +entry = m_knockCount, "Knock: Count", int, "%d" +entry = m_maximumRetard, "Knock: Max retard", float, "%.3f" +entry = tcuCurrentGear, "Current Gear", int, "%d" +entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f" +entry = lastShiftTime, "lastShiftTime", float, "%.3f" +entry = tcu_currentRange, "TCU: Current Range", int, "%d" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = m_requested_pump, "GDI: HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "GDI: requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "GDI: percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = m_pressureTarget_kPa, "GDI: target pressure", float, "%.3f" +entry = nextLobe, "GDI: nextLobe", float, "%.3f" +entry = di_nextStart, "GDI: next start", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "Fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "Fuel: Injector pressure ratio", float, "%.3f" +entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" +entry = combinedConditions, "combinedConditions", int, "%d" +entry = launchActivatePinState, "launchActivatePinState", int, "%d" +entry = isLaunchPreCondition, "isLaunchPreCondition", int, "%d" +entry = isLaunchCondition, "isLaunchCondition", int, "%d" +entry = isSwitchActivated, "isSwitchActivated", int, "%d" +entry = isClutchActivated, "isClutchActivated", int, "%d" +entry = isValidInputPin, "isValidInputPin", int, "%d" +entry = activateSwitchCondition, "activateSwitchCondition", int, "%d" +entry = rpmCondition, "rpmCondition", int, "%d" +entry = speedCondition, "speedCondition", int, "%d" +entry = tpsCondition, "tpsCondition", int, "%d" +entry = isAntilagCondition, "isAntilagCondition", int, "%d" +entry = ALSMinRPMCondition, "ALSMinRPMCondition", int, "%d" +entry = ALSMaxRPMCondition, "ALSMaxRPMCondition", int, "%d" +entry = ALSMinCLTCondition, "ALSMinCLTCondition", int, "%d" +entry = ALSMaxCLTCondition, "ALSMaxCLTCondition", int, "%d" +entry = ALSMaxThrottleIntentCondition, "ALSMaxThrottleIntentCondition", int, "%d" +entry = isALSSwitchActivated, "isALSSwitchActivated", int, "%d" +entry = ALSActivatePinState, "ALSActivatePinState", int, "%d" +entry = ALSSwitchCondition, "ALSSwitchCondition", int, "%d" +entry = ALSTimerCondition, "ALSTimerCondition", int, "%d" +entry = fuelALSCorrection, "fuelALSCorrection", float, "%.3f" +entry = timingALSCorrection, "timingALSCorrection", float, "%.3f" +entry = timingALSSkip, "timingALSSkip", float, "%.3f" +entry = isTpsInvalid, "isTpsInvalid", int, "%d" +entry = m_shouldResetPid, "m_shouldResetPid", int, "%d" +entry = isBelowClosedLoopThreshold, "isBelowClosedLoopThreshold", int, "%d" +entry = isNotClosedLoop, "isNotClosedLoop", int, "%d" +entry = isZeroRpm, "isZeroRpm", int, "%d" +entry = hasInitBoost, "hasInitBoost", int, "%d" +entry = rpmTooLow, "rpmTooLow", int, "%d" +entry = tpsTooLow, "tpsTooLow", int, "%d" +entry = mapTooLow, "mapTooLow", int, "%d" +entry = isPlantValid, "isPlantValid", int, "%d" +entry = isBoostControlled, "isBoostControlled", int, "%d" +entry = luaTargetAdd, "Boost: Lua target add", float, "%.3f" +entry = boostOutput, "Boost: Output", float, "%.3f" +entry = luaTargetMult, "Boost: Lua target mult", float, "%.3f" +entry = openLoopPart, "Boost: Open loop", float, "%.3f" +entry = luaOpenLoopAdd, "Boost: Lua open loop add", float, "%.3f" +entry = boostControllerClosedLoopPart, "Boost: Closed loop", float, "%.3f" +entry = boostControlTarget, "Boost: Target", float, "%.3f" +entry = acButtonState, "AC switch", int, "%d" +entry = m_acEnabled, "AC enabled", int, "%d" +entry = engineTooSlow, "AC engine too slow", int, "%d" +entry = engineTooFast, "AC engine too fast", int, "%d" +entry = noClt, "AC no CLT", int, "%d" +entry = engineTooHot, "AC engine too hot", int, "%d" +entry = tpsTooHigh, "AC tps too high", int, "%d" +entry = isDisabledByLua, "AC disabled by Lua", int, "%d" +entry = acCompressorState, "AC compressor on", int, "%d" +entry = latest_usage_ac_control, "AC latest activity", int, "%d" +entry = acSwitchLastChangeTimeMs, "acSwitchLastChangeTimeMs", int, "%d" +entry = cranking0, "cranking0", int, "%d" +entry = notRunning0, "notRunning0", int, "%d" +entry = disabledWhileEngineStopped0, "disabledWhileEngineStopped0", int, "%d" +entry = brokenClt0, "brokenClt0", int, "%d" +entry = enabledForAc0, "enabledForAc0", int, "%d" +entry = hot0, "hot0", int, "%d" +entry = cold0, "cold0", int, "%d" +entry = disabledBySpeed0, "disabledBySpeed0", int, "%d" +;entry = cranking1, "cranking1", int, "%d" +;entry = notRunning1, "notRunning1", int, "%d" +;entry = disabledWhileEngineStopped1, "disabledWhileEngineStopped1", int, "%d" +;entry = brokenClt1, "brokenClt1", int, "%d" +;entry = enabledForAc1, "enabledForAc1", int, "%d" +;entry = hot1, "hot1", int, "%d" +;entry = cold1, "cold1", int, "%d" +;entry = disabledBySpeed1, "disabledBySpeed1", int, "%d" +entry = isPrime, "isPrime", int, "%d" +entry = engineTurnedRecently, "engineTurnedRecently", int, "%d" +entry = isFuelPumpOn, "isFuelPumpOn", int, "%d" +entry = ignitionOn, "ignitionOn", int, "%d" +entry = isBenchTest, "isBenchTest", int, "%d" +entry = hasIgnitionVoltage, "hasIgnitionVoltage", int, "%d" +entry = mainRelayState, "mainRelayState", int, "%d" +entry = delayedShutoffRequested, "delayedShutoffRequested", int, "%d" +entry = lua_fuelAdd, "Lua: Fuel add", float, "%.3f" +entry = lua_fuelMult, "Lua: Fuel mult", float, "%.3f" +entry = lua_clutchUpState, "lua_clutchUpState", int, "%d" +entry = lua_brakePedalState, "lua_brakePedalState", int, "%d" +entry = lua_acRequestState, "lua_acRequestState", int, "%d" +entry = lua_luaDisableEtb, "lua_luaDisableEtb", int, "%d" +entry = lua_luaIgnCut, "lua_luaIgnCut", int, "%d" +entry = sd_tCharge, "Air: Charge temperature estimate", float, "%.3f" +entry = sd_tChargeK, "Air: Charge temperature estimate K", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Fuel: cranking CLT mult", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "Fuel: cranking TPS mult", float, "%.3f" +entry = crankingFuel_durationCoefficient, "Fuel: cranking duration mult", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Cranking cycle mass", float, "%.3f" +entry = baroCorrection, "Fuel: Barometric pressure mult", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "Clutch: up", int, "%d" +entry = clutchDownState, "Clutch: down", int, "%d" +entry = brakePedalState, "Brake switch", int, "%d" +entry = startStopState, "startStopState", int, "%d" +entry = smartChipState, "smartChipState", int, "%d" +entry = smartChipRestartCounter, "smartChipRestartCounter", int, "%d" +entry = smartChipAliveCounter, "smartChipAliveCounter", int, "%d" +entry = startStopPhysicalState, "startStopPhysicalState", int, "%d" +entry = acrActive, "Harley ACR Active", int, "%d" +entry = acrEngineMovedRecently, "acrEngineMovedRecently", int, "%d" +entry = heaterControlEnabled, "heaterControlEnabled", int, "%d" +entry = luaDigitalState0, "luaDigitalState0", int, "%d" +entry = luaDigitalState1, "luaDigitalState1", int, "%d" +entry = luaDigitalState2, "luaDigitalState2", int, "%d" +entry = luaDigitalState3, "luaDigitalState3", int, "%d" +entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d" +entry = egtValue1, "egtValue1", float, "%.3f" +entry = egtValue2, "egtValue2", float, "%.3f" +entry = luaSoftSparkSkip, "luaSoftSparkSkip", float, "%.3f" +entry = luaHardSparkSkip, "luaHardSparkSkip", float, "%.3f" +entry = tractionControlSparkSkip, "tractionControlSparkSkip", float, "%.3f" +entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d" +entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d" +entry = globalSparkCounter, "Ign: Spark counter", int, "%d" +entry = fuelingLoad, "Fuel: Load", float, "%.3f" +entry = ignitionLoad, "Ignition: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "Fuel: TPS AE from", float, "%.3f" +entry = tpsTo, "Fuel: TPS AE to", float, "%.3f" +entry = deltaTps, "Fuel: TPS AE change", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "Fuel: TPS AE Active", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Fuel: TPS AE: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Fuel: TPS AE: below threshold", int, "%d" +entry = tooShort, "Fuel: TPS AE: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "Sync: total cams front counter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Sync: Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "Sync: trigger angle error", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = mapCamPrevToothAngle, "Sync: MAP: prev angle", float, "%.3f" +entry = isDecodingMapCam, "isDecodingMapCam", int, "%d" +entry = crankSynchronizationCounter0, "sync: Crank sync counter0", int, "%d" +entry = vvtSyncGapRatio0, "vvtSyncGapRatio0", float, "%.3f" +entry = vvtToothDurations00, "vvtToothDurations00", int, "%d" +entry = vvtCurrentPosition0, "vvtCurrentPosition0", float, "%.3f" +entry = vvtToothPosition10, "vvtToothPosition 10", float, "%.3f" +entry = vvtToothPosition20, "vvtToothPosition 20", float, "%.3f" +entry = vvtToothPosition30, "vvtToothPosition 30", float, "%.3f" +entry = vvtToothPosition40, "vvtToothPosition 40", float, "%.3f" +entry = triggerSyncGapRatio0, "Trigger Sync Latest Ratio0", float, "%.3f" +entry = triggerStateIndex0, "triggerStateIndex0", int, "%d" +entry = vvtStateIndex0, "vvtStateIndex0", int, "%d" +;entry = crankSynchronizationCounter1, "sync: Crank sync counter1", int, "%d" +;entry = vvtSyncGapRatio1, "vvtSyncGapRatio1", float, "%.3f" +;entry = vvtToothDurations01, "vvtToothDurations01", int, "%d" +;entry = vvtCurrentPosition1, "vvtCurrentPosition1", float, "%.3f" +;entry = vvtToothPosition11, "vvtToothPosition 11", float, "%.3f" +;entry = vvtToothPosition21, "vvtToothPosition 21", float, "%.3f" +;entry = vvtToothPosition31, "vvtToothPosition 31", float, "%.3f" +;entry = vvtToothPosition41, "vvtToothPosition 41", float, "%.3f" +;entry = triggerSyncGapRatio1, "Trigger Sync Latest Ratio1", float, "%.3f" +;entry = triggerStateIndex1, "triggerStateIndex1", int, "%d" +;entry = vvtStateIndex1, "vvtStateIndex1", int, "%d" +;entry = crankSynchronizationCounter2, "sync: Crank sync counter2", int, "%d" +;entry = vvtSyncGapRatio2, "vvtSyncGapRatio2", float, "%.3f" +;entry = vvtToothDurations02, "vvtToothDurations02", int, "%d" +;entry = vvtCurrentPosition2, "vvtCurrentPosition2", float, "%.3f" +;entry = vvtToothPosition12, "vvtToothPosition 12", float, "%.3f" +;entry = vvtToothPosition22, "vvtToothPosition 22", float, "%.3f" +;entry = vvtToothPosition32, "vvtToothPosition 32", float, "%.3f" +;entry = vvtToothPosition42, "vvtToothPosition 42", float, "%.3f" +;entry = triggerSyncGapRatio2, "Trigger Sync Latest Ratio2", float, "%.3f" +;entry = triggerStateIndex2, "triggerStateIndex2", int, "%d" +;entry = vvtStateIndex2, "vvtStateIndex2", int, "%d" +;entry = crankSynchronizationCounter3, "sync: Crank sync counter3", int, "%d" +;entry = vvtSyncGapRatio3, "vvtSyncGapRatio3", float, "%.3f" +;entry = vvtToothDurations03, "vvtToothDurations03", int, "%d" +;entry = vvtCurrentPosition3, "vvtCurrentPosition3", float, "%.3f" +;entry = vvtToothPosition13, "vvtToothPosition 13", float, "%.3f" +;entry = vvtToothPosition23, "vvtToothPosition 23", float, "%.3f" +;entry = vvtToothPosition33, "vvtToothPosition 33", float, "%.3f" +;entry = vvtToothPosition43, "vvtToothPosition 43", float, "%.3f" +;entry = triggerSyncGapRatio3, "Trigger Sync Latest Ratio3", float, "%.3f" +;entry = triggerStateIndex3, "triggerStateIndex3", int, "%d" +;entry = vvtStateIndex3, "vvtStateIndex3", int, "%d" +;entry = crankSynchronizationCounter4, "sync: Crank sync counter4", int, "%d" +;entry = vvtSyncGapRatio4, "vvtSyncGapRatio4", float, "%.3f" +;entry = vvtToothDurations04, "vvtToothDurations04", int, "%d" +;entry = vvtCurrentPosition4, "vvtCurrentPosition4", float, "%.3f" +;entry = vvtToothPosition14, "vvtToothPosition 14", float, "%.3f" +;entry = vvtToothPosition24, "vvtToothPosition 24", float, "%.3f" +;entry = vvtToothPosition34, "vvtToothPosition 34", float, "%.3f" +;entry = vvtToothPosition44, "vvtToothPosition 44", float, "%.3f" +;entry = triggerSyncGapRatio4, "Trigger Sync Latest Ratio4", float, "%.3f" +;entry = triggerStateIndex4, "triggerStateIndex4", int, "%d" +;entry = vvtStateIndex4, "vvtStateIndex4", int, "%d" +entry = camResyncCounter, "sync: Phase Re-Sync Counter", int, "%d" +entry = m_hasSynchronizedPhase, "sync: Known Engine Phase", int, "%d" +entry = wallFuelCorrection, "fuel wallwetting injection time", float, "%.3f" +entry = wallFuel, "Fuel on the wall", float, "%.3f" +entry = idleState, "idleState", int, "%d" +entry = currentIdlePosition, "Idle: Position", float, "%.3f" +entry = baseIdlePosition, "idle: base value", float, "%.3f" +entry = idleClosedLoop, "Idle: Closed loop", float, "%.3f" +entry = iacByTpsTaper, "idle: iacByTpsTaper portion", float, "%.3f" +entry = throttlePedalUpState, "idle: throttlePedalUpState", int, "%d" +entry = mightResetPid, "idle: mightResetPid", int, "%d" +entry = shouldResetPid, "Idle: shouldResetPid", int, "%d" +entry = wasResetPid, "Idle: wasResetPid", int, "%d" +entry = mustResetPid, "Idle: mustResetPid", int, "%d" +entry = isCranking, "Idle: cranking", int, "%d" +entry = isIacTableForCoasting, "isIacTableForCoasting", int, "%d" +entry = notIdling, "notIdling", int, "%d" +entry = needReset, "Idle: reset", int, "%d" +entry = isInDeadZone, "Idle: dead zone", int, "%d" +entry = isBlipping, "isBlipping", int, "%d" +entry = useClosedLoop, "useClosedLoop", int, "%d" +entry = badTps, "badTps", int, "%d" +entry = looksLikeRunning, "looksLikeRunning", int, "%d" +entry = looksLikeCoasting, "looksLikeCoasting", int, "%d" +entry = looksLikeCrankToIdle, "looksLikeCrankToIdle", int, "%d" +entry = isIdleCoasting, "Idle: coasting", int, "%d" +entry = isIdleClosedLoop, "Idle: Closed loop active", int, "%d" +entry = idleTarget, "Idle: Target RPM", int, "%d" +entry = targetRpmByClt, "Idle: Target RPM base", int, "%d" +entry = targetRpmAc, "Idle: Target A/C RPM", int, "%d" +entry = iacByRpmTaper, "idle: iacByRpmTaper portion", float, "%.3f" +entry = luaAdd, "idle: Lua Adder", float, "%.3f" +entry = idlePosition0, "ETB: idlePosition0", float, "%.3f" +entry = trim0, "ETB: trim0", float, "%.3f" +entry = luaAdjustment0, "ETB: luaAdjustment0", float, "%.3f" +entry = m_wastegatePosition0, "DC: wastegatePosition0", float, "%.3f" +entry = etbFeedForward0, "etbFeedForward0", float, "%.3f" +entry = etbIntegralError0, "etbIntegralError0", float, "%.3f" +entry = etbCurrentTarget0, "etbCurrentTarget0", float, "%.3f" +entry = etbCurrentAdjustedTarget0, "etbCurrentAdjustedTarget0", float, "%.3f" +entry = etbRevLimitActive0, "etbRevLimitActive0", int, "%d" +entry = jamDetected0, "jamDetected0", int, "%d" +entry = etbDutyRateOfChange0, "ETB duty rate of change0", float, "%.3f" +entry = etbDutyAverage0, "ETB average duty0", float, "%.3f" +entry = etbTpsErrorCounter0, "ETB TPS error counter0", int, "%d" +entry = etbPpsErrorCounter0, "ETB pedal error counter0", int, "%d" +entry = etbErrorCode0, "etbErrorCode0", int, "%d" +entry = tcEtbDrop0, "tcEtbDrop0", int, "%d" +entry = jamTimer0, "ETB jam timer0", float, "%.3f" +;entry = idlePosition1, "ETB: idlePosition1", float, "%.3f" +;entry = trim1, "ETB: trim1", float, "%.3f" +;entry = luaAdjustment1, "ETB: luaAdjustment1", float, "%.3f" +;entry = m_wastegatePosition1, "DC: wastegatePosition1", float, "%.3f" +;entry = etbFeedForward1, "etbFeedForward1", float, "%.3f" +;entry = etbIntegralError1, "etbIntegralError1", float, "%.3f" +;entry = etbCurrentTarget1, "etbCurrentTarget1", float, "%.3f" +;entry = etbCurrentAdjustedTarget1, "etbCurrentAdjustedTarget1", float, "%.3f" +;entry = etbRevLimitActive1, "etbRevLimitActive1", int, "%d" +;entry = jamDetected1, "jamDetected1", int, "%d" +;entry = etbDutyRateOfChange1, "ETB duty rate of change1", float, "%.3f" +;entry = etbDutyAverage1, "ETB average duty1", float, "%.3f" +;entry = etbTpsErrorCounter1, "ETB TPS error counter1", int, "%d" +;entry = etbPpsErrorCounter1, "ETB pedal error counter1", int, "%d" +;entry = etbErrorCode1, "etbErrorCode1", int, "%d" +;entry = tcEtbDrop1, "tcEtbDrop1", int, "%d" +;entry = jamTimer1, "ETB jam timer1", float, "%.3f" +entry = faultCode0, "WBO: Fault code0", int, "%d" +entry = heaterDuty0, "WBO: Heater duty0", int, "%d" +entry = pumpDuty0, "WBO: Pump duty0", int, "%d" +entry = tempC0, "WBO: Temperature0", int, "%d" +entry = nernstVoltage0, "WBO: Nernst Voltage0", float, "%.3f" +entry = esr0, "WBO: ESR0", int, "%d" +;entry = faultCode1, "WBO: Fault code1", int, "%d" +;entry = heaterDuty1, "WBO: Heater duty1", int, "%d" +;entry = pumpDuty1, "WBO: Pump duty1", int, "%d" +;entry = tempC1, "WBO: Temperature1", int, "%d" +;entry = nernstVoltage1, "WBO: Nernst Voltage1", float, "%.3f" +;entry = esr1, "WBO: ESR1", int, "%d" +entry = dcOutput0, "DC: output0", float, "%.3f" +entry = isEnabled0_int, "DC: en0", int, "%d" +entry = isEnabled0, "isEnabled0", int, "%d" +entry = value0, "ETB: SENT value0", int, "%d" +entry = value1, "ETB: SENT value1", int, "%d" +entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" +entry = lambdaCurrentlyGood, "lambdaCurrentlyGood", int, "%d" +entry = lambdaMonitorCut, "lambdaMonitorCut", int, "%d" +entry = lambdaTimeSinceGood, "lambdaTimeSinceGood", float, "%.3f" + + +[Menu] + +menuDialog = main +; see #1653 +; menu = "Data Logging" +; subMenu = std_ms3SdConsole, "Browse / Import SD Card" + + menu = "&Base &Engine" + subMenu = engineChars, "Base engine" + subMenu = limitsAndFallback, "Limits and fallbacks" + subMenu = triggerConfiguration, "Trigger" + subMenu = trigger_advanced, "Advanced Trigger" + subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = std_separator + subMenu = energySystems, "Battery and alternator" + subMenu = std_separator + + # Digital outputs + subMenu = outputsDialog, "Outputs" + subMenu = acSettings, "Air Conditioning" + subMenu = statusLeds, "Status LEDs" + + menu = "Fuel" + # basic + subMenu = injectorConfig, "Injection configuration" + subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} + + subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} + subMenu = stagedInjectionOutputs, "Staged injection outputs", 0, {isInjectionEnabled && enableStagedInjection} + subMenu = stagedInjectionTbl, "Staged injection % table", 0, {isInjectionEnabled && enableStagedInjection} + + groupMenu = "Cylinder fuel trims" + groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" + groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2" + groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3" + groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4" + groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5" + groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6" + groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7" + groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8" + groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9" + groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10" + groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11" + groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12" + + subMenu = std_separator + + # Air mass model + subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} + subMenu = veTableMap, "VE Table", 0, {isInjectionEnabled} + + groupMenu = "VE blend tables" + groupChildMenu = veBlend1Cfg, "VE blend 1 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend1Table, "VE blend table 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 } + groupChildMenu = veBlend2Cfg, "VE blend 2 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend2Table, "VE blend table 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 } + groupChildMenu = veBlend3Cfg, "VE blend 3 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend3Table, "VE blend table 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 } + groupChildMenu = veBlend4Cfg, "VE blend 4 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend4Table, "VE blend table 4", 0, { isInjectionEnabled && veBlends4_blendParameter != 0 } + + subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} + subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == 0} + subMenu = mapEstimateTableTbl, "MAP estimate table" + subMenu = std_separator + + # Fuel model +#if LAMBDA + subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} +#else + subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} +#endif + subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} + subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} + subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} + subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Injector model + subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Accel enrichment + subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} + subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} + subMenu = tpsTspRpmCorrection, "TPS/TPS extra fuelRPM correction", 0, {isInjectionEnabled == 1} + + groupMenu = "Wall wetting AE" + groupChildMenu = wwTauCurves, "Evap time", 0, { complexWallModel != 0 } + groupChildMenu = wwBetaCurves, "Impact fraction", 0, { complexWallModel != 0 } + + menu = "Ignition" + subMenu = ignitionSettings, "Ignition settings" + subMenu = std_separator + + subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = ignitionTableMap, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = cltTimingCorrCurve, "Ign CLT correction", 0, {isIgnitionEnabled == 1} + subMenu = ignitionIatCorrTableTbl, "Ign IAT correction", 0, {isIgnitionEnabled == 1} + subMenu = std_separator + + subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} + groupMenu = "Ignition blend tables" + groupChildMenu = ignAdder1Cfg, "Ignition blend 1 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder1Table, "Ignition blend table 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 } + groupChildMenu = ignAdder2Cfg, "Ignition blend 2 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder2Table, "Ignition blend table 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 } + groupChildMenu = ignAdder3Cfg, "Ignition blend 3 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder3Table, "Ignition blend table 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 } + groupChildMenu = ignAdder4Cfg, "Ignition blend 4 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder4Table, "Ignition blend table 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 } + groupMenu = "Cylinder ign trims" + groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1" + groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2" + groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3" + groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4" + groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5" + groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6" + groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7" + groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8" + groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9" + groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10" + groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11" + groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12" + subMenu = std_separator + + subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + + menu = "&Cranking" + subMenu = crankingDialog, "Cranking settings" + subMenu = postCrankingEnrichmentTbl,"After-start enrichment" + subMenu = primingFuelPulsePanel, "Priming pulse" + subMenu = std_separator + + subMenu = crankingCltCurve, "Fuel CLT multiplier" + subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != 0 && flexCranking } + subMenu = crankingDurationCurve, "Fuel duration multiplier" + subMenu = crankingTpsCurve, "Fuel TPS multiplier" + subMenu = std_separator + + subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1} + subMenu = std_separator + + subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1} + + menu = "&Idle" + subMenu = idleSettings, "Idle settings" + subMenu = idlehw, "Idle hardware" + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" + subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting == 1} + subMenu = std_separator + subMenu = idleVeTableTbl, "Idle VE", 0, {useSeparateVeForIdle == 1} + subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} + + menu = "&Advanced" + subMenu = smLaunchControl, "Launch Control" + subMenu = ignitionCylExtra, "Cylinder offsets", 0 + + subMenu = std_separator + subMenu = boostDialog, "Boost control" + subMenu = boostOpenLoopDialog, "Boost control open loop", { isBoostControlEnabled } + subMenu = boostOpenLoopGearAdderDialog, "Boost control open loop gear adder", { isBoostControlEnabled } + subMenu = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + + groupMenu = "Boost blend tables" + groupChildMenu = boostOpenBlend1Cfg, "Open loop 1 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend1Table, "Open loop 1 adder", { isBoostControlEnabled && boostOpenLoopBlends1_blendParameter != 0 } + groupChildMenu = boostOpenBlend2Cfg, "Open loop 2 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend2Table, "Open loop 2 adder", { isBoostControlEnabled && boostOpenLoopBlends2_blendParameter != 0 } + groupChildMenu = boostClosedBlend1Cfg, "Closed loop 1 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 1 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends1_blendParameter != 0 } + groupChildMenu = boostClosedBlend2Cfg, "Closed loop 2 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 2 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends2_blendParameter != 0 } + + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 4 || etbFunctions2 == 4 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 && vvtPins1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 && vvtPins2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + + subMenu = std_separator + subMenu = tcuControls, "Transmission Settings (alpha)" + subMenu = gearControls, "Gear Selection Settings (alpha)" + subMenu = inputSpeedSensor, "Input Speed Sensor (alpha)" + subMenu = tcuSolenoidTableTbl, "Shift Solenoids (alpha)" + subMenu = tccCurves, "TCC Lock/Unlock Speed (alpha)" + subMenu = pcPerGearDialog, "Line Pressure Per Gear (alpha)" + subMenu = pcPerShiftDialog, "Line Pressure Per Shift (alpha)" + subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed (alpha)" + subMenu = rangeMatrixDialog, "Range Selector Input Matrix (alpha)" + + 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 = speedSensor, "Vehicle speed sensor" + subMenu = oilPressureSensor, "Oil pressure" + subMenu = oilTempSensor, "Oil temp sensor" + subMenu = fuelPressureSensor, "Fuel pressure" + subMenu = fuelTempSensor, "Fuel temp sensor" + subMenu = fuelLevelDialog, "Fuel level sensor" + subMenu = ambientTempSensor, "Ambient temp sensor" + subMenu = compressorDischargeTemperature, "Compressor discharge temp" + subMenu = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = spiBuses, "SPI Buses" + subMenu = spiDevices, "SPI Devices" + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = std_separator + + subMenu = std_separator + + subMenu = allPins1, "Full pinout 1/3" + subMenu = allPins2, "Full pinout 2/3" + subMenu = allPins3_1_and_2 "Full pinout 3/3" + 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 = tractionEtbTableTbl, "Traction Control ETB Drop" + subMenu = tractionTimingTableTbl, "Traction Control Timing Adjustment" + subMenu = tractionIgnitionSkipDialog, "Traction Control Skip Ignition" + subMenu = std_separator + + + ; TODO: move lambdaProtection to the fuel menu once ready + ; https://github.com/FOME-Tech/fome-fw/issues/75 + subMenu = lambdaProtection, "Lambda Protection", 0, { isInjectionEnabled } + subMenu = std_separator + + subMenu = kLineDialog, "K-Line" + subMenu = parkingLot, "Experimental/Broken" + subMenu = parkingLot2, "Experimental 2" + subMenu = harleyAcr, "HD" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + subMenu = throttleEffectiveArea, "Throttle effective area" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = tcu_controllerDialog, "tcu_controller" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_control0Dialog, "fan_control0" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_state0Dialog, "trigger_state0" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttle0Dialog, "electronic_throttle0" + subMenu = wideband_state0Dialog, "wideband_state0" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + subMenu = vvtDialog, "vvt" + subMenu = lambda_monitorDialog, "lambda_monitor" + + + +[ControllerCommands] +; commandName = command1, command2, commandn... +; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. +; This does not include any resultant protocol envelope data, only the response data itself. + +; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands +; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition +; and may create error messages. +; It is expected that these commands would not typically alter any ram mapped to a Constant. + +; +; see TS_IO_TEST_COMMAND in firmware code +; + +cmd_test_spk1 = "Z\x00\x12\x00\x01" +cmd_test_spk2 = "Z\x00\x12\x00\x02" +cmd_test_spk3 = "Z\x00\x12\x00\x03" +cmd_test_spk4 = "Z\x00\x12\x00\x04" +cmd_test_spk5 = "Z\x00\x12\x00\x05" +cmd_test_spk6 = "Z\x00\x12\x00\x06" +cmd_test_spk7 = "Z\x00\x12\x00\x07" +cmd_test_spk8 = "Z\x00\x12\x00\x08" +cmd_test_spk9 = "Z\x00\x12\x00\x09" +cmd_test_spk10 = "Z\x00\x12\x00\x0a" +cmd_test_spk11 = "Z\x00\x12\x00\x0b" +cmd_test_spk12 = "Z\x00\x12\x00\x0c" + +cmd_test_lua1 = "Z\x00\x20\x00\x01" +cmd_test_lua2 = "Z\x00\x20\x00\x02" +cmd_test_lua3 = "Z\x00\x20\x00\x03" +cmd_test_lua4 = "Z\x00\x20\x00\x04" +cmd_test_lua5 = "Z\x00\x20\x00\x05" +cmd_test_lua6 = "Z\x00\x20\x00\x06" +cmd_test_lua7 = "Z\x00\x20\x00\x07" +cmd_test_lua8 = "Z\x00\x20\x00\x08" + +cmd_test_inj1 = "Z\x00\x13\x00\x01" +cmd_test_inj2 = "Z\x00\x13\x00\x02" +cmd_test_inj3 = "Z\x00\x13\x00\x03" +cmd_test_inj4 = "Z\x00\x13\x00\x04" +cmd_test_inj5 = "Z\x00\x13\x00\x05" +cmd_test_inj6 = "Z\x00\x13\x00\x06" +cmd_test_inj7 = "Z\x00\x13\x00\x07" +cmd_test_inj8 = "Z\x00\x13\x00\x08" +cmd_test_inj9 = "Z\x00\x13\x00\x09" +cmd_test_inj10 = "Z\x00\x13\x00\x0a" +cmd_test_inj11 = "Z\x00\x13\x00\x0b" +cmd_test_inj12 = "Z\x00\x13\x00\x0c" + +cmd_test_cancel = "Z\x00\x16\x00\x0f" + +cmd_test_sol1 = "Z\x00\x19\x00\x01" +cmd_test_sol2 = "Z\x00\x19\x00\x02" +cmd_test_sol3 = "Z\x00\x19\x00\x03" +cmd_test_sol4 = "Z\x00\x19\x00\x04" +cmd_test_sol5 = "Z\x00\x19\x00\x05" +cmd_test_sol6 = "Z\x00\x19\x00\x06" + +cmd_test_main_relay = "Z\x00\x16\x00\x00" +cmd_test_fuel_pump = "Z\x00\x16\x00\x01" +cmd_test_starter_relay = "Z\x00\x16\x00\x02" +cmd_test_starter_disable_relay = "Z\x00\x16\x00\x03" +cmd_test_ac_relay = "Z\x00\x16\x00\x06" +cmd_test_fan_1 = "Z\x00\x16\x00\x04" +cmd_test_fan_2 = "Z\x00\x16\x00\x05" +cmd_test_check_engine_light = "Z\x00\x16\x00\x07" +cmd_test_idle_valve = "Z\x00\x16\x00\x08" +cmd_test_second_idle_valve = "Z\x00\x16\x00\x0e" +cmd_test_hpfp_valve = "Z\x00\x16\x00\x09" +cmd_test_acr_valve = "Z\x00\x16\x00\x1c" +cmd_test_acr2_valve = "Z\x00\x16\x00\x1d" +cmd_test_vvt0_valve = "Z\x00\x16\x00\x10" +cmd_test_vvt1_valve = "Z\x00\x16\x00\x11" +cmd_test_vvt2_valve = "Z\x00\x16\x00\x12" +cmd_test_vvt3_valve = "Z\x00\x16\x00\x13" + +cmd_calibrate_tps_1_closed = "Z\x00\x14\x00\x02" +cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03" +cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04" +cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05" +cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06" +cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07" +cmd_tle8888_init = "Z\x00\x14\x00\x08" +cmd_mc33810_init = "Z\x00\x14\x00\x14" +cmd_write_config = "Z\x00\x14\x00\x0a" +cmd_etb_reset = "Z\x00\x14\x00\x0b" +cmd_etb_autotune = "Z\x00\x14\x00\x0C" +cmd_enable_self_stim = "Z\x00\x14\x00\x0D" +cmd_etb_auto_calibrate = "Z\x00\x14\x00\x0E" +cmd_disable_self_stim = "Z\x00\x14\x00\x0F" +cmd_etb_autotune_stop = "Z\x00\x14\x00\x10" +cmd_etb_auto_calibrate_2 = "Z\x00\x14\x00\x11" +cmd_wideband_firmare_update = "Z\x00\x14\x00\x12" +cmd_enable_ext_stim = "Z\x00\x14\x00\x13" +cmd_burn_without_flash = "Z\x00\x14\x00\x15" + +cmd_set_wideband_idx_0 = "Z\x00\x15\x00\x00" +cmd_set_wideband_idx_1 = "Z\x00\x15\x00\x01" + +cmd_stop_engine = "Z\x00\x79\x00\x00" + +; reboot ECU +cmd_reset_controller = "Z\x00\xbb\x00\x00" +; jump to DFU mode +cmd_dfu = "Z\x00\xba\x00\x00" +; jump to OpenBLT bootloader +cmd_openblt = "Z\x00\xbc\x00\x00" + +; See 'executeTSCommand' in firmware source code + +cmd_set_engine_type_HONDA_OBD1 = "Z\x00\x1e\x00\x42" + +cmd_set_engine_type_microRusEFI_VW_B6 = "Z\x00\x1e\x00\x3e" +cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "Z\x00\x1e\x00\x17" +cmd_set_engine_type_MRE_SECONDARY_CAN = "Z\x00\x1e\x00\x04" + +; cmd_set_engine_type_ = "Z\x00\x1e@@engine_type_e_ +cmd_set_engine_type_MITSUBISHI_3A92 = "Z\x00\x1e\x00\x0c" +cmd_set_engine_type_MITSUBISHI_4G93 = "Z\x00\x1e\x00\x10" +cmd_set_engine_type_TOYOTA_1NZ_FE = "Z\x00\x1e\x00\x0d" + +cmd_set_engine_type_MRE_M111 = "Z\x00\x1e\x00\x44" + +cmd_set_engine_type_MAZDA_MIATA_NA6 = "Z\x00\x1e\x00\x22" +cmd_set_engine_type_MAZDA_MIATA_NA94 = "Z\x00\x1e\x00\x50" + +cmd_set_engine_type_MAZDA_MIATA_NB2_36 = "Z\x00\x1e\x00\x56" + +cmd_set_engine_type_hellen_nissan_121_4 = "Z\x00\x1e\x00\x54" +cmd_set_engine_type_hellen_nissan_121_6 = "Z\x00\x1e\x00\x48" +cmd_set_engine_type_hellen_nissan_121_8 = "Z\x00\x1e\x00\x55" + +cmd_set_engine_type_hellen_121_vag_4 = "Z\x00\x1e\x00\x47" +cmd_set_engine_type_hellen_121_vag_5 = "Z\x00\x1e\x00\x4d" +cmd_set_engine_type_hellen_121_vag_v6 = "Z\x00\x1e\x00\x4e" +cmd_set_engine_type_hellen_121_vag_vr6 = "Z\x00\x1e\x00\x4f" +cmd_set_engine_type_hellen_121_vag_8 = "Z\x00\x1e\x00\x51" + +cmd_set_engine_type_hellen_128_merc_4 = "Z\x00\x1e\x00\x24" +cmd_set_engine_type_hellen_128_merc_6 = "Z\x00\x1e\x00\x58" +cmd_set_engine_type_hellen_128_merc_8 = "Z\x00\x1e\x00\x59" + +cmd_set_engine_type_hellen_coupe_bk1 = "Z\x00\x1e\x00\x52" +cmd_set_engine_type_hellen_coupe_bk2 = "Z\x00\x1e\x00\x5f" + +; MIATA_NA6_MAP = 41 +cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29" + +cmd_set_engine_type_FUEL_BENCH = "Z\x00\x1e\x00\x0f" + + + + + + + +; ETB_BENCH_ENGINE = 58 +cmd_set_engine_type_etb_test = "Z\x00\x1e\x00\x3A" +; ETB_BENCH_ENGINE = 59 +cmd_set_engine_type_8888_test = "Z\x00\x1e\x00\x3B" +cmd_set_engine_type_default = "Z\x00\x1f\x00\x00" + +[UserDefined] +indicatorPanel = fuel_computerIndicatorPanel, 2 + indicator = {injectorHwIssue}, "injectorHwIssue No", "injectorHwIssue Yes" + +dialog = fuel_computerDialog, "fuel_computer" + panel = fuel_computerIndicatorPanel + liveGraph = fuel_computer_1_Graph, "Graph", South + graphLine = totalFuelCorrection + graphLine = running_postCrankingFuelCorrection + graphLine = running_intakeTemperatureCoefficient + graphLine = running_coolantTemperatureCoefficient + liveGraph = fuel_computer_2_Graph, "Graph", South + graphLine = running_timeSinceCrankingInSecs + graphLine = running_baseFuel + graphLine = running_fuel + graphLine = afrTableYAxis + liveGraph = fuel_computer_3_Graph, "Graph", South + graphLine = targetLambda + graphLine = targetAFR + graphLine = stoichiometricRatio + graphLine = sdTcharge_coff + liveGraph = fuel_computer_4_Graph, "Graph", South + graphLine = sdAirMassInOneCylinder + graphLine = normalizedCylinderFilling + graphLine = brokenInjector + graphLine = unused88 + liveGraph = fuel_computer_5_Graph, "Graph", South + graphLine = idealEngineTorque + +indicatorPanel = ignition_stateIndicatorPanel, 2 + indicator = {luaIgnitionSkip}, "luaIgnitionSkip No", "luaIgnitionSkip Yes" + +dialog = ignition_stateDialog, "ignition_state" + panel = ignition_stateIndicatorPanel + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellDurationAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = baseIgnitionAdvance + graphLine = correctedIgnitionAdvance + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = tractionAdvanceDrop + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockLevel + graphLine = m_knockCyl1 + graphLine = m_knockCyl2 + graphLine = m_knockCyl3 + liveGraph = knock_controller_2_Graph, "Graph", South + graphLine = m_knockCyl4 + graphLine = m_knockCyl5 + graphLine = m_knockCyl6 + graphLine = m_knockCyl7 + liveGraph = knock_controller_3_Graph, "Graph", South + graphLine = m_knockCyl8 + graphLine = m_knockCyl9 + graphLine = m_knockCyl10 + graphLine = m_knockCyl11 + liveGraph = knock_controller_4_Graph, "Graph", South + graphLine = m_knockCyl12 + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + liveGraph = knock_controller_5_Graph, "Graph", South + graphLine = m_maximumRetard + + +dialog = tcu_controllerDialog, "tcu_controller" + liveGraph = tcu_controller_1_Graph, "Graph", South + graphLine = tcuCurrentGear + graphLine = tcRatio + graphLine = lastShiftTime + graphLine = tcu_currentRange + +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = m_pressureTarget_kPa + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = nextLobe + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchPreCondition}, "isLaunchPreCondition No", "isLaunchPreCondition Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + graphLine = timingALSSkip + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + indicator = {isPlantValid}, "isPlantValid No", "isPlantValid Yes" + indicator = {isBoostControlled}, "isBoostControlled No", "isBoostControlled Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = acButtonState + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_control0IndicatorPanel, 2 + indicator = {cranking0}, "cranking No", "cranking Yes" + indicator = {notRunning0}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped0}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt0}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc0}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot0}, "hot No", "hot Yes" + indicator = {cold0}, "cold No", "cold Yes" + indicator = {disabledBySpeed0}, "disabledBySpeed No", "disabledBySpeed Yes" + +dialog = fan_control0Dialog, "fan_control0" + panel = fan_control0IndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {startStopPhysicalState}, "startStopPhysicalState No", "startStopPhysicalState Yes" + indicator = {acrActive}, "acrActive No", "acrActive Yes" + indicator = {acrEngineMovedRecently}, "acrEngineMovedRecently No", "acrEngineMovedRecently Yes" + indicator = {heaterControlEnabled}, "heaterControlEnabled No", "heaterControlEnabled Yes" + indicator = {luaDigitalState0}, "luaDigitalState0 No", "luaDigitalState0 Yes" + indicator = {luaDigitalState1}, "luaDigitalState1 No", "luaDigitalState1 Yes" + indicator = {luaDigitalState2}, "luaDigitalState2 No", "luaDigitalState2 Yes" + indicator = {luaDigitalState3}, "luaDigitalState3 No", "luaDigitalState3 Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = baroCorrection + graphLine = hellenBoardId + graphLine = clutchUpState + graphLine = clutchDownState + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = brakePedalState + graphLine = startStopState + graphLine = smartChipState + graphLine = smartChipRestartCounter + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = smartChipAliveCounter + graphLine = startStopStateToggleCounter + graphLine = egtValue1 + graphLine = egtValue2 + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = luaSoftSparkSkip + graphLine = luaHardSparkSkip + graphLine = tractionControlSparkSkip + graphLine = desiredRpmLimit + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = fuelInjectionCounter + graphLine = globalSparkCounter + graphLine = fuelingLoad + graphLine = ignitionLoad + liveGraph = engine_state_8_Graph, "Graph", South + graphLine = veTableYAxis + +indicatorPanel = tps_accel_stateIndicatorPanel, 2 + indicator = {isAboveAccelThreshold}, "isAboveAccelThreshold No", "isAboveAccelThreshold Yes" + indicator = {isBelowDecelThreshold}, "isBelowDecelThreshold No", "isBelowDecelThreshold Yes" + indicator = {isTimeToResetAccumulator}, "isTimeToResetAccumulator No", "isTimeToResetAccumulator Yes" + indicator = {isFractionalEnrichment}, "isFractionalEnrichment No", "isFractionalEnrichment Yes" + indicator = {belowEpsilon}, "belowEpsilon No", "belowEpsilon Yes" + indicator = {tooShort}, "tooShort No", "tooShort Yes" + +dialog = tps_accel_stateDialog, "tps_accel_state" + panel = tps_accel_stateIndicatorPanel + liveGraph = tps_accel_state_1_Graph, "Graph", South + graphLine = tpsFrom + graphLine = tpsTo + graphLine = deltaTps + graphLine = extraFuel + liveGraph = tps_accel_state_2_Graph, "Graph", South + graphLine = valueFromTable + graphLine = fractionalInjFuel + graphLine = accumulatedValue + graphLine = maxExtraPerCycle + liveGraph = tps_accel_state_3_Graph, "Graph", South + graphLine = maxExtraPerPeriod + graphLine = maxInjectedPerPeriod + graphLine = cycleCnt + +indicatorPanel = trigger_centralIndicatorPanel, 2 + indicator = {isDecodingMapCam}, "isDecodingMapCam No", "isDecodingMapCam Yes" + +dialog = trigger_centralDialog, "trigger_central" + panel = trigger_centralIndicatorPanel + liveGraph = trigger_central_1_Graph, "Graph", South + graphLine = hwEventCounters1 + graphLine = hwEventCounters2 + graphLine = hwEventCounters3 + graphLine = hwEventCounters4 + liveGraph = trigger_central_2_Graph, "Graph", South + graphLine = hwEventCounters5 + graphLine = hwEventCounters6 + graphLine = vvtCamCounter + graphLine = mapVvt_MAP_AT_SPECIAL_POINT + liveGraph = trigger_central_3_Graph, "Graph", South + graphLine = mapVvt_MAP_AT_DIFF + graphLine = mapVvt_MAP_AT_CYCLE_COUNT + graphLine = mapVvt_map_peak + graphLine = currentEngineDecodedPhase + liveGraph = trigger_central_4_Graph, "Graph", South + graphLine = triggerToothAngleError + graphLine = triggerIgnoredToothCount + graphLine = mapCamPrevToothAngle + + +dialog = trigger_state0Dialog, "trigger_state0" + liveGraph = trigger_state0_1_Graph, "Graph", South + graphLine = crankSynchronizationCounter0 + graphLine = vvtSyncGapRatio0 + graphLine = vvtToothDurations00 + graphLine = vvtCurrentPosition0 + liveGraph = trigger_state0_2_Graph, "Graph", South + graphLine = vvtToothPosition10 + graphLine = vvtToothPosition20 + graphLine = vvtToothPosition30 + graphLine = vvtToothPosition40 + liveGraph = trigger_state0_3_Graph, "Graph", South + graphLine = triggerSyncGapRatio0 + graphLine = triggerStateIndex0 + graphLine = vvtStateIndex0 + +indicatorPanel = trigger_state_primaryIndicatorPanel, 2 + indicator = {m_hasSynchronizedPhase}, "m_hasSynchronizedPhase No", "m_hasSynchronizedPhase Yes" + +dialog = trigger_state_primaryDialog, "trigger_state_primary" + panel = trigger_state_primaryIndicatorPanel + liveGraph = trigger_state_primary_1_Graph, "Graph", South + graphLine = camResyncCounter + + +dialog = wall_fuel_stateDialog, "wall_fuel_state" + liveGraph = wall_fuel_state_1_Graph, "Graph", South + graphLine = wallFuelCorrection + graphLine = wallFuel + +indicatorPanel = idle_stateIndicatorPanel, 2 + indicator = {mightResetPid}, "mightResetPid No", "mightResetPid Yes" + indicator = {shouldResetPid}, "shouldResetPid No", "shouldResetPid Yes" + indicator = {wasResetPid}, "wasResetPid No", "wasResetPid Yes" + indicator = {mustResetPid}, "mustResetPid No", "mustResetPid Yes" + indicator = {isCranking}, "isCranking No", "isCranking Yes" + indicator = {isIacTableForCoasting}, "isIacTableForCoasting No", "isIacTableForCoasting Yes" + indicator = {notIdling}, "notIdling No", "notIdling Yes" + indicator = {needReset}, "needReset No", "needReset Yes" + indicator = {isInDeadZone}, "isInDeadZone No", "isInDeadZone Yes" + indicator = {isBlipping}, "isBlipping No", "isBlipping Yes" + indicator = {useClosedLoop}, "useClosedLoop No", "useClosedLoop Yes" + indicator = {badTps}, "badTps No", "badTps Yes" + indicator = {looksLikeRunning}, "looksLikeRunning No", "looksLikeRunning Yes" + indicator = {looksLikeCoasting}, "looksLikeCoasting No", "looksLikeCoasting Yes" + indicator = {looksLikeCrankToIdle}, "looksLikeCrankToIdle No", "looksLikeCrankToIdle Yes" + indicator = {isIdleCoasting}, "isIdleCoasting No", "isIdleCoasting Yes" + indicator = {isIdleClosedLoop}, "isIdleClosedLoop No", "isIdleClosedLoop Yes" + +dialog = idle_stateDialog, "idle_state" + panel = idle_stateIndicatorPanel + liveGraph = idle_state_1_Graph, "Graph", South + graphLine = idleState + graphLine = currentIdlePosition + graphLine = baseIdlePosition + graphLine = idleClosedLoop + liveGraph = idle_state_2_Graph, "Graph", South + graphLine = iacByTpsTaper + graphLine = throttlePedalUpState + graphLine = idleTarget + graphLine = targetRpmByClt + liveGraph = idle_state_3_Graph, "Graph", South + graphLine = targetRpmAc + graphLine = iacByRpmTaper + graphLine = luaAdd + +indicatorPanel = electronic_throttle0IndicatorPanel, 2 + indicator = {etbRevLimitActive0}, "etbRevLimitActive No", "etbRevLimitActive Yes" + indicator = {jamDetected0}, "jamDetected No", "jamDetected Yes" + +dialog = electronic_throttle0Dialog, "electronic_throttle0" + panel = electronic_throttle0IndicatorPanel + liveGraph = electronic_throttle0_1_Graph, "Graph", South + graphLine = idlePosition0 + graphLine = trim0 + graphLine = luaAdjustment0 + graphLine = m_wastegatePosition0 + liveGraph = electronic_throttle0_2_Graph, "Graph", South + graphLine = etbFeedForward0 + graphLine = etbIntegralError0 + graphLine = etbCurrentTarget0 + graphLine = etbCurrentAdjustedTarget0 + liveGraph = electronic_throttle0_3_Graph, "Graph", South + graphLine = etbDutyRateOfChange0 + graphLine = etbDutyAverage0 + graphLine = etbTpsErrorCounter0 + graphLine = etbPpsErrorCounter0 + liveGraph = electronic_throttle0_4_Graph, "Graph", South + graphLine = etbErrorCode0 + graphLine = tcEtbDrop0 + graphLine = jamTimer0 + + +dialog = wideband_state0Dialog, "wideband_state0" + liveGraph = wideband_state0_1_Graph, "Graph", South + graphLine = faultCode0 + graphLine = heaterDuty0 + graphLine = pumpDuty0 + graphLine = tempC0 + liveGraph = wideband_state0_2_Graph, "Graph", South + graphLine = nernstVoltage0 + graphLine = esr0 + +indicatorPanel = dc_motorsIndicatorPanel, 2 + indicator = {isEnabled0}, "isEnabled0 No", "isEnabled0 Yes" + +dialog = dc_motorsDialog, "dc_motors" + panel = dc_motorsIndicatorPanel + liveGraph = dc_motors_1_Graph, "Graph", South + graphLine = dcOutput0 + graphLine = isEnabled0_int + + +dialog = sent_stateDialog, "sent_state" + liveGraph = sent_state_1_Graph, "Graph", South + graphLine = value0 + graphLine = value1 + graphLine = errorRate + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + +indicatorPanel = lambda_monitorIndicatorPanel, 2 + indicator = {lambdaCurrentlyGood}, "lambdaCurrentlyGood No", "lambdaCurrentlyGood Yes" + indicator = {lambdaMonitorCut}, "lambdaMonitorCut No", "lambdaMonitorCut Yes" + +dialog = lambda_monitorDialog, "lambda_monitor" + panel = lambda_monitorIndicatorPanel + liveGraph = lambda_monitor_1_Graph, "Graph", South + graphLine = lambdaTimeSinceGood + + + + dialog = scriptTable1TblSettings, "", yAxis + field = "Name", scriptTableName1 + panel = scriptTable1Tbl + + dialog = scriptTable2TblSettings, "", yAxis + field = "Name", scriptTableName2 + panel = scriptTable2Tbl + + dialog = scriptTable3TblSettings, "", yAxis + field = "Name", scriptTableName3 + panel = scriptTable3Tbl + + dialog = scriptTable4TblSettings, "", yAxis + field = "Name", scriptTableName4 + panel = scriptTable4Tbl + + dialog = scriptCurve1Settings, "", yAxis + field = "Name", scriptCurveName1 + panel = scriptCurve1 + + dialog = scriptCurve2Settings, "", yAxis + field = "Name", scriptCurveName2 + panel = scriptCurve2 + + dialog = scriptCurve3Settings, "", yAxis + field = "Name", scriptCurveName3 + panel = scriptCurve3 + + dialog = scriptCurve4Settings, "", yAxis + field = "Name", scriptCurveName4 + panel = scriptCurve4 + + dialog = scriptCurve5Settings, "", yAxis + field = "Name", scriptCurveName5 + panel = scriptCurve5 + + dialog = scriptCurve6Settings, "", yAxis + field = "Name", scriptCurveName6 + panel = scriptCurve6 + + dialog = tChargeRpmTpsSettings, "RPM+TPS mode" + field = "We use these coefficients to approximate air/fuel charge" + field = "temperature based on CLT and IAT, depending on RPM and TPM" + field = "Low RPM/Low TPS", tChargeMinRpmMinTps + field = "Low RPM/High TPS", tChargeMinRpmMaxTps + field = "High RPM/Low TPS", tChargeMaxRpmMinTps + field = "High RPM/High TPS", tChargeMaxRpmMaxTps + + dialog = tChargeGeneralSettings, "" + field = "Mode", tChargeMode + field = "#These two parameters limit the estimate's rate of change" + field = "Increase rate limit", tChargeAirIncrLimit + field = "Decrease rate limit", tChargeAirDecrLimit + field = "" + + dialog = tChargeAirInterpSettings, "Airflow interpolation mode" + field = "Low flow coefficient", tChargeAirCoefMin + field = "High flow coefficient", tChargeAirCoefMax + field = "Max air flow", tChargeAirFlowMax + + dialog = tChargeSettings, "Charge temperature estimation" + panel = tChargeGeneralSettings + panel = tChargeRpmTpsSettings, { tChargeMode == 0} + panel = tChargeAirInterpSettings, { tChargeMode == 1} + panel = tchargeCurve, { tChargeMode == 2 } + + dialog = baseInjection, "Injection" + field = "Enabled", isInjectionEnabled + field = "Mode", injectionMode, {isInjectionEnabled == 1} + field = "#Batch injection with individual wiring" + field = "Alpha-N uses IAT density correction", alphaNUseIat, { fuelAlgorithm == 2 } + field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } + field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } + field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled } + + dialog = ignitionOutputs, "Ignition Outputs" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Ignition Output Mode", ignitionPinMode, {isIgnitionEnabled == 1} + field = "Ignition Output 1", ignitionPins1, {isIgnitionEnabled == 1} + ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says + ; this section is auto-generated by FiringOrderTSLogic.java + field = "Ignition Output 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 29)))} + field = "Ignition Output 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 27) || (firingOrder == 28)))} + field = "Ignition Output 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 26) || (firingOrder == 27) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 23) || (firingOrder == 26) || (firingOrder == 30) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 29) || (firingOrder == 30)))} + field = "Ignition Output 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 22) || (firingOrder == 28)))} + field = "Ignition Output 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19) || (firingOrder == 26) || (firingOrder == 28) || (firingOrder == 32)))} + field = "Ignition Output 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))} + field = "Ignition Output 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))} + field = "Ignition Output 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))} + field = "Ignition Output 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18) || (firingOrder == 22)))} + + + dialog = ignitionBasic, "" + field = "Enabled", isIgnitionEnabled + field = "Mode", ignitionMode, {isIgnitionEnabled} + field = "Maximum timing advance", maximumIgnitionTiming, {isIgnitionEnabled} + field = "Minimum timing advance", minimumIgnitionTiming, {isIgnitionEnabled} + field = "Individually wired Wasted Spark", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2 } + field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} + field = "#Use fixed timing while validating with a timing gun" + field = "Timing Mode", timingMode, {isIgnitionEnabled} + field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} + + dialog = ignitionSettings, "", xAxis + panel = ignitionBasic + panel = ignitionOutputs, { uiMode == 0 || uiMode == 1 } + + dialog = baseEngineConfig, "Engine Configuration" + field = "Number of cylinders", cylindersCount + field = "Displacement", displacement + field = "Firing order", firingOrder + field = "Vehicle weight", vehicleWeight + + dialog = engineMetadata, "Engine Metadata" + field = "#These metadata are used by rusEFI Online" + field = "Engine Make", engineMake + field = "Manufacturer Engine Code", engineCode + field = "Vehicle Name", vehicleName + field = "Compression Ratio", compressionRatio + field = "Forced Induction?", isForcedInduction + + dialog = trigger_primary, "Primary Trigger" + topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "What kind of engine", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Primary Edge", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Secondary Edge", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "2JZ Position", camDecoder2jzPosition, 1, {vvtMode1 == 2} + field = "2JZ Precision", camDecoder2jzPrecision, 1, {vvtMode1 == 2} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" + field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } + field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } + field = "Cam Edge Select", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" + field = "Override well known trigger gaps", overrideTriggerGaps + field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "First gap to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Override well known VVT gaps", overrideVvtTriggerGaps + field = gapVvtTrackingLengthOverride, gapVvtTrackingLengthOverride, { overrideVvtTriggerGaps == 1 } + field = "First VVT gap from", triggerVVTGapOverrideFrom1 + field = "First VVT gap to", triggerVVTGapOverrideTo1 + field = "Second VVT gap from", triggerVVTGapOverrideFrom2 + field = "Second VVT gap to", triggerVVTGapOverrideTo2 + field = "VVT gap #3 from", triggerVVTGapOverrideFrom3 + field = "VVT gap #3 to", triggerVVTGapOverrideTo3 + field = "VVT gap #4 from", triggerVVTGapOverrideFrom4 + field = "VVT gap #4 to", triggerVVTGapOverrideTo4 + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } + +; Engine->Injection Settings + dialog = injChars, "Injector Settings", yAxis + field = "Injector flow", injector_flow, {isInjectionEnabled == 1} + field = "Injector flow units", injectorFlowAsMassFlow, {isInjectionEnabled == 1} + field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } + field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } + field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } + + dialog = fuelParams, "Fuel characteristics", yAxis + field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} + field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } + + dialog = injectorOutputSettings, "Injector Outputs", yAxis + field = "Use only first half of outputs for batch mode" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Injection Output 1", injectionPins1, {isInjectionEnabled == 1} + field = "Injection Output 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Injection Output 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Injection Output 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Injection Output 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Injection Output 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Injection Output 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Injection Output 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Injection Output 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Injection Output 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Injection Output 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Injection Output 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = cylinderBankSelect, "Cylinder Banks", yAxis + field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} + field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinearFord, "Ford-model Small Pulse Correction", yAxis + field = "Small pulse slope (ALOSL)", fordInjectorSmallPulseSlope + field = "Set this to 'mass flow'", injectorFlowAsMassFlow + field = "Large pulse slope (AHISL)", injector_flow + field = "Small pulse breakpoint (FUEL_BKPT)", fordInjectorSmallPulseBreakPoint + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode == 1 } + panel = injectorNonlinearFord, {1}, { injectorNonlinearMode == 2 } + + dialog = testLuaOut, "Lua Out Test" + commandButton = "Lua Out #1", cmd_test_lua1 + commandButton = "Lua Out #2", cmd_test_lua2 + commandButton = "Lua Out #3", cmd_test_lua3 + commandButton = "Lua Out #4", cmd_test_lua4 + commandButton = "Lua Out #5", cmd_test_lua5 + commandButton = "Lua Out #6", cmd_test_lua6 + commandButton = "Lua Out #7", cmd_test_lua7 + commandButton = "Lua Out #8", cmd_test_lua8 + commandButton = "Abort test", cmd_test_cancel + + dialog = testInjectors, "Injector Test" + commandButton = "Injector #1", cmd_test_inj1 + commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } + commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } + commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } + commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } + commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } + commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } + commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } + commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } + commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } + commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } + commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testSolenoids, "TCU Solenoid Test" + commandButton = "Solenoid #1", cmd_test_sol1 + commandButton = "Solenoid #2", cmd_test_sol2 + commandButton = "Solenoid #3", cmd_test_sol3 + commandButton = "Solenoid #4", cmd_test_sol4 + commandButton = "Solenoid #5", cmd_test_sol5 + commandButton = "Solenoid #6", cmd_test_sol6 + commandButton = "Abort test", cmd_test_cancel + + dialog = testOther + field = "Count", benchTestCount + field = "On Time", benchTestOnTime + field = "Off Time", benchTestOffTime + panel = testSolenoids + + dialog = injectionSettingsEast, "", yAxis + panel = testInjectors + field = "" + + dialog = injectionSettingsWest, "", yAxis + panel = injectorOutputSettings + field = "" + + dialog = injectionSettings, "", xAxis + panel = injectionSettingsWest + panel = injectionSettingsEast + + dialog = injectorConfig, "", yAxis + topicHelp = "fuelHelp" + panel = baseInjection + panel = injChars + panel = fuelParams + panel = injectorsDeadTime, {isInjectionEnabled} + + dialog = ignitionCylExtra, "Cylinder offsets" + field = "Offset angle for each cylinder if you have an odd fire" + field = "engine, like a v-twin or some V6/V10 engines" + field = "Odd Fire Engine", oddFireEngine + field = "#Positive numbers retard, negative numbers advance" + field = "Offset cyl 1", timing_offset_cylinder1 + field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1} + field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2} + field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3} + field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4} + field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5} + field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6} + field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7} + field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8} + field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9} + field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} + field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} + + dialog = stagedInjectionOutputs, "", yAxis + field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} + field = "Injection Stage 2 Output 2", injectionPinsStage22, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 1} + field = "Injection Stage 2 Output 3", injectionPinsStage23, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 2} + field = "Injection Stage 2 Output 4", injectionPinsStage24, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 3} + field = "Injection Stage 2 Output 5 ", injectionPinsStage25, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 4} + field = "Injection Stage 2 Output 6 ", injectionPinsStage26, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 5} + field = "Injection Stage 2 Output 7 ", injectionPinsStage27, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 6} + field = "Injection Stage 2 Output 8 ", injectionPinsStage28, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 7} + field = "Injection Stage 2 Output 9 ", injectionPinsStage29, {isInjectionEnabled && enableStagedInjection && cylindersCount > 8} + field = "Injection Stage 2 Output 10 ", injectionPinsStage210, {isInjectionEnabled && enableStagedInjection && cylindersCount > 9} + field = "Injection Stage 2 Output 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10} + field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} + + dialog = stagedInjection, "", yAxis + field = "Enable", enableStagedInjection, {isInjectionEnabled} + field = "" + field = "Secondary injector flow", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection} + field = "" + panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection} + + dialog = multisparkDwellParams, "Delay & Dwell" + field = "Spark duration", multisparkSparkDuration, {multisparkEnable} + field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable} + + dialog = multisparkMain, "Configuration" + field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} + field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} + field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} + + dialog = multisparkSettings, "Multispark" + field = "#WARNING! These settings have the potential to overheat ignition components" + field = "#and cause other nasty misbehavior. Use with care, at your own risk!" + field = "#Not recommended for use on distributor or wasted spark ignition systems." + field = "Enable multiple sparks", multisparkEnable + panel = multisparkMain + panel = multisparkDwellParams + + dialog = ignAdder1Cfg, "Ignition adder 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends1_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends1_yAxisOverride, {ignBlends1_blendParameter} + panel = ignAdder1Bias, {ignBlends1_blendParameter} + + dialog = ignAdder2Cfg, "Ignition adder 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends2_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends2_yAxisOverride, {ignBlends2_blendParameter} + panel = ignAdder2Bias, {ignBlends2_blendParameter} + + dialog = ignAdder3Cfg, "Ignition adder 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends3_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends3_yAxisOverride, {ignBlends3_blendParameter} + panel = ignAdder3Bias, {ignBlends3_blendParameter} + + dialog = ignAdder4Cfg, "Ignition adder 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends4_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends4_yAxisOverride, {ignBlends4_blendParameter} + panel = ignAdder4Bias, {ignBlends4_blendParameter} + + dialog = veBlend1Cfg, "VE blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends1_blendParameter + field = "Y axis override (set Zero for no override)", veBlends1_yAxisOverride, {veBlends1_blendParameter} + panel = veBlend1Bias, {veBlends1_blendParameter} + + dialog = veBlend2Cfg, "VE blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends2_blendParameter + field = "Y axis override (set Zero for no override)", veBlends2_yAxisOverride, {veBlends2_blendParameter} + panel = veBlend2Bias, {veBlends2_blendParameter} + + dialog = veBlend3Cfg, "VE blend 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends3_blendParameter + field = "Y axis override (set Zero for no override)", veBlends3_yAxisOverride, {veBlends3_blendParameter} + panel = veBlend3Bias, {veBlends3_blendParameter} + + dialog = veBlend4Cfg, "VE blend 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends4_blendParameter + field = "Y axis override (set Zero for no override)", veBlends4_yAxisOverride, {veBlends4_blendParameter} + panel = veBlend4Bias, {veBlends4_blendParameter} + + indicatorPanel = isBoostControlledPanel, 1 + indicator = {isBoostControlled}, "No Boost Control", "Boost Control Active" + + dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends1_yAxisOverride, {boostOpenLoopBlends1_blendParameter} + panel = boostOpenLoopBlend1Bias, {boostOpenLoopBlends1_blendParameter} + + dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends2_yAxisOverride, {boostOpenLoopBlends2_blendParameter} + panel = boostOpenLoopBlend2Bias, {boostOpenLoopBlends2_blendParameter} + + dialog = boostClosedBlend1Cfg, "Boost closed loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends1_yAxisOverride, {boostClosedLoopBlends1_blendParameter} + panel = boostClosedLoopBlend1Bias, {boostClosedLoopBlends1_blendParameter} + + dialog = boostClosedBlend2Cfg, "Boost closed loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends2_yAxisOverride, {boostClosedLoopBlends2_blendParameter} + panel = boostClosedLoopBlend2Bias, {boostClosedLoopBlends2_blendParameter} + + dialog = dwellSettings, "", yAxis + panel = dwellCorrection + panel = dwellVoltageCorrection + + dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" + field = "Input channel", auxTempSensor1_adcChannel + field = "Pullup resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 0} + + dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" + field = "Input channel", auxTempSensor2_adcChannel + field = "Pullup resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 0} + + dialog = tpsSent1, "SENT TPS" + field = "Input #1", sentInputPins1 + field = "ETB type", sentEtbType, {sentInputPins1 != 0} + field = "Closed value", customSentTpsMin, {sentEtbType == 3 } + field = "Open value", customSentTpsMax, {sentEtbType == 3 } + + dialog = oilTempSensor, "Oil Temp Sensor Settings" + field = "Input channel", oilTempSensor_adcChannel + field = "Pullup resistor", oilTempSensor_bias_resistor, {oilTempSensor_adcChannel != 0} + + field = "Lowest temperature", oilTempSensor_tempC_1, {oilTempSensor_adcChannel != 0} + field = "Resistance @ LT", oilTempSensor_resistance_1, {oilTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", oilTempSensor_tempC_2, {oilTempSensor_adcChannel != 0} + field = "Resistance @ MT", oilTempSensor_resistance_2, {oilTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", oilTempSensor_tempC_3, {oilTempSensor_adcChannel != 0} + field = "Resistance @ HT", oilTempSensor_resistance_3, {oilTempSensor_adcChannel != 0} + + dialog = fuelTempSensor, "Fuel Temp Sensor Settings" + field = "Input channel", fuelTempSensor_adcChannel + field = "Pullup resistor", fuelTempSensor_bias_resistor, {fuelTempSensor_adcChannel != 0} + + field = "Lowest temperature", fuelTempSensor_tempC_1, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ LT", fuelTempSensor_resistance_1, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", fuelTempSensor_tempC_2, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ MT", fuelTempSensor_resistance_2, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", fuelTempSensor_tempC_3, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ HT", fuelTempSensor_resistance_3, {fuelTempSensor_adcChannel != 0} + + dialog = ambientTempSensor, "Ambient Temp Sensor Settings" + field = "!Put this sensor before any turbocharger/supercharger" + field = "!near the air filter." + field = "Input channel", ambientTempSensor_adcChannel + field = "Pullup resistor", ambientTempSensor_bias_resistor, {ambientTempSensor_adcChannel != 0} + + field = "Lowest temperature", ambientTempSensor_tempC_1, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ LT", ambientTempSensor_resistance_1, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", ambientTempSensor_tempC_2, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ MT", ambientTempSensor_resistance_2, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", ambientTempSensor_tempC_3, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ HT", ambientTempSensor_resistance_3, {ambientTempSensor_adcChannel != 0} + + dialog = compressorDischargeTemperature, "Compressor Discharge Temp Settings" + field = "!Put this sensor after the turbocharger/supercharger" + field = "!but before the intercooler." + field = "Input channel", compressorDischargeTemperature_adcChannel + field = "Pullup resistor", compressorDischargeTemperature_bias_resistor, {compressorDischargeTemperature_adcChannel != 0} + + field = "Lowest temperature", compressorDischargeTemperature_tempC_1, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ LT", compressorDischargeTemperature_resistance_1, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Middle temperature", compressorDischargeTemperature_tempC_2, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ MT", compressorDischargeTemperature_resistance_2, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Highest temperature", compressorDischargeTemperature_tempC_3, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ HT", compressorDischargeTemperature_resistance_3, {compressorDischargeTemperature_adcChannel != 0} + + dialog = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + field = "Error Detection Threshold", etbSplit + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = idlePosConfig, "Idle position sensor" + field = "Input", idlePositionChannel + field = "Min (valve closed, low idle)", idlePositionMin + field = "Max (valve open, high idle)", idlePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + panel = idlePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + gauge = rawIdlePositionSensorGauge + gauge = idlePosSensGauge + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = tractionIgnitionSkipDialog, "Traction Ignition Skip" + field = useHardSkipInTraction, useHardSkipInTraction + panel = tractionIgnitionSkipTableTbl + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + field = "MC33816 Driven", mc33816_driven + + field = "Boost voltage", mc33_hvolt + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake Pedal", brakePedalPin + field = "Brake Pedal Mode", brakePedalPinMode + field = "Flex fuel sensor", flexSensorPin + field = flexSensorInverted, flexSensorInverted + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + field = "Throttle inlet pressure sensor", throttleInletPressureChannel + field = "Compressor discharge pressure sensor", compressorDischargePressureChannel + + dialog = fuelLevelDialog, "Fuel Level Sensor" + field = "Input channel", fuelLevelSensor + panel = fuelLevelCurve + +; +; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to +; configure the features. +; + dialog = allPinsSensors, "Sensors" + field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel + field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel + field = "Primary input channel", triggerInputPins1 + field = "Secondary channel", triggerInputPins2 + field = "Cam Sync/VVT input", camInputs1 + field = "CLT ADC input", clt_adcChannel + field = "IAT ADC input", iat_adcChannel + field = "vBatt ADC input", vbattAdcChannel + field = "TPS1 ADC input", tps1_1AdcChannel + field = "TPS2 ADC input", tps2_1AdcChannel + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + field = "AFR ADC input", afr_hwChannel + field = "AFR 2 ADC input", afr_hwChannel2 + field = "Baro ADC input", baroSensor_hwChannel + field = "MAP ADC input", map_sensor_hwChannel + field = "Fuel Level input", fuelLevelSensor + field = "Vehicle Speed input", vehicleSpeedSensorInputPin + field = "Clutch Down input", clutchDownPin + field = "Clutch Up input", clutchUpPin + field = "Brake pedal input", brakePedalPin + field = "A/C Switch", acSwitch + field = "Aux Temperature #1", auxTempSensor1_adcChannel + field = "Aux Temperature #2", auxTempSensor2_adcChannel + field = "Aux Fast Analog", auxFastSensor1_adcChannel + + dialog = allTriggerDebug, "Trigger Debug" + field = "trigger 1 debug", triggerInputDebugPins1 + field = "trigger 2 debug", triggerInputDebugPins2 + field = "cam 1 debug", camInputsDebug1 + field = "cam 2 debug", camInputsDebug2 + field = "cam 3 debug", camInputsDebug3 + field = "cam 4 debug", camInputsDebug4 + + dialog = allPinsMC33, "MC33816" + field = "Chip Select", mc33816_cs + field = rstb, mc33816_rstb + field = flag0, mc33816_flag0 + field = mc33816_driven, mc33816_driven + field = mc33816spiDevice, mc33816spiDevice + field = hpfpValvePin, hpfpValvePin + + dialog = allPins1_1 + field = "trigger stimulator output #1", triggerSimulatorPins1 + field = "trigger stimulator output #2", triggerSimulatorPins2 + field = "tle6240_cs", tle6240_cs + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "Narrowband O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "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 = "SPI4 MOSI", spi4mosiPin, {is_enabled_spi_4 == 1} + field = "SPI4 MISO", spi4misoPin, {is_enabled_spi_4 == 1} + field = "SPI4 SCK", spi4sckPin, {is_enabled_spi_4 == 1} + field = "SPI5 MOSI", spi5mosiPin, {is_enabled_spi_5 == 1} + field = "SPI5 MISO", spi5misoPin, {is_enabled_spi_5 == 1} + field = "SPI5 SCK", spi5sckPin, {is_enabled_spi_5 == 1} + field = "SPI6 MOSI", spi6mosiPin, {is_enabled_spi_6 == 1} + field = "SPI6 MISO", spi6misoPin, {is_enabled_spi_6 == 1} + field = "SPI6 SCK", spi6sckPin, {is_enabled_spi_6 == 1} + field = "hip9011CsPin", hip9011CsPin + field = "Saab CDM knock", cdmInputPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + + dialog = allPins3_1 + panel = allPinsSensors + + dialog = allPins3_2 + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "Aux Valve #1", auxValves1 + field = "Aux Valve #2", auxValves2 + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE 8888 spi", tle8888spiDevice + field = "L9779 Chip Select", l9779_cs + field = "AUX Serial TX", auxSerialTxPin + field = "AUX Serial RX", auxSerialRxPin + field = "Start/Stop Button", startStopButtonPin + field = "Upshift Pin", tcuUpshiftButtonPin + field = "Downshift Pin", tcuDownshiftButtonPin + + dialog = allPins3_1_and_2, "All IO 3/3", xAxis + panel = allPins3_1 + panel = allPins3_2 + + dialog = allPins1_1_and_2, "", xAxis + panel = allPins1_1 + panel = allPins1_2 + + dialog = allPins1, "All IO 1/3", xAxis + panel = allPins1_1_and_2 + panel = allPins1_3 + + dialog = allPins2_1_and_2, "", xAxis + panel = allPins2_1 + panel = allPins2_2 + + dialog = allPins2, "All IO 2/3", xAxis + panel = allPins2_1_and_2 + panel = allPins2_3 + + dialog = clt_thermistor, "CLT sensor" + field = "Input channel", clt_adcChannel + field = "Pullup resistor", clt_bias_resistor, {clt_adcChannel != 0} + + settingSelector = "Common CLT Sensors" + settingOption = "GM CLT", clt_tempC_1=-40,clt_resistance_1=100000,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=130,clt_resistance_3=70,useLinearCltSensor=0 + settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 + settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 + settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 0} + field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 0} + field = "" + field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 0} + field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 0} + field = "" + field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 0} + field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 0} + + dialog = cltGauges + gauge = CLTGauge + gauge = rawCltGauge + + dialog = cltSensor, "CLT Sensor", border + panel = clt_thermistor, West + panel = cltGauges, East + + dialog = iat_thermistor, "IAT sensor" + field = "Input channel", iat_adcChannel + field = "Pullup resistor", iat_bias_resistor, {iat_adcChannel != 0} + + settingSelector = "Common IAT Sensors", {iat_adcChannel != 0} + settingOption = "GM IAT", iat_tempC_1=8.9,iat_resistance_1=7000,iat_tempC_2=30.6,iat_resistance_2=1930,iat_tempC_3=63.3,iat_resistance_3=560,useLinearIatSensor=0 + settingOption = "Miata NA/NB", iat_tempC_1=-20,iat_resistance_1=16150,iat_tempC_2=40,iat_resistance_2=1150,iat_tempC_3=80,iat_resistance_3=330,useLinearIatSensor=0 + settingOption = "Miata MSM IAT2", iat_tempC_1=0,iat_resistance_1=112000,iat_tempC_2=40,iat_resistance_2=17000,iat_tempC_3=60,iat_resistance_3=8000,useLinearIatSensor=0 + settingOption = "Bosch Various", iat_tempC_1=-10,iat_resistance_1=9397,iat_tempC_2=30,iat_resistance_2=1707,iat_tempC_3=70,iat_resistance_3=436,useLinearIatSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 0} + field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 0} + field = "" + field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 0} + field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 0} + field = "" + field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 0} + field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 0} + + dialog = iatGauges + gauge = IATGauge + gauge = rawIatGauge + + dialog = iatSensor, "IAT Sensor", border + panel = iat_thermistor, West + panel = iatGauges, East + + dialog = oilp_settings, "Oil Pressure Sensor" + field = "Oil Pressure input", oilPressure_hwChannel + field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0} + field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0} + field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0} + field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0} + + dialog = oilPressureGauges + gauge = OilPressGauge + gauge = rawOilPressureGauge + + dialog = oilPressureSensor, "", border + panel = oilp_settings, West + panel = oilPressureGauges, East + + dialog = fuelp_settings, "Fuel Pressure Sensor" + field = "Fuel low pressure input", lowPressureFuel_hwChannel + field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0} + field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0} + field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0} + field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0} + field = "sensor type", fuelPressureSensorMode, {lowPressureFuel_hwChannel != 0} + + field = "Fuel high pressure input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "Input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "Input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0} + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0} + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0} + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + dialog = mapCurves, "MAP sampling", yAxis + field = "isMapAveragingEnabled", isMapAveragingEnabled + panel = map_samplingAngleCurve + panel = map_samplingWindowCurve + + dialog = mafSettings, "MAF sensor", yAxis + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + +; Sensors->EGO sensor + dialog = egoSettings_sensor, "EGO sensor" + settingSelector = "EGO Type" + settingOption = "BPSX", afr_v1=0,afr_value1=9,afr_v2=5,afr_value2=19 + settingOption = "Innovate", afr_v1=0,afr_value1=7.35,afr_v2=5,afr_value2=22.39 + settingOption = "14Point7", afr_v1=0,afr_value1=9.996,afr_v2=5,afr_value2=19.992 + settingOption = "PLX", afr_v1=0,afr_value1=10,afr_v2=5,afr_value2=20 + settingOption = "Narrow Band", afr_v1=0.1,afr_value1=15,afr_v2=0.9,afr_value2=14 + settingOption = "AEM", afr_v1=0.5,afr_value1=8.5,afr_v2=4.5,afr_value2=18 + + field = "Type", afr_type +; todo: only use these values for custom! + field = "low voltage", afr_v1 + field = "low value", afr_value1 + field = "high voltage", afr_v2 + field = "high value", afr_value2 + field = "Correction", egoValueShift + + dialog = egoSettings_IO1, "EGO Sensor 1 I/O" + field = "Input channel", afr_hwChannel,{afr_hwChannel != 0 || enableAemXSeries == 0 } + field = "Narrowband Heater output", o2heaterPin, { o2heaterPin != 0 || enableAemXSeries == 0 } + + dialog = egoSettings_IO2, "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 + panel = etbHbridgeHardwareNo2 + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Control", stepperDcIo1_controlPin + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Control", stepperDcIo2_controlPin + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = idleIncrementalPidCic, idleIncrementalPidCic + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C RPM target", acIdleRpmTarget + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Dashpot/Taper Initial IAC Adder", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Override Idle VE table load axis", idleVeOverrideMode, { useSeparateVeForIdle == 1 } + field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper + field = "Use coasting idle table", useIacTableForCoasting + field = "Dashpot coasting-to-idle Hold time", iacByTpsHoldTime + field = "Dashpot coasting-to-idle Decay time", iacByTpsDecayTime + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control is disabled at zero RPM" + +; gating applies both to open loop and closed loop! + panel = idleGating +; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected + panel = idleOpenLoop + panel = idlePidSettings, { idleMode == 0 } + panel = idleExtra + + dialog = idleTimingPidCorrDialog, "", yAxis + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Integral gain", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "Soft entry time", idleTimingSoftEntryTime, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" + +; Engine->Fan Settings + dialog = fan1Settings, "Fan 1" + field = "Output", fanPin, 1, { uiMode == 0 || uiMode == 1 } + field = "Output mode", fanPinMode, { uiMode == 0 || uiMode == 1 } + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Disable above vehicle speed", disableFan1AtSpeed + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Disable above vehicle speed", disableFan2AtSpeed + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C Idle RPM", acIdleRpmTarget + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + commandButton = "Test Fuel Pump", cmd_test_fuel_pump + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + commandButton = "Test Main Relay", cmd_test_main_relay + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + commandButton = "Test Starter Disable", cmd_test_starter_disable_relay + + dialog = startStopDialog, "Starter Control" + field = "Require Foot On Brake To Crank", requireFootOnBrakeToCrank + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + field = "Suppress On Start Up (Ms)", startButtonSuppressOnStartUpMs, {startStopButtonPin != 0} + commandButton = "Test Starter Relay", cmd_test_starter_relay + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + commandButton = "Test Check Engine", cmd_test_check_engine_light + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = speedoSettings, "Speedometer output" + field = "Output", speedometerOutputPin + field = "Pulse per km", speedometerPulsePerKm, { speedometerOutputPin } + + dialog = outputsDialogLeft + panel = mainRelayDialog + panel = fuelPumpDialog + panel = tachSettings + + dialog = outputsDialogRight + panel = startStopDialog + panel = starterRelayDialog + panel = speedoSettings + panel = malfunctionDialog + + dialog = outputsDialog, "Outputs", border + panel = outputsDialogLeft, West + panel = fanSetting, Center + panel = outputsDialogRight, East + + dialog = statusLeds, "Status LEDs" + field = "Trigger error LED", triggerErrorPin + field = "Debug Trigger Sync", debugTriggerSync + + dialog = softwareKnockCfg, "Sense" + field = "Enable", enableSoftwareKnock + field = "Cylinder Bore", cylinderBore + field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} + field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} + field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} + + field = "" + field = "Select the nearest sensor for each cylinder" + field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} + field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} + field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} + field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} + field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} + field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} + field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} + field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} + field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} + field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} + field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} + field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} + + dialog = softwareKnockResponseCfg, "Response" + field = knockRetardAggression, knockRetardAggression + field = knockRetardReapplyRate, knockRetardReapplyRate + + dialog = softwareKnockLeft, "" + panel = softwareKnockCfg + panel = softwareKnockResponseCfg + + dialog = softwareKnock, "Software Knock", border + panel = softwareKnockLeft, West + panel = knockThresholdCurve, Center + +; Engine->hip9011 Settings + dialog = hipFunction, "HIP9011 Settings (knock decoder)" + field = "Enabled", isHip9011Enabled + field = "!ECU reboot needed to apply these settings" + field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} + field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} + field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} + field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} + field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} + field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} + field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} + field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} + field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} + field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} + field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} + panel = knockThresholdCurve + + dialog = spiBuses, "SPI buses settings" + field = "!ECU reboot needed to apply these settings" + field = "SPI1 enable", is_enabled_spi_1 + field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} + field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} + field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} + + field = "SPI2 enable", is_enabled_spi_2 + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} + + field = "SPI3 enable", is_enabled_spi_3 + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} + + field = "SPI4 enable", is_enabled_spi_4 + + field = "SPI5 enable", is_enabled_spi_5 + + field = "SPI6 enable", is_enabled_spi_6 + + dialog = spiDevices, "SPI devices settings" + field = "Use SPI accelerometer", useSpiImu + + dialog = stftPartitioning, "Region Configuration" + field = "Idle region RPM", stft_maxIdleRegionRpm + field = "Overrun region load", stft_maxOverrunLoad + field = "Power region load", stft_minPowerLoad + + dialog = stftPartitionSettingsMain, "Main Region", xAxis + field = "Time const", stft_cellCfgs4_timeConstant + field = "Max add", stft_cellCfgs4_maxAdd + field = "Max remove", stft_cellCfgs4_maxRemove + + dialog = stftPartitionSettingsIdle, "Idle Region", xAxis + field = "Time const", stft_cellCfgs1_timeConstant + field = "Max add", stft_cellCfgs1_maxAdd + field = "Max remove", stft_cellCfgs1_maxRemove + + dialog = stftPartitionSettingsPower, "Power Region", xAxis + field = "Time const", stft_cellCfgs3_timeConstant + field = "Max add", stft_cellCfgs3_maxAdd + field = "Max remove", stft_cellCfgs3_maxRemove + + dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis + field = "Time const", stft_cellCfgs2_timeConstant + field = "Max add", stft_cellCfgs2_maxAdd + field = "Max remove", stft_cellCfgs2_maxRemove + + dialog = fuelClosedLoopDialog, "Closed loop fuel correction" + field = "Enabled", fuelClosedLoopCorrectionEnabled + + field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} + field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} + + panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} + + dialog = lambdaProtectionLeft, "" + field = "Enable lambda protection", lambdaProtectionEnable + field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" + panel = lambdaMaxDeviationTableTbl + + dialog = lambdaProtection, "Lambda Protection", border + panel = lambdaProtectionLeft, West + panel = lambdaProtectionRight, East + + dialog = vvtPidDialog0, "Configuration" + field = "Activation Delay", vvtActivationDelayMs + field = "Do not control below RPM", vvtControlMinRpm + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "PWM frequency", vvtOutputFrequency, {vvtPins1 != 0 || vvtPins2 != 0} + field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 } + field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 } + + dialog = vvtPidDialog1, "Intake PID" + field = "offset", auxPid1_offset, {vvtPins1 != 0} + field = "P factor", auxPid1_pFactor, {vvtPins1 != 0} + field = "I factor", auxPid1_iFactor, {vvtPins1 != 0} + field = "D factor", auxPid1_dFactor, {vvtPins1 != 0} + field = "Min", auxPid1_minValue, {vvtPins1 != 0} + field = "Max", auxPid1_maxValue, {vvtPins1 != 0} + commandButton = "Bench bank 1", cmd_test_vvt0_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt2_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog2, "Exhaust PID" + field = "offset", auxPid2_offset, {vvtPins2 != 0} + field = "P factor", auxPid2_pFactor, {vvtPins2 != 0} + field = "I factor", auxPid2_iFactor, {vvtPins2 != 0} + field = "D factor", auxPid2_dFactor, {vvtPins2 != 0} + field = "Min", auxPid2_minValue, {vvtPins2 != 0} + field = "Max", auxPid2_maxValue, {vvtPins2 != 0} + commandButton = "Bench bank 1", cmd_test_vvt1_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt3_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog, "VVT Configuration & PID", border + panel = vvtPidDialog0, West + panel = vvtPidDialog1, Center + panel = vvtPidDialog2, East + +; Engine->Battery & Alternator + dialog = batteryDialog, "Battery Settings", yAxis + field = "vBatt ADC input", vbattAdcChannel + field = "Battery Input Divider Coefficient", vbattDividerCoeff + dialog = alternator, "Alternator Settings", yAxis + field = "Enabled", isAlternatorControlEnabled + field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} + field = "Control output", alternatorControlPin, {isAlternatorControlEnabled == 1} + field = "Control output mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} + field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1} + field = "A/C duty adder", acRelayAlternatorDutyAdder, {isAlternatorControlEnabled == 1} + field = "#PID control" + field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1} + field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1} + field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1} + field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1} + field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1} + field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1} + field = "#% duty = Pterm + Iterm + Dterm + offset%" + + dialog = energySystems, "Battery and Alternator Settings", yAxis + panel = batteryDialog + panel = alternator + + dialog = speedSensorAnalog, "Speed sensor" + field = "Input", vehicleSpeedSensorInputPin + field = "Filter parameter", vssFilterReciprocal, { vehicleSpeedSensorInputPin != 0 } + +; +; We prefer quantities that users can actually measure or inspect without math, so we have +; two separate natural settings here without one 'sensor tooth to wheel revolution' ratio +; + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Speed sensor gear ratio", vssGearRatio, { vehicleSpeedSensorInputPin != 0 } + field = "Speed sensor tooth count", vssToothCount, { vehicleSpeedSensorInputPin != 0 } + + dialog = speedSensorCan, "CAN Vehicle Speed" + field = "Enable CAN VSS", enableCanVss, { canReadEnabled } + field = "CAN VSS type", canVssNbcType, { enableCanVss } + field = "CAN VSS scaling", canVssScaling, { canReadEnabled } + + dialog = speedSensorLeft, "", yAxis + panel = speedSensorAnalog, { enableCanVss == 0 } + panel = speedSensorCan + + dialog = gearDetection, "Gear Detection" + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Final drive ratio", finalGearRatio + field = "" + field = "Forward gear count", totalGearsCount + field = "" + field = "1st gear", gearRatio1, { totalGearsCount >= 1 } + field = "2nd gear", gearRatio2, { totalGearsCount >= 2 } + field = "3rd gear", gearRatio3, { totalGearsCount >= 3 } + field = "4th gear", gearRatio4, { totalGearsCount >= 4 } + field = "5th gear", gearRatio5, { totalGearsCount >= 5 } + field = "6th gear", gearRatio6, { totalGearsCount >= 6 } + field = "7th gear", gearRatio7, { totalGearsCount >= 7 } + field = "8th gear", gearRatio8, { totalGearsCount >= 8 } + + dialog = speedSensor, "Speed sensor", xAxis + panel = speedSensorLeft + gauge = VSSGauge + panel = gearDetection + +; Engine->Other inputs + dialog = analogInputSettings, "Analog Input Settings" + field = "!ECU reboot needed to apply these settings" + field = "ADC vRef voltage", adcVcc + field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap + + +; 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 = "Enable extended rusEFI CAN broadcast", enableExtendedCanBroadcast + field = "rusEFI CAN data bus", canBroadcastUseChannelTwo + field = "rusEFI CAN data base address", verboseCanBaseAddress + field = "rusEFI CAN data address type", rusefiVerbose29b + field = "rusEFI CAN data period", canSleepPeriodMs + + dialog = canBus2, "Secondary CAN Bus" + + dialog = canBusMain, "CAN Bus Communication", yAxis + panel = canBus + + panel = canHw1 + + 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 = tle8888Dialog, "TLE8888", yAxis + field = "TLE8888 SPI", tle8888spiDevice + field = "TLE8888 Chip Select", tle8888_cs + field = "Trigger Input Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinitialize", cmd_tle8888_init + + dialog = l9779Dialog, "L9779", yAxis + field = "L9779 SPI", l9779spiDevice + field = "L9779 Chip Select", l9779_cs + + dialog = connection, "", yAxis + panel = tsPort + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + field = enableKline, enableKline + + dialog = monitoringSettings, "rusEFI Console Settings" + field = "Sensor Sniffer", sensorChartMode + field = " Threshold", sensorSnifferRpmThreshold + field = "Engine Sniffer Threshold", engineSnifferRpmThreshold + + dialog = 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 = dutyCycleLimiting, "Injector Duty Cycle Limiter" + field = "Instantaneous injector duty cycle limit", maxInjectorDutyInstant, {isInjectionEnabled} + field = "Sustained injector duty cycle limit", maxInjectorDutySustained, {isInjectionEnabled} + field = "Sustained injector duty cycle delay", maxInjectorDutySustainedTimeout, {isInjectionEnabled} + + dialog = limitsSettings, "Limits" + field = "Cut fuel on RPM limit", cutFuelOnHardLimit + field = "Cut spark on RPM limit", cutSparkOnHardLimit + field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit } + field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + field = "RPM limit hysteresis", rpmHardLimitHyst + field = "Boost cut pressure", boostCutPressure + field = "Boost cut pressure hysteresis", boostCutPressureHyst + field = "Minimum oil pressure after start", minOilPressureAfterStart + panel = dutyCycleLimiting + + dialog = softRpmLimitSettings, "Soft RPM Limit" + field = "Window size", rpmSoftLimitWindowSize + field = "Timing retard", rpmSoftLimitTimingRetard, { cutSparkOnHardLimit } + field = "Fuel added", rpmSoftLimitFuelAdded, { cutFuelOnHardLimit } + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = softRpmLimitSettings, West, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + panel = etbLimits + + dialog = limitsAndFallbackCenter, "CLT-based RPM Limit" + panel = cltRevLimitCurve + + dialog = limitsAndFallback, "Limits and fallbacks", border + panel = limitsAndFallbackLeft, West + panel = limitsAndFallbackCenter, Center, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && useCltBasedRpmLimit } + +; Engine->Base Engine Settings + dialog = engineChars, "Base Engine Settings" + topicHelp = "baseHelp" + panel = baseEngineConfig + panel = engineMetadata + panel = 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 = primingFuelPulsePanel, "Priming fuel pulse" + field = "Priming delay", primingDelay + panel = primingPulse + + dialog = crankingAdv, "Advanced" + field = "Enable flood clear", isCylinderCleanupEnabled + field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled + field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking + field = "Use Flex Fuel cranking table", flexCranking + +; Cranking->Cranking Settings + dialog = crankingDialog, "Cranking Settings" + field = "Cranking RPM limit", cranking_rpm + panel = crankingFuel + panel = crankingIgnition + panel = crankingIAC + panel = crankingAdv + + dialog = TpsAccelPanel, "TPS" + field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" + field = "Length", tpsAccelLookback + field = "Accel Threshold", tpsAccelEnrichmentThreshold + field = "Decel Threshold", tpsDecelEnleanmentThreshold +; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier + field = "#Accelerator Pump model:" + field = "Fraction Period", tpsAccelFractionPeriod + field = "Fraction Divisor", tpsAccelFractionDivisor + + dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" + field = "Wall fueling model type", complexWallModel + field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } + field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } + + +; Tuning->AccelEnrichment + dialog = AccelEnrich, "Accel/Decel Enrichment" + panel = TpsAccelPanel + panel = WallWettingAccelPanel + field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs + + + dialog = wwTauCurves, "Wall wetting AE evaporation time" + field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." + panel = wwTauCltCurve + panel = wwTauMapCurve + + dialog = wwBetaCurves, "Wall wetting AE impact fraction" + field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." + panel = wwBetaCltCurve + panel = wwBetaMapCurve + + dialog = auxValvesIO, "Outputs" + field = "aux valve #1", auxValves1 + field = "aux valve #2", auxValves2 + + dialog = scriptSetting, "Setting" + field = "!Use rusEFI console for Lua script editing" + field = "Set number is not associated with the output number." + field = "Set number, only the cell number with some numbers." + field = "Name #1", scriptSettingName1 + field = "Setting #1", scriptSetting1 + field = "Name #2", scriptSettingName2 + field = "Setting #2", scriptSetting2 + field = "Name #3", scriptSettingName3 + field = "Setting #3", scriptSetting3 + field = "Name #4", scriptSettingName4 + field = "Setting #4", scriptSetting4 + field = "Name #5", scriptSettingName5 + field = "Setting #5", scriptSetting5 + field = "Name #6", scriptSettingName6 + field = "Setting #6", scriptSetting6 + + dialog = scriptSettingDialog, "Script Settings", border + panel = scriptSetting, East + + dialog = luaDigitalInputsLeftDialog + field = "Digital #1", luaDigitalInputPins1 + field = "Digital #2", luaDigitalInputPins2 + field = "Digital #3", luaDigitalInputPins3 + field = "Digital #4", luaDigitalInputPins4 + field = "Digital #5", luaDigitalInputPins5 + field = "Digital #6", luaDigitalInputPins6 + field = "Digital #7", luaDigitalInputPins7 + field = "Digital #8", luaDigitalInputPins8 + + dialog = luaDigitalInputsRightDialog + field = "Mode #1", luaDigitalInputPinModes1 + field = "Mode #2", luaDigitalInputPinModes2 + field = "Mode #3", luaDigitalInputPinModes3 + field = "Mode #4", luaDigitalInputPinModes4 + field = "Mode #5", luaDigitalInputPinModes5 + field = "Mode #6", luaDigitalInputPinModes6 + field = "Mode #7", luaDigitalInputPinModes7 + field = "Mode #8", luaDigitalInputPinModes8 + + dialog = luaDigitalInputsDialog, "Lua Digital Aux Inputs", border + panel = luaDigitalInputsLeftDialog, West + panel = luaDigitalInputsRightDialog, East + + dialog = auxInputsDialog, "Lua Analog Inputs" + field = "ADC #1", auxAnalogInputs1 + field = "ADC #2", auxAnalogInputs2 + field = "ADC #3", auxAnalogInputs3 + field = "ADC #4", auxAnalogInputs4 + field = "ADC #5", auxAnalogInputs5 + field = "ADC #6", auxAnalogInputs6 + field = "ADC #7", auxAnalogInputs7 + field = "ADC #8", auxAnalogInputs8 + + dialog = luaOutputs, "Lua Outputs" + field = "!Use rusEFI console for Lua script editing" + field = "#Call startPwm to initialize, then call" + field = "#setPwmDuty and setPwmFreq to vary duty/freq" + field = "#See rusefi.com/s/lua for more info" + field = "output #0", luaOutputPins1 + field = "output #1", luaOutputPins2 + field = "output #2", luaOutputPins3 + field = "output #3", luaOutputPins4 + field = "output #4", luaOutputPins5 + field = "output #5", luaOutputPins6 + field = "output #6", luaOutputPins7 + field = "output #7", luaOutputPins8 + + dialog = transmissionPanel + field = "TCU Enabled" tcuEnabled + field = "Gear Controller" gearControllerMode, { tcuEnabled } + field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } + + dialog = shiftSolenoidPanel, "Shift Solenoids" + field = "Solenoid 1 output" tcu_solenoid1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 1 output Mode" tcu_solenoid_mode1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output" tcu_solenoid2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output Mode" tcu_solenoid_mode2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output" tcu_solenoid3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output Mode" tcu_solenoid_mode3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output" tcu_solenoid4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output Mode" tcu_solenoid_mode4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output" tcu_solenoid5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output Mode" tcu_solenoid_mode5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output" tcu_solenoid6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output Mode" tcu_solenoid_mode6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "3-2 Solenoid output" tcu_32_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid output mode" tcu_32_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid Frequency" tcu_32_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = otherSolenoidPanel, "Other Solenoids" + field = "TCC On/Off Solenoid Pin" tcu_tcc_onoff_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC On/Off Solenoid Pin Mode" tcu_tcc_onoff_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin" tcu_tcc_pwm_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin Mode" tcu_tcc_pwm_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Frequency" tcu_tcc_pwm_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin" tcu_pc_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin Mode" tcu_pc_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Frequency" tcu_pc_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = buttonShiftInputPanel, "Switch/Button Shift" + field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + + dialog = inputSpeedSensorPanel, "Input Speed Sensor" + field = "Input Pin", tcuInputSpeedSensorPin + field = "Filter parameter", issFilterReciprocal, { tcuInputSpeedSensorPin != 0 } + field = "Tooth Count", tcuInputSpeedSensorTeeth + +dialog = rangeMatrixInputPanel, "Range Selector Inputs" + field = "Input 1 Pin", tcu_rangeInput1, { tcuEnabled } + field = "Input 1 Pin Mode", tcu_rangeInputMode1, { tcuEnabled } + field = "Input 2 Pin", tcu_rangeInput2, { tcuEnabled } + field = "Input 2 Pin Mode", tcu_rangeInputMode2, { tcuEnabled } + field = "Input 3 Pin", tcu_rangeInput3, { tcuEnabled } + field = "Input 3 Pin Mode", tcu_rangeInputMode3, { tcuEnabled } + field = "Input 4 Pin", tcu_rangeInput4, { tcuEnabled } + field = "Input 4 Pin Mode", tcu_rangeInputMode4, { tcuEnabled } + +dialog = tcuControls, "Transmission Settings" + panel = transmissionPanel + panel = shiftSolenoidPanel + panel = otherSolenoidPanel + + dialog = gearControls, "Gear Selection Settings" + panel = buttonShiftInputPanel + panel = rangeMatrixInputPanel + + dialog = inputSpeedSensor, "Input Speed Sensor" + panel = inputSpeedSensorPanel + + dialog = tccCurves, "TCC Lock/Unlock Speed" + panel = tccLockCurve + + dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State" + panel = pcPerGearCurve + + dialog = pcPerShiftDialog, "Line Pressure Per Shift" + panel = pcPerShiftCurve + + dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed" + panel = 32Curve + + dialog = rangeMatrixDocumentation, "Cell Values" + field = "0 = this pin must be low to reach this state" + field = "1 = this pin must be high to reach this state" + field = "2 = this pin is ignored for reaching this state" + field = "3 = this state is unreachable" + + dialog = rangeMatrixDialog, "Range Selector Input Matrix", border + panel = rangeMatrix, Center + panel = rangeMatrixDocumentation, South + +;Boost Open Loop + + dialog = boostDialog, "" + field = "Enable", isBoostControlEnabled + field = "Control Mode", boostType, { isBoostControlEnabled } + field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled } + field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } + field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } + field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled } + field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled } + field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled } + field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled } + + dialog = boostOpenLoopDialog, "", border + panel = boostTableTbl, Center + + dialog = boostOpenLoopGearAdderDialog, "", border + panel = boostOpenLoopGearAdderCurve, Center + +;Boost Closed Loop + + dialog = boostPidDialog, "" + topicHelp = "boostPidHelp" + field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 } + field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } + field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } + field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } + field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } + field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } + + dialog = boostTargetDialog, "", card + panel = boostTable2Tbl + + dialog = boostEtbPid, "" + field = "This PID is controlling how DC motor reaches desired position" + field = "" + field = "!This section is for advanced users only!" + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } + field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } + field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } + field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } + field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } + + help = boostPidHelp, "Boost Control PID" + text = "P = % per kPa error" + text = "I = % per kPa-seconds" + text = "D = % per kPa/sec" + text = "" + text = "If the boost error is 5kpa, and your P is set to 2, it will make a correction of 10%." + text = "If the boost error has been 5kPa for 2 second (10 kPa-seconds) and I is set to 0.1, it will make a correction of 1%" + text = "If the boost is changing at 10kPa/s and D is set to 0.5, it will make a correction of 5%." + text = "Those three terms are then added together, and limited by the PID min/max settings." + text = "" + text = "That is then added to the value from the open loop table, and sent to PWM the valve." + + help = veTableDialogHelp, "Volumetric Efficiency" + text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode. VE incorporates pressure ratio as measured by MAP sensor in boost (no VE ever above 105%ish)" + webHelp = "https://rusefi.com/s/fuel" + + help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" + text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." + + help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" + text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" + + help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" + text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." + + help = iatFuelCorrCurveHelp, "IAT Fuel Correction" + text = "Charge temperature estimation coefficient is the more proper way to handle IAT for fuel purposes" + text = "Open question who if anyone needs IAT Fuel Correction when" + + help = fuelHelp, "Fuel Control" + text = "More about fuel control on the web" + webHelp = "https://rusefi.com/s/fuel" + + help = triggerHelp, "Trigger Settings" + text = "More about Trigger Settings on the web" + webHelp = "https://rusefi.com/s/trigger" + + help = etbHelp, "ETB Control" + text = "More about electronic throttle body on the web" + webHelp = "https://rusefi.com/s/etb" + + help = vrThresholdHelp, "VR Sensor Threshold" + text = "This is about rusEFI VR Discrete decoder" + webHelp = "https://rusefi.com/" + + help = tpsTpsHelp, "Acceleration Enrichment" + text = "More about Tps To Tps acceleration on the web" + webHelp = "https://rusefi.com/s/tpstps" + + help = baseHelp, "Base Settings Control" + text = "More about rusefi on the web" + webHelp = "https://rusefi.com/" + + dialog = veTableDialog + topicHelp = "veTableDialogHelp" + panel = veTableTbl, South + + dialog = veTableDialog3D, "VE Table" + topicHelp = "veTableDialogHelp" + panel = veTableMap, South + + dialog = etbPidDialog, "PID settings" + field = "pFactor", etb_pFactor + field = "iFactor", etb_iFactor + field = "dFactor", etb_dFactor + field = "pid min", etb_minValue + field = "pid max", etb_maxValue + field = "iTermMin", etb_iTermMin + field = "iTermMax", etb_iTermMax + + dialog = etbIdleDialog, "ETB Idle" + field = "ETB idle maximum angle", etbIdleThrottleRange + + dialog = etbDialogLeft + field = "https://rusefi.com/s/etb" + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped + field = "Disable ETB Motor", pauseEtbControl + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "PWM Frequency", etbFreq + field = "Minimum ETB position", etbMinimumPosition + field = "Maximum ETB position", etbMaximumPosition + field = "Jam detection integrator max", etbJamIntegratorLimit + field = "Jam detection timeout period", etbJamTimeout + field = "Duty Averaging Length", etbExpAverageLength + field = "Rate of change Averaging Length", etbRocExpAverageLength + ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility + ; criteria for the same panel when used in multiple places + ; todo: report bug to TS? + ; another todo: split panel into two panels so that we can enable/disable h-bridge #1 separately from h-bridge #2 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + commandButton = "Reset ETB", cmd_etb_reset + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = testSpark, "Spark" + commandButton = "Spark #1", cmd_test_spk1 + commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } + commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } + commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } + commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } + commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } + commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } + commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } + commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } + commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } + commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } + commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testMisc, "Misc" + commandButton = "A/C Relay", cmd_test_ac_relay + commandButton = "Idle Air Valve", cmd_test_idle_valve + commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve + commandButton = "Stop Engine", cmd_stop_engine + commandButton = "Write Config", cmd_write_config + commandButton = "Reset ECU", cmd_reset_controller + commandButton = "Reset to DFU", cmd_dfu + commandButton = "Reset to OpenBLT", cmd_openblt + commandButton = "No flash Burn mode", cmd_burn_without_flash + + ; bench test + dialog = ioTest, "Bench Test & Commands", xAxis + panel = testSpark + panel = testInjectors + panel = testOther + panel = testLuaOut + panel = testMisc + + ; Injectors test + dialog = injTest_l, "Output test modes", yAxis + field = "Iterations", benchTestCount + field = "ON time", benchTestOffTime + field = "OFF time", benchTestOnTime + + dialog = injTest_r, "Reference gauges", yAxis + gauge = VBattGauge,North + gauge = testBenchIterGauge,South + + dialog = injTest, "", xAxis + panel = injTest_l + panel = injTest_r + + dialog = widebandConfig, "rusEFI Wideband Config" + field = "!Please connect exactly one wideband controller before pressing these buttons!" + commandButton = "Update Firmware", cmd_wideband_firmare_update + field = "!These buttons will set ALL connected controllers to the specified index." + field = "!Disconnect all controllers you don't want to set!" + commandButton = "Set Index 0", cmd_set_wideband_idx_0 + commandButton = "Set Index 1", cmd_set_wideband_idx_1 + field = "Wideband CAN bus", widebandOnSecondBus + field = "Force O2 sensor heating", forceO2Heating + + dialog = engineTypeDialog, "Popular vehicles" + field = "!These buttons send a command to rusEFI controller to apply preset values" + field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" + + commandButton = "Honda OBD1", cmd_set_engine_type_HONDA_OBD1 + +; commandButton = "Mitsubishi 3A92", cmd_set_engine_type_MITSUBISHI_3A92 +; commandButton = "Mitsubishi 4G93", cmd_set_engine_type_MITSUBISHI_4G93 + + + + commandButton = "Fuel Bench", cmd_set_engine_type_FUEL_BENCH + + + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorRpm + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim +; field = "" +; field = "digipot spi", digitalPotentiometerSpiDevice +; field = "digipot CS #0", digitalPotentiometerChipSelect1 +; field = "digipot CS #1", digitalPotentiometerChipSelect2 +; field = "digipot CS #2", digitalPotentiometerChipSelect3 +; field = "digipot CS #3", digitalPotentiometerChipSelect4 + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + panel = IgnSkipTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot2, "Experimental 2" + field = dacOutputPins1, dacOutputPins1 + field = dacOutputPins2, dacOutputPins2 + field = luaCanRxWorkaround, luaCanRxWorkaround + field = "Read RPM matching VSS profile", canInputBCM + field = auxSpeed1Multiplier, auxSpeed1Multiplier + field = useAuxSpeedForSlipRatio, useAuxSpeedForSlipRatio + field = useVssAsSecondWheelSpeed, useVssAsSecondWheelSpeed + field = brakeMeanEffectivePressureDifferential, brakeMeanEffectivePressureDifferential + + dialog = mc33810Dialog, "MC33810 IGN/INJ driver" + field = "SPI settings" + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "Chip configuration" + field = "Maximum dwell (IGN pins mode only)", mc33810maxDwellTimer + field = "Disable auto recovery from OV/UV", mc33810DisableRecoveryMode + field = "Disable ING mode if you have no IGBT/MOSFETs on board and no feedback routed to IC" + field = "GD0 output disable IGN mode", mc33810Gpgd0Mode + field = "GD1 output disable IGN mode", mc33810Gpgd1Mode + field = "GD2 output disable IGN mode", mc33810Gpgd2Mode + field = "GD3 output disable IGN mode", mc33810Gpgd3Mode + commandButton = "Reinitialize", cmd_mc33810_init + + indicatorPanel = acrActiveDiagPanel, 1, { 1 } + indicator = { acrActive }, "ACR off", "ACR on", white, black, green, black + + dialog = harleyAcr, "Harley Automatic Compression Release" + field = "Pin", acrPin + field = "Pin 2", acrPin2 + field = "cutFuelInAcr", cutFuelInAcr + field = "#ACR is disabled after the specified number" + field = "#of revolutions, plus degrees of engine phase" + field = "Disable after revolutions", acrRevolutions + field = "Disable after engine phase", acrDisablePhase + commandButton = "ACR #1", cmd_test_acr_valve + commandButton = "ACR #2", cmd_test_acr2_valve + panel = acrActiveDiagPanel + + dialog = kLineDialog, "K Line" + field = kLineBaudRate, kLineBaudRate + field = verboseKLine, verboseKLine + field = hondaK, hondaK + field = kLineDoHondaSend, kLineDoHondaSend + field = kLinePeriodUs, kLinePeriodUs + + dialog = parkingLot, "Experimental/Broken" +; field = uiMode, uiMode + field = auxiliarySetting1, auxiliarySetting1 + field = can1ListenMode, can1ListenMode + field = can2ListenMode, can2ListenMode + field = rethrowHardFault, rethrowHardFault + field = canGpioType, canGpioType + field = "I understand ECU Locking", yesUnderstandLocking + field = "! Use console for unlocking" + field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } + field = verboseQuad, verboseQuad +; field = useEeprom, useEeprom + field = "#System hacks" + field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases + field = watchOutForLinearTime, watchOutForLinearTime + field = "TS over CAN debug", verboseIsoTp + field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex + field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning + field = "Warning Message", warning_message + field = "Ford/Toyota redundant TPS mode", useFordRedundantTps + field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps} + field = "Ford/Toyota redundant PPS mode", useFordRedundantPps + field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps} + + field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} + field = "BRZ/FRS/GT86 pedal", allowIdenticalPps + field = "Artificial Misfire", artificialTestMisfire + field = "Always use instant RPM", alwaysInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "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 + + 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} + commandButton = "HPFP Valve", cmd_test_hpfp_valve + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + + indicatorPanel = IgnitionDiagPanel, 1, { 1 } + indicator = { ignitorDiagnostic1 > 1 }, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, green, black, red, black + indicator = { ignitorDiagnostic2 > 1 }, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, green, black, red, black + indicator = { ignitorDiagnostic3 > 1 }, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, green, black, red, black + indicator = { ignitorDiagnostic4 > 1 }, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, green, black, red, black + indicator = { ignitorDiagnostic5 > 1 }, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, green, black, red, black + indicator = { ignitorDiagnostic6 > 1 }, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, green, black, red, black + indicator = { ignitorDiagnostic7 > 1 }, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, green, black, red, black + indicator = { ignitorDiagnostic8 > 1 }, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, green, black, red, black + indicator = { ignitorDiagnostic9 > 1 }, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, green, black, red, black + indicator = { ignitorDiagnostic10 > 1 }, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, green, black, red, black + indicator = { ignitorDiagnostic11 > 1 }, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, green, black, red, black + indicator = { ignitorDiagnostic12 > 1 }, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, green, black, red, black + + indicatorPanel = InjectionDiagPanel, 1, { 1 } + indicator = { injectorDiagnostic1 > 1 }, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, green, black, red, black + indicator = { injectorDiagnostic2 > 1 }, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, green, black, red, black + indicator = { injectorDiagnostic3 > 1 }, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, green, black, red, black + indicator = { injectorDiagnostic4 > 1 }, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, green, black, red, black + indicator = { injectorDiagnostic5 > 1 }, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, green, black, red, black + indicator = { injectorDiagnostic6 > 1 }, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, green, black, red, black + indicator = { injectorDiagnostic7 > 1 }, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, green, black, red, black + indicator = { injectorDiagnostic8 > 1 }, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, green, black, red, black + indicator = { injectorDiagnostic9 > 1 }, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, green, black, red, black + indicator = { injectorDiagnostic10 > 1 }, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, green, black, red, black + indicator = { injectorDiagnostic11 > 1 }, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, green, black, red, black + indicator = { injectorDiagnostic12 > 1 }, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, green, black, red, black + + dialog = OutputDiagDialog, "Output diagnostic", xAxis + panel = IgnitionDiagPanel + panel = InjectionDiagPanel + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/rusefi_hellenMiataNB1.ini b/firmware/tunerstudio/generated/rusefi_hellenMiataNB1.ini new file mode 100644 index 0000000000..869fbaec35 --- /dev/null +++ b/firmware/tunerstudio/generated/rusefi_hellenMiataNB1.ini @@ -0,0 +1,9212 @@ +; This is a TunerStudio project for the rusEFI.com engine management system +; +; This file has been generated by invoking gen_config.bat. +; The input files are +; rusefi.input the common template +; rusefi_config.txt the project specific file +; +; In TunerStudio some fields have little question mark on the left of the name for additional field tips. +; Those tips are defined in ../integration/rusefi_config.txt +; +; For example +; +; float bias_resistor;Pull-up resistor value on your board;"Ohm" +; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip +; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio +; +; +; field = "# blue text" +; field = "! red text" +; field = "normal text" +; +; pok +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + settingGroup = connectivityProfile, "Protocol Profile" + settingOption = CONN_SLOW, "Slower / Wireless" + settingOption = CONN_FAST, "High Speed / USB" + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI master.2024.03.06.hellenMiataNB1.1369714556" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI master.2024.03.06.hellenMiataNB1.1369714556" ; signature is expected to be 7 or more characters. + + ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C + useLegacyFTempUnits = false + ignoreMissingBitOptions = true + + ; Optimize comms for fast rusEFI ECUs + noCommReadDelay = true; + defaultRuntimeRecordPerSec = 100; +#if CONN_SLOW +#else + maxUnusedRuntimeRange = 1000; +#endif + + ; Set default IP/port to our IP/port + defaultIpAddress = localhost + defaultIpPort = 29000; + +[Constants] +; new packet serial format with CRC + messageEnvelopeFormat = msEnvelope_1.0 + + endianness = little + nPages = 1 + + pageIdentifier = "\x00\x00" + pageReadCommand = "R%2o%2c" + burnCommand = "B" + pageActivate = "P" + pageValueWrite = "W%2o%v" + pageChunkWrite = "C%2o%2c%v" + crc32CheckCommand = "k%2o%2c" + retrieveConfigError = "e" + +;communication settings + 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 +#define gpio_list="NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +#define switch_input_pin_e_list="NONE","INVALID","INVALID","TPS1","INVALID","PPS1","INVALID","INVALID","INVALID","3S - EGR BOOST IN","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2A - Pressure Input","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4C - IN TEMP/PPS2","1P - AC Switch","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3I - Clutch","1V - Neutral","INVALID","INVALID","INVALID","INVALID","3J - O2S2","INVALID","INVALID","INVALID","INVALID","INVALID","1F - Brake/RES1","1G - Steering/RES2" +#define output_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","1I AC Fan Relay","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3D - MAP","INVALID","INVALID","INVALID","INVALID","ETB EN","ETB +","ETB -","INVALID","INVALID","INVALID","INVALID","3G - IGN_1 (1&4)","INVALID","INVALID","INVALID","INVALID","INVALID","1U - O2H","INVALID","INVALID","INVALID","INVALID","INVALID","4E - VVT","3Z - INJ_4","3Y - INJ_3","1R - ECF","2K - TACH","2Q - IDLE","1O - ALTERN","INVALID","INVALID","INVALID","INVALID","INVALID","3H - IGN_2 (2&3)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3T/4D - BOOST OUT","INVALID","3Q - VICS","INVALID","INVALID","INVALID","2M US / 2P EUROPE - FPUMP","INVALID","1E - Check Engine Light","INVALID","INVALID","3W - INJ_1","3X - INJ_2","INVALID","INVALID","1S - AC Relay","1Q - Aternator Warning Lamp","3V - O2H2" +#define brain_input_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2H - CAM","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2J - CRANK","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4B - DIGITAL/FLEX","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2D - VSS" +#define adc_channel_e_list="NONE","2C - O2S","TPS1","intMAP","1G - Steering/RES2","3E - TPS","1B - Battery Sense","2H - CAM","3S - EGR BOOST IN","2A - Pressure Input","2J - CRANK","2L - MAF","3D - MAP","2E - Coolant","2B - IAT","4C - IN TEMP/PPS2","1P - AC Switch" + +; CONFIG_DEFINITION_START +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:34 UTC 2024 + +pageSize = 22236 +page = 1 +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 +sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 +launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 +rpmHardLimit = scalar, U16, 8, "rpm", 1, 0, 0, 20000, 0 +engineSnifferRpmThreshold = scalar, U16, 10, "RPM", 1, 0, 0, 30000, 0 +multisparkMaxRpm = scalar, U08, 12, "rpm", 50.0, 0, 0, 3000, 0 +maxAcRpm = scalar, U08, 13, "rpm", 50.0, 0, 0, 10000, 0 +maxAcTps = scalar, U08, 14, "%", 1, 0, 0, 100, 0 +maxAcClt = scalar, U08, 15, "deg C", 1, 0, 0, 150, 0 +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 +injectorSecondary_flow = scalar, F32, 120, "cm3/min", 1, 0, 0, 99999, 2 +injectorSecondary_battLagCorrBins = array, F32, 124, [8], "volts", 1, 0, 0, 20, 2 +injectorSecondary_battLagCorr = array, F32, 156, [8], "ms", 1, 0, 0, 50, 2 +isForcedInduction = bits, U32, 188, [0:0], "false", "true" +useFordRedundantTps = bits, U32, 188, [1:1], "false", "true" +enableKline = bits, U32, 188, [2:2], "false", "true" +overrideTriggerGaps = bits, U32, 188, [3:3], "false", "true" +enableFan1WithAc = bits, U32, 188, [4:4], "false", "true" +enableFan2WithAc = bits, U32, 188, [5:5], "false", "true" +disableFan1WhenStopped = bits, U32, 188, [6:6], "false", "true" +disableFan2WhenStopped = bits, U32, 188, [7:7], "false", "true" +enableTrailingSparks = bits, U32, 188, [8:8], "false", "true" +etb_use_two_wires = bits, U32, 188, [9:9], "false", "true" +isDoubleSolenoidIdle = bits, U32, 188, [10:10], "false", "true" +useEeprom = bits, U32, 188, [11:11], "false", "true" +useCicPidForIdle = bits, U32, 188, [12:12], "false", "true" +useTLE8888_cranking_hack = bits, U32, 188, [13:13], "false", "true" +kickStartCranking = bits, U32, 188, [14:14], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 188, [15:15], "false", "true" +launchControlEnabled = bits, U32, 188, [16:16], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 188, [17:17], "with filter", "without filter" +antiLagEnabled = bits, U32, 188, [18:18], "false", "true" +useRunningMathForCranking = bits, U32, 188, [19:19], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 188, [20:20], "false", "true" +useTLE8888_stepper = bits, U32, 188, [21:21], "false", "true" +usescriptTableForCanSniffingFiltering = bits, U32, 188, [22:22], "false", "true" +verboseCan = bits, U32, 188, [23:23], "Do not print", "Print all" +artificialTestMisfire = bits, U32, 188, [24:24], "No thank you", "Danger Mode" +useFordRedundantPps = bits, U32, 188, [25:25], "false", "true" +cltSensorPulldown = bits, U32, 188, [26:26], "false", "true" +iatSensorPulldown = bits, U32, 188, [27:27], "false", "true" +allowIdenticalPps = bits, U32, 188, [28:28], "false", "true" +overrideVvtTriggerGaps = bits, U32, 188, [29:29], "false", "true" +useSpiImu = bits, U32, 188, [30:30], "false", "true" +enableStagedInjection = bits, U32, 188, [31:31], "false", "true" +tpsMin = scalar, S16, 192, "ADC", 1, 0, 0, 1023, 0 +tpsMax = scalar, S16, 194, "ADC", 1, 0, 0, 1023, 0 +tpsErrorDetectionTooLow = scalar, S16, 196, "%", 1, 0, -10, 0, 0 +tpsErrorDetectionTooHigh = scalar, S16, 198, "%", 1, 0, 100, 110, 0 +cranking_baseFuel = scalar, F32, 200, "mg", 1, 0, 0, 500, 1 +cranking_rpm = scalar, S16, 204, "RPM", 1, 0, 0, 12000, 0 +ignitionDwellForCrankingMs = scalar, F32, 208, "ms", 1, 0, 0, 200, 1 +etbRevLimitStart = scalar, U16, 212, "rpm", 1, 0, 0, 15000, 0 +etbRevLimitRange = scalar, U16, 214, "rpm", 1, 0, 0, 2000, 0 +map_samplingAngleBins = array, F32, 216, [8], "", 1, 0, 0, 18000, 2 +map_samplingAngle = array, F32, 248, [8], "deg", 1, 0, -720, 720, 2 +map_samplingWindowBins = array, F32, 280, [8], "", 1, 0, 0, 18000, 2 +map_samplingWindow = array, F32, 312, [8], "deg", 1, 0, -720, 720, 2 +map_sensor_lowValue = scalar, F32, 344, "kpa", 1, 0, -400, 800, 2 +map_sensor_highValue = scalar, F32, 348, "kpa", 1, 0, -400, 800, 2 +map_sensor_type = bits, U08, 352, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +map_sensor_hwChannel = bits, U08, 353, [0:5], $adc_channel_e_list +clt_tempC_1 = scalar, F32, 356, "*C", 1, 0, -55, 200, 1 +clt_tempC_2 = scalar, F32, 360, "*C", 1, 0, -55, 200, 1 +clt_tempC_3 = scalar, F32, 364, "*C", 1, 0, -55, 200, 1 +clt_resistance_1 = scalar, F32, 368, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_2 = scalar, F32, 372, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_3 = scalar, F32, 376, "Ohm", 1, 0, 0, 1000000, 1 +clt_bias_resistor = scalar, F32, 380, "Ohm", 1, 0, 0, 200000, 1 +clt_adcChannel = bits, U08, 384, [0:5], $adc_channel_e_list +iat_tempC_1 = scalar, F32, 388, "*C", 1, 0, -55, 200, 1 +iat_tempC_2 = scalar, F32, 392, "*C", 1, 0, -55, 200, 1 +iat_tempC_3 = scalar, F32, 396, "*C", 1, 0, -55, 200, 1 +iat_resistance_1 = scalar, F32, 400, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_2 = scalar, F32, 404, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_3 = scalar, F32, 408, "Ohm", 1, 0, 0, 1000000, 1 +iat_bias_resistor = scalar, F32, 412, "Ohm", 1, 0, 0, 200000, 1 +iat_adcChannel = bits, U08, 416, [0:5], $adc_channel_e_list +launchTimingRetard = scalar, S32, 420, "deg", 1, 0, -180, 180, 2 +hip9011PrescalerAndSDO = scalar, S32, 424, "integer", 1, 0, 0, 32, 0 +knockBandCustom = scalar, F32, 428, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, U16, 432, "L", 0.001, 0, 0, 65, 3 +triggerSimulatorRpm = scalar, U16, 434, "RPM", 1, 0, 0, 30000, 0 +cylindersCount = scalar, U32, 436, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 440, [0:6], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "1-5-4-8-3-7-2-6", "fo33", "fo34", "fo35", "fo36", "fo37", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +communityCommsLedPid = bits, U16, 442, [0:7], $gpio_list +cylinderBore = scalar, F32, 444, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 448, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua", "INVALID", "INVALID", "INVALID", "INVALID" +ALSMaxTPS = scalar, U08, 449, "%", 1, 0, 0, 10, 0 +crankingInjectionMode = bits, U08, 450, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 451, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 452, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 454, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 455, "", 1, 0, 0, 250, 0 +crankingTimingAngle = scalar, F32, 456, "deg", 1, 0, -30, 30, 0 +ignitionMode = bits, U08, 460, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" +gapTrackingLengthOverride = scalar, S08, 461, "count", 1, 0, 1, 18, 0 +maxIdleVss = scalar, U08, 462, "kph", 1, 0, 0, 100, 0 +minOilPressureAfterStart = scalar, U16, 464, "kPa", 1, 0, 0, 1000, 0 +timingMode = bits, U08, 466, [0:0], "dynamic", "fixed" +fixedModeTiming = scalar, F32, 468, "RPM", 1, 0, 0, 3000, 0 +globalTriggerAngleOffset = scalar, F32, 472, "deg btdc", 1, 0, -720, 720, 0 +analogInputDividerCoefficient = scalar, F32, 476, "coef", 1, 0, 0.01, 10, 2 +vbattDividerCoeff = scalar, F32, 480, "coef", 1, 0, 0.01, 99, 2 +fanOnTemperature = scalar, F32, 484, "deg C", 1, 0, 0, 150, 0 +fanOffTemperature = scalar, F32, 488, "deg C", 1, 0, 0, 150, 0 +acrPin = bits, U16, 492, [0:8], $output_pin_e_list +driveWheelRevPerKm = scalar, F32, 496, "revs/km", 1, 0, 100, 1000, 1 +canNbcType = bits, U08, 500, [0:4], "None", "FIAT", "VAG", "MAZDA RX8", "BMW E46", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "MS Simplified Broadcast", "type 14", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canSleepPeriodMs = scalar, S32, 504, "ms", 1, 0, 0, 1000, 2 +camDecoder2jzPrecision = scalar, U08, 508, "", 1, 0, 0, 100, 0 +justATempTest = scalar, U08, 509, "", 1, 0, 0, 100, 0 +unusedHere333 = scalar, U08, 510, "", 1, 0, 0, 100, 0 +unusedHere334 = scalar, U08, 511, "", 1, 0, 0, 100, 0 +byFirmwareVersion = scalar, S32, 512, "index", 1, 0, 0, 300, 0 +tps1_1AdcChannel = bits, U08, 516, [0:5], $adc_channel_e_list +vbattAdcChannel = bits, U08, 517, [0:5], $adc_channel_e_list +fuelLevelSensor = bits, U08, 518, [0:5], $adc_channel_e_list +tps2_1AdcChannel = bits, U08, 519, [0:5], $adc_channel_e_list +idle_derivativeFilterLoss = scalar, F32, 520, "x", 1, 0, -1000000, 1000000, 4 +trailingSparkAngle = scalar, S32, 524, "angle", 1, 0, 0, 720, 0 +trigger_type = bits, U32, 528, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +trigger_customTotalToothCount = scalar, S32, 532, "number", 1, 0, 1, 300, 0 +trigger_customSkippedToothCount = scalar, S32, 536, "number", 1, 0, 0, 300, 0 +airByRpmTaper = scalar, F32, 540, "%", 1, 0, 0, 50, 1 +hip9011SpiDevice = bits, U08, 544, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +boostControlSafeDutyCycle = scalar, U08, 545, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 546, [0:5], $adc_channel_e_list +acrRevolutions = scalar, U08, 547, "", 1, 0, 0, 100, 0 +unused4bytesHere = scalar, F32, 548, "", 1, 0, 0, 100, 0 +adcVcc = scalar, F32, 552, "volts", 1, 0, 0, 6, 3 +mapCamDetectionAnglePosition = scalar, F32, 556, "Deg", 1, 0, 0, 360, 0 +camInputs1 = bits, U16, 560, [0:7], $brain_input_pin_e_list +camInputs2 = bits, U16, 562, [0:7], $brain_input_pin_e_list +camInputs3 = bits, U16, 564, [0:7], $brain_input_pin_e_list +camInputs4 = bits, U16, 566, [0:7], $brain_input_pin_e_list +afr_hwChannel = bits, U08, 568, [0:5], $adc_channel_e_list +afr_hwChannel2 = bits, U08, 569, [0:5], $adc_channel_e_list +afr_v1 = scalar, F32, 572, "volts", 1, 0, 0, 10, 2 +afr_value1 = scalar, F32, 576, "AFR", 1, 0, 0, 1000, 2 +afr_v2 = scalar, F32, 580, "volts", 1, 0, 0, 10, 2 +afr_value2 = scalar, F32, 584, "AFR", 1, 0, 0, 1000, 2 +throttlePedalPositionAdcChannel = bits, U08, 588, [0:5], $adc_channel_e_list +etbSplit = scalar, U08, 589, "%", 0.1, 0, 0, 20, 1 +tle6240_cs = bits, U16, 590, [0:7], $gpio_list +tle6240_csPinMode = bits, U08, 592, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33810_csPinMode = bits, U08, 593, [0:1], "default", "default inverted", "open collector", "open collector inverted" +throttlePedalUpPin = bits, U16, 594, [0:7], $switch_input_pin_e_list +baroSensor_lowValue = scalar, F32, 596, "kpa", 1, 0, -400, 800, 2 +baroSensor_highValue = scalar, F32, 600, "kpa", 1, 0, -400, 800, 2 +baroSensor_type = bits, U08, 604, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +baroSensor_hwChannel = bits, U08, 605, [0:5], $adc_channel_e_list +idle_solenoidFrequency = scalar, S32, 608, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 612, [0:8], $output_pin_e_list +idle_stepperDirectionPin = bits, U16, 614, [0:7], $gpio_list +idle_stepperStepPin = bits, U16, 616, [0:7], $gpio_list +idle_solenoidPinMode = bits, U08, 618, [0:1], "default", "default inverted", "open collector", "open collector inverted" +manIdlePosition = scalar, F32, 620, "%", 1, 0, 0, 100, 0 +knockRetardAggression = scalar, U08, 624, "%", 0.1, 0, 0, 20, 1 +knockRetardReapplyRate = scalar, U08, 625, "deg/s", 0.1, 0, 0, 10, 1 +engineSyncCam = bits, S08, 626, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" +vssFilterReciprocal = scalar, U08, 627, "", 1, 0, 3, 200 0 +vssGearRatio = scalar, U16, 628, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 630, "count", 1, 0, 1, 100, 0 +idleVeOverrideMode = bits, U08, 631, [0:1], "None", "MAP", "TPS", "INVALID" +l9779_cs = bits, U16, 632, [0:7], $gpio_list +injectionPins1 = bits, U16, 634, [0:8], $output_pin_e_list +injectionPins2 = bits, U16, 636, [0:8], $output_pin_e_list +injectionPins3 = bits, U16, 638, [0:8], $output_pin_e_list +injectionPins4 = bits, U16, 640, [0:8], $output_pin_e_list +injectionPins5 = bits, U16, 642, [0:8], $output_pin_e_list +injectionPins6 = bits, U16, 644, [0:8], $output_pin_e_list +injectionPins7 = bits, U16, 646, [0:8], $output_pin_e_list +injectionPins8 = bits, U16, 648, [0:8], $output_pin_e_list +injectionPins9 = bits, U16, 650, [0:8], $output_pin_e_list +injectionPins10 = bits, U16, 652, [0:8], $output_pin_e_list +injectionPins11 = bits, U16, 654, [0:8], $output_pin_e_list +injectionPins12 = bits, U16, 656, [0:8], $output_pin_e_list +ignitionPins1 = bits, U16, 658, [0:8], $output_pin_e_list +ignitionPins2 = bits, U16, 660, [0:8], $output_pin_e_list +ignitionPins3 = bits, U16, 662, [0:8], $output_pin_e_list +ignitionPins4 = bits, U16, 664, [0:8], $output_pin_e_list +ignitionPins5 = bits, U16, 666, [0:8], $output_pin_e_list +ignitionPins6 = bits, U16, 668, [0:8], $output_pin_e_list +ignitionPins7 = bits, U16, 670, [0:8], $output_pin_e_list +ignitionPins8 = bits, U16, 672, [0:8], $output_pin_e_list +ignitionPins9 = bits, U16, 674, [0:8], $output_pin_e_list +ignitionPins10 = bits, U16, 676, [0:8], $output_pin_e_list +ignitionPins11 = bits, U16, 678, [0:8], $output_pin_e_list +ignitionPins12 = bits, U16, 680, [0:8], $output_pin_e_list +injectionPinMode = bits, U08, 682, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 683, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 684, [0:8], $output_pin_e_list +fuelPumpPinMode = bits, U08, 686, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gapVvtTrackingLengthOverride = scalar, S08, 687, "count", 1, 0, 1, 4, 0 +malfunctionIndicatorPin = bits, U16, 688, [0:8], $output_pin_e_list +malfunctionIndicatorPinMode = bits, U08, 690, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 691, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 692, [0:8], $output_pin_e_list +clutchDownPin = bits, U16, 694, [0:7], $switch_input_pin_e_list +alternatorControlPin = bits, U16, 696, [0:8], $output_pin_e_list +alternatorControlPinMode = bits, U08, 698, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 699, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +digitalPotentiometerChipSelect1 = bits, U16, 700, [0:7], $gpio_list +digitalPotentiometerChipSelect2 = bits, U16, 702, [0:7], $gpio_list +digitalPotentiometerChipSelect3 = bits, U16, 704, [0:7], $gpio_list +digitalPotentiometerChipSelect4 = bits, U16, 706, [0:7], $gpio_list +electronicThrottlePin1Mode = bits, U08, 708, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 709, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +debugTriggerSync = bits, U16, 710, [0:7], $gpio_list +digitalPotentiometerSpiDevice = bits, U08, 712, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33972_cs = bits, U16, 714, [0:7], $gpio_list +mc33972_csPinMode = bits, U08, 716, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 717, [0:5], $adc_channel_e_list +tps1_2AdcChannel = bits, U08, 718, [0:5], $adc_channel_e_list +tps2_2AdcChannel = bits, U08, 719, [0:5], $adc_channel_e_list +throttlePedalPositionSecondAdcChannel = bits, U08, 720, [0:5], $adc_channel_e_list +fuelLevelValues = array, U08, 721, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 729, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM", "INVALID" +mc33810_cs1 = bits, U16, 730, [0:7], $gpio_list +idle_antiwindupFreq = scalar, F32, 732, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 736, [0:7], $brain_input_pin_e_list +triggerInputPins2 = bits, U16, 738, [0:7], $brain_input_pin_e_list +mc33_t_min_boost = scalar, U16, 740, "us", 1, 0, 0, 10000, 0 +hip9011CsPinMode = bits, U08, 742, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tachOutputPin = bits, U16, 744, [0:8], $output_pin_e_list +tachOutputPinMode = bits, U08, 746, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 748, [0:8], $output_pin_e_list +sdCardCsPin = bits, U16, 750, [0:7], $gpio_list +canTxPin = bits, U16, 752, [0:7], $gpio_list +canRxPin = bits, U16, 754, [0:7], $gpio_list +throttlePedalUpPinMode = bits, U08, 756, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acIdleExtraOffset = scalar, U08, 757, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 758, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 760, [0:7], $brain_input_pin_e_list +tcuInputSpeedSensorTeeth = scalar, U08, 762, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 764, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 766, "mv", 1, 0, 0, 5000, 0 +idlePositionMin = scalar, U16, 768, "mv", 1, 0, 0, 5000, 0 +idlePositionMax = scalar, U16, 770, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 772, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 776, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 780, [0:7], $gpio_list +triggerSimulatorPins2 = bits, U16, 782, [0:7], $gpio_list +fordInjectorSmallPulseSlope = scalar, U16, 784, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 786, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 787, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 788, [0:5], $adc_channel_e_list +o2heaterPin = bits, U16, 790, [0:8], $output_pin_e_list +o2heaterPinModeTodO = bits, U08, 792, [0:1], "default", "default inverted", "open collector", "open collector inverted" +lambdaProtectionMinRpm = scalar, U08, 793, "RPM", 100.0, 0, 0, 25000, 0 +lambdaProtectionMinLoad = scalar, U08, 794, "%", 10.0, 0, 0, 1000, 0 +is_enabled_spi_1 = bits, U32, 796, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 796, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 796, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 796, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 796, [4:4], "11 bit", "29 bit" +rethrowHardFault = bits, U32, 796, [5:5], "false", "true" +isHip9011Enabled = bits, U32, 796, [6:6], "false", "true" +requireFootOnBrakeToCrank = bits, U32, 796, [7:7], "false", "true" +verboseQuad = bits, U32, 796, [8:8], "false", "true" +useStepperIdle = bits, U32, 796, [9:9], "false", "true" +enabledStep1Limiter = bits, U32, 796, [10:10], "false", "true" +useTpicAdvancedMode = bits, U32, 796, [11:11], "false", "true" +lambdaProtectionEnable = bits, U32, 796, [12:12], "false", "true" +verboseTLE8888 = bits, U32, 796, [13:13], "false", "true" +enableVerboseCanTx = bits, U32, 796, [14:14], "false", "true" +etb1configured = bits, U32, 796, [15:15], "false", "true" +etb2configured = bits, U32, 796, [16:16], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 796, [17:17], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 796, [18:18], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 796, [19:19], "false", "true" +coastingFuelCutEnabled = bits, U32, 796, [20:20], "false", "true" +useIacTableForCoasting = bits, U32, 796, [21:21], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 796, [22:22], "false", "true" +useIdleTimingPidControl = bits, U32, 796, [23:23], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 796, [24:24], "false", "true" +is_enabled_spi_4 = bits, U32, 796, [25:25], "false", "true" +pauseEtbControl = bits, U32, 796, [26:26], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 796, [27:27], "false", "true" +verboseKLine = bits, U32, 796, [28:28], "false", "true" +idleIncrementalPidCic = bits, U32, 796, [29:29], "false", "true" +enableAemXSeries = bits, U32, 796, [30:30], "false", "true" +logicAnalyzerPins1 = bits, U16, 800, [0:7], $brain_input_pin_e_list +logicAnalyzerPins2 = bits, U16, 802, [0:7], $brain_input_pin_e_list +logicAnalyzerPins3 = bits, U16, 804, [0:7], $brain_input_pin_e_list +logicAnalyzerPins4 = bits, U16, 806, [0:7], $brain_input_pin_e_list +mainRelayPinMode = bits, U08, 808, [0:1], "default", "default inverted", "open collector", "open collector inverted" +hip9011CsPin = bits, U16, 810, [0:7], $gpio_list +hip9011IntHoldPin = bits, U16, 812, [0:7], $gpio_list +hip9011IntHoldPinMode = bits, U08, 814, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 816, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 820, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 821, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 822, [0:8], $output_pin_e_list +acFanPinMode = bits, U08, 824, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 825, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +dwellVoltageCorrVoltBins = array, U08, 826, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 834, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +dwellVoltageCorrValues = array, U08, 835, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 844, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 846, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 848, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 850, [0:7], $gpio_list +lps25BaroSensorSda = bits, U16, 852, [0:7], $gpio_list +vehicleSpeedSensorInputPin = bits, U16, 854, [0:7], $brain_input_pin_e_list +clutchUpPin = bits, U16, 856, [0:7], $switch_input_pin_e_list +injectorNonlinearMode = bits, U08, 858, [0:1], "None", "Polynomial", "Ford (dual slope)", "INVALID" +clutchUpPinMode = bits, U08, 859, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +max31855_cs1 = bits, U16, 860, [0:7], $gpio_list +max31855_cs2 = bits, U16, 862, [0:7], $gpio_list +max31855_cs3 = bits, U16, 864, [0:7], $gpio_list +max31855_cs4 = bits, U16, 866, [0:7], $gpio_list +max31855_cs5 = bits, U16, 868, [0:7], $gpio_list +max31855_cs6 = bits, U16, 870, [0:7], $gpio_list +max31855_cs7 = bits, U16, 872, [0:7], $gpio_list +max31855_cs8 = bits, U16, 874, [0:7], $gpio_list +flexSensorPin = bits, U16, 876, [0:7], $brain_input_pin_e_list +test557pin = bits, U16, 878, [0:7], $gpio_list +stepperDirectionPinMode = bits, U08, 880, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 881, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioSecondary = scalar, U08, 882, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 883, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 884, "hz", 1, 0, 1, 250, 0 +idlePositionChannel = bits, U08, 886, [0:5], $adc_channel_e_list +debugMapAveraging = bits, U16, 888, [0:7], $gpio_list +starterRelayDisablePin = bits, U16, 890, [0:8], $output_pin_e_list +starterRelayDisablePinMode = bits, U08, 892, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 894, [0:8], $output_pin_e_list +startStopButtonPin = bits, U16, 896, [0:7], $switch_input_pin_e_list +mapMinBufferLength = scalar, S32, 900, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 904, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 906, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 908, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 910, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 912, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 914, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 916, [0:7], $gpio_list +triggerErrorPinMode = bits, U08, 918, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 920, [0:8], $output_pin_e_list +lambdaProtectionMinTps = scalar, U08, 922, "%", 1, 0, 0, 100, 0 +lambdaProtectionTimeout = scalar, U08, 923, "s", 0.1, 0, 0, 10, 1 +lambdaProtectionRestoreRpm = scalar, U08, 924, "RPM", 100.0, 0, 0, 25000, 0 +acRelayPinMode = bits, U08, 925, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 928, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 932, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 936, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 940, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 944, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 948, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 952, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 956, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 960, [0:7], $gpio_list +spi1misoPin = bits, U16, 962, [0:7], $gpio_list +spi1sckPin = bits, U16, 964, [0:7], $gpio_list +spi2mosiPin = bits, U16, 966, [0:7], $gpio_list +spi2misoPin = bits, U16, 968, [0:7], $gpio_list +spi2sckPin = bits, U16, 970, [0:7], $gpio_list +spi3mosiPin = bits, U16, 972, [0:7], $gpio_list +spi3misoPin = bits, U16, 974, [0:7], $gpio_list +spi3sckPin = bits, U16, 976, [0:7], $gpio_list +cdmInputPin = bits, U16, 978, [0:7], $gpio_list +consoleUartDevice = bits, U08, 980, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 981, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1", "INVALID", "INVALID" +mafSensorType = bits, S08, 982, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 984, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 984, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 984, [2:2], "false", "true" +multisparkEnable = bits, U32, 984, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 984, [4:4], "false", "true" +canInputBCM = bits, U32, 984, [5:5], "false", "true" +consumeObdSensors = bits, U32, 984, [6:6], "false", "true" +enableCanVss = bits, U32, 984, [7:7], "false", "true" +enableInnovateLC2 = bits, U32, 984, [8:8], "false", "true" +showHumanReadableWarning = bits, U32, 984, [9:9], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 984, [10:10], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 984, [11:11], "false", "true" +enableSoftwareKnock = bits, U32, 984, [12:12], "false", "true" +verboseVVTDecoding = bits, U32, 984, [13:13], "false", "true" +invertCamVVTSignal = bits, U32, 984, [14:14], "Rising", "Falling" +alphaNUseIat = bits, U32, 984, [15:15], "false", "true" +knockBankCyl1 = bits, U32, 984, [16:16], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 984, [17:17], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 984, [18:18], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 984, [19:19], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 984, [20:20], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 984, [21:21], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 984, [22:22], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 984, [23:23], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 984, [24:24], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 984, [25:25], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 984, [26:26], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 984, [27:27], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 984, [28:28], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 984, [29:29], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 984, [30:30], "false", "true" +verboseCan2 = bits, U32, 984, [31:31], "Do not print", "Print all" +etbIo1_directionPin1 = bits, U16, 988, [0:7], $gpio_list +etbIo1_directionPin2 = bits, U16, 990, [0:7], $gpio_list +etbIo1_controlPin = bits, U16, 992, [0:7], $gpio_list +etbIo1_disablePin = bits, U16, 994, [0:7], $gpio_list +etbIo2_directionPin1 = bits, U16, 996, [0:7], $gpio_list +etbIo2_directionPin2 = bits, U16, 998, [0:7], $gpio_list +etbIo2_controlPin = bits, U16, 1000, [0:7], $gpio_list +etbIo2_disablePin = bits, U16, 1002, [0:7], $gpio_list +boostControlPin = bits, U16, 1004, [0:8], $output_pin_e_list +boostControlPinMode = bits, U08, 1006, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 1008, [0:7], $switch_input_pin_e_list +launchActivatePin = bits, U16, 1010, [0:7], $switch_input_pin_e_list +boostPid_pFactor = scalar, F32, 1012, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 1016, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 1020, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 1024, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 1026, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 1028, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 1030, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 1032, [0:0], "Open Loop", "Open + Closed Loop" +ignitionKeyDigitalPinMode = bits, U08, 1033, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +ignitionKeyDigitalPin = bits, U16, 1034, [0:7], $gpio_list +boostPwmFrequency = scalar, S32, 1036, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 1040, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)", "INVALID" +antiLagActivationMode = bits, S08, 1041, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 1044, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 1048, "RPM", 1, 0, 0, 8000, 0 +launchSparkSkipPercent = scalar, S32, 1052, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 1056, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 1060, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 1064, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 1068, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 1072, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 1076, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 1077, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 1078, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 1079, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 1080, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 1081, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 1082, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 1083, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 1084, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 1085, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 1086, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 1088, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 1089, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 1090, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1092, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1093, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1094, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1096, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1097, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1098, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1100, [0:7], $gpio_list +stepperDcIo1_directionPin2 = bits, U16, 1102, [0:7], $gpio_list +stepperDcIo1_controlPin = bits, U16, 1104, [0:7], $gpio_list +stepperDcIo1_disablePin = bits, U16, 1106, [0:7], $gpio_list +stepperDcIo2_directionPin1 = bits, U16, 1108, [0:7], $gpio_list +stepperDcIo2_directionPin2 = bits, U16, 1110, [0:7], $gpio_list +stepperDcIo2_controlPin = bits, U16, 1112, [0:7], $gpio_list +stepperDcIo2_disablePin = bits, U16, 1114, [0:7], $gpio_list +engineMake = string, ASCII, 1116, 32 +engineCode = string, ASCII, 1148, 32 +vehicleName = string, ASCII, 1180, 32 +tcu_solenoid1 = bits, U16, 1212, [0:8], $output_pin_e_list +tcu_solenoid2 = bits, U16, 1214, [0:8], $output_pin_e_list +tcu_solenoid3 = bits, U16, 1216, [0:8], $output_pin_e_list +tcu_solenoid4 = bits, U16, 1218, [0:8], $output_pin_e_list +tcu_solenoid5 = bits, U16, 1220, [0:8], $output_pin_e_list +tcu_solenoid6 = bits, U16, 1222, [0:8], $output_pin_e_list +etbFunctions1 = bits, U08, 1224, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +etbFunctions2 = bits, U08, 1225, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +drv8860spiDevice = bits, U08, 1226, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +drv8860_cs = bits, U16, 1228, [0:7], $gpio_list +drv8860_csPinMode = bits, U08, 1230, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1232, [0:7], $gpio_list +fuelLevelBins = array, U16, 1234, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1250, [0:8], $output_pin_e_list +luaOutputPins2 = bits, U16, 1252, [0:8], $output_pin_e_list +luaOutputPins3 = bits, U16, 1254, [0:8], $output_pin_e_list +luaOutputPins4 = bits, U16, 1256, [0:8], $output_pin_e_list +luaOutputPins5 = bits, U16, 1258, [0:8], $output_pin_e_list +luaOutputPins6 = bits, U16, 1260, [0:8], $output_pin_e_list +luaOutputPins7 = bits, U16, 1262, [0:8], $output_pin_e_list +luaOutputPins8 = bits, U16, 1264, [0:8], $output_pin_e_list +vvtOffsets1 = scalar, F32, 1268, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1272, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1276, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1280, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1284, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1290, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1296, [0:7], $gpio_list +vrThreshold2_rpmBins = array, U08, 1300, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1306, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_pin = bits, U16, 1312, [0:7], $gpio_list +gpPwmNote1 = string, ASCII, 1316, 16 +gpPwmNote2 = string, ASCII, 1332, 16 +gpPwmNote3 = string, ASCII, 1348, 16 +gpPwmNote4 = string, ASCII, 1364, 16 +tps2SecondaryMin = scalar, U16, 1380, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1382, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1384, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1384, [1:1], "false", "true" +oddFireEngine = bits, U32, 1384, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1384, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1384, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1384, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1384, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1384, [7:7], "false", "true" +canReadEnabled = bits, U32, 1384, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1384, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1384, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1384, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1384, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1384, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1384, [14:14], "Rising", "Falling" +invertSecondaryTriggerSignal = bits, U32, 1384, [15:15], "Rising", "Falling" +cutFuelOnHardLimit = bits, U32, 1384, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1384, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1384, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1384, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1384, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1384, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1384, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1384, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1384, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1384, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1384, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1384, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1384, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1384, [29:29], "false", "true" +twoStroke = bits, U32, 1384, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1384, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1388, [0:5], $adc_channel_e_list +acSwitch = bits, U16, 1390, [0:7], $switch_input_pin_e_list +vRefAdcChannel = bits, U08, 1392, [0:5], $adc_channel_e_list +etbNeutralPosition = scalar, U08, 1393, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1394, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1396, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1396, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1396, [2:2], "false", "true" +complexWallModel = bits, U32, 1396, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1396, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1396, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1396, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1396, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1396, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1396, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1396, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1396, [11:11], "false", "true" +cutFuelInAcr = bits, U32, 1396, [12:12], "false", "true" +hondaK = bits, U32, 1396, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1396, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1396, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1396, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1396, [17:17], "false", "true" +flexCranking = bits, U32, 1396, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1396, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1396, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1396, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1396, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1396, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1396, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1396, [25:25], "advance", "retard" +invertVvtControlExhaust = bits, U32, 1396, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1396, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1396, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1396, [29:29], "false", "true" +stepper_dc_use_two_wires = bits, U32, 1396, [30:30], "false", "true" +watchOutForLinearTime = bits, U32, 1396, [31:31], "false", "true" +engineChartSize = scalar, U32, 1400, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1404, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1408, [0:7], $gpio_list +camInputsDebug2 = bits, U16, 1410, [0:7], $gpio_list +camInputsDebug3 = bits, U16, 1412, [0:7], $gpio_list +camInputsDebug4 = bits, U16, 1414, [0:7], $gpio_list +acIdleRpmTarget = scalar, S16, 1416, "RPM", 1, 0, 0, 2000, 0 +warningPeriod = scalar, S16, 1418, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1420, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1424, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1428, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1432, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1436, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1440, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1444, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1448, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1452, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1456, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1460, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1464, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1466, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1468, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1470, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1472, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1476, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1480, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1484, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1486, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1488, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1490, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1492, [0:7], $gpio_list +triggerInputDebugPins2 = bits, U16, 1494, [0:7], $gpio_list +airTaperRpmRange = scalar, S16, 1496, "RPM", 1, 0, 0, 1500, 0 +turboSpeedSensorInputPin = bits, U16, 1498, [0:7], $brain_input_pin_e_list +tps2Min = scalar, S16, 1500, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1502, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1504, [0:8], $output_pin_e_list +startStopButtonMode = bits, U08, 1506, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +mc33816_flag0 = bits, U16, 1508, [0:7], $gpio_list +tachPulsePerRev = scalar, U08, 1510, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1512, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1516, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1520, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1522, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1524, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1528, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1532, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1536, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1538, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1540, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1542, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1544, "Fraction", 1, 0, 0, 1, 2 +binarySerialTxPin = bits, U16, 1548, [0:7], $gpio_list +binarySerialRxPin = bits, U16, 1550, [0:7], $gpio_list +auxValves1 = bits, U16, 1552, [0:7], $gpio_list +auxValves2 = bits, U16, 1554, [0:7], $gpio_list +tcuUpshiftButtonPin = bits, U16, 1556, [0:7], $switch_input_pin_e_list +tcuDownshiftButtonPin = bits, U16, 1558, [0:7], $switch_input_pin_e_list +throttlePedalUpVoltage = scalar, F32, 1560, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1564, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1568, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1570, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1572, "Volts", 1, 0, 0, 30, 1 +mc33810DisableRecoveryMode = bits, U32, 1576, [0:0], "false", "true" +mc33810Gpgd0Mode = bits, U32, 1576, [1:1], "false", "true" +mc33810Gpgd1Mode = bits, U32, 1576, [2:2], "false", "true" +mc33810Gpgd2Mode = bits, U32, 1576, [3:3], "false", "true" +mc33810Gpgd3Mode = bits, U32, 1576, [4:4], "false", "true" +enableExtendedCanBroadcast = bits, U32, 1576, [5:5], "false", "true" +luaCanRxWorkaround = bits, U32, 1576, [6:6], "false", "true" +flexSensorInverted = bits, U32, 1576, [7:7], "false", "true" +useHardSkipInTraction = bits, U32, 1576, [8:8], "false", "true" +useAuxSpeedForSlipRatio = bits, U32, 1576, [11:11], "false", "true" +useVssAsSecondWheelSpeed = bits, U32, 1576, [12:12], "false", "true" +is_enabled_spi_5 = bits, U32, 1576, [13:13], "false", "true" +is_enabled_spi_6 = bits, U32, 1576, [14:14], "false", "true" +afterCrankingIACtaperDuration = scalar, S16, 1580, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1582, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1584, [0:7], $gpio_list +auxSerialRxPin = bits, U16, 1586, [0:7], $gpio_list +accelerometerCsPin = bits, U16, 1588, [0:7], $gpio_list +tpsAccelLookback = scalar, U08, 1590, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1591, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1592, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1593, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1596, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1600, [0:7], $brain_input_pin_e_list +auxSpeedSensorInputPin2 = bits, U16, 1602, [0:7], $brain_input_pin_e_list +totalGearsCount = scalar, U08, 1604, "", 1, 0, 1, 10, 0 +injectionTimingMode = bits, U08, 1605, [0:1], "End of injection", "Start of injection", "Center of injection", "INVALID" +debugMode = bits, U08, 1606, [0:5], "INVALID", "TPS acceleration enrichment", "INVALID", "Stepper Idle Control", "Engine Load accl enrich", "Trigger Counters", "Soft Spark Cut", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "SD card", "sr5", "Knock", "INVALID", "Electronic Throttle", "Executor", "Bench Test / TS commands", "INVALID", "Analog inputs #1", "INSTANT_RPM", "INVALID", "Status", "INVALID", "INVALID", "MAP", "Metrics", "INVALID", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "INVALID", "Boost Control", "INVALID", "INVALID", "ETB Autotune", "Composite Log", "INVALID", "INVALID", "INVALID", "Dyno_View", "Logic_Analyzer", "INVALID", "TCU", "Lua", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan1ExtraIdle = scalar, U08, 1607, "%", 1, 0, 0, 100, 0 +uartConsoleSerialSpeed = scalar, U32, 1608, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1612, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1616, "coeff", 1, 0, 0, 200, 2 +auxSerialSpeed = scalar, U32, 1620, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1624, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1628, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1632, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +veOverrideMode = bits, U08, 1633, [0:1], "None", "MAP", "TPS", "INVALID" +can2BaudRate = bits, U08, 1634, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +afrOverrideMode = bits, U08, 1635, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +mc33_hpfp_i_peak = scalar, U08, 1636, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1637, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1638, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1639, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1640, [0:0], "false", "true" +canOpenBLT = bits, U32, 1640, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1640, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1640, [3:3], "volumetric flow", "mass flow" +boardUseCanTerminator = bits, U32, 1640, [4:4], "false", "true" +kLineDoHondaSend = bits, U32, 1640, [5:5], "false", "true" +can1ListenMode = bits, U32, 1640, [6:6], "false", "true" +can2ListenMode = bits, U32, 1640, [7:7], "false", "true" +camDecoder2jzPosition = scalar, U08, 1644, "", 1, 0, 0, 100, 0 +mc33810maxDwellTimer = bits, U08, 1645, [0:2], "2 mS", "4 mS", "8 mS", "16 mS", "32 mS", "64 mS", "INVALID", "INVALID" +benchTestOnTime = scalar, U16, 1646, "ms", 0.01, 0, 0, 500, 2 +lambdaProtectionRestoreTps = scalar, U08, 1648, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1649, "%", 10.0, 0, 0, 1000, 0 +launchActivatePinMode = bits, U08, 1650, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +can2TxPin = bits, U16, 1652, [0:7], $gpio_list +can2RxPin = bits, U16, 1654, [0:7], $gpio_list +starterControlPinMode = bits, U08, 1656, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1657, [0:5], $adc_channel_e_list +ignOverrideMode = bits, U08, 1658, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +injectorPressureType = bits, U08, 1659, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1660, [0:8], $output_pin_e_list +hpfpValvePinMode = bits, U08, 1662, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1664, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1668, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1684, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1700, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1704, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1708, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1712, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1716, [0:8], $output_pin_e_list +vvtPins2 = bits, U16, 1718, [0:8], $output_pin_e_list +vvtPins3 = bits, U16, 1720, [0:8], $output_pin_e_list +vvtPins4 = bits, U16, 1722, [0:8], $output_pin_e_list +sdCardCsPinMode = bits, U08, 1724, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1728, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1732, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1736, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1740, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1744, "", 1, 0, 0, 3, 4 +vvtOutputFrequency = scalar, U16, 1748, "Hz", 1, 0, 0, 3000, 0 +minimumIgnitionTiming = scalar, S08, 1750, "deg BTDC", 1, 0, -90, 90, 0 +maximumIgnitionTiming = scalar, S08, 1751, "deg BTDC", 1, 0, -90, 90, 0 +alternatorPwmFrequency = scalar, S32, 1752, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1756, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vvtMode2 = bits, U08, 1757, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan2ExtraIdle = scalar, U08, 1758, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1759, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1760, [0:5], $adc_channel_e_list +auxAnalogInputs2 = bits, U08, 1761, [0:5], $adc_channel_e_list +auxAnalogInputs3 = bits, U08, 1762, [0:5], $adc_channel_e_list +auxAnalogInputs4 = bits, U08, 1763, [0:5], $adc_channel_e_list +auxAnalogInputs5 = bits, U08, 1764, [0:5], $adc_channel_e_list +auxAnalogInputs6 = bits, U08, 1765, [0:5], $adc_channel_e_list +auxAnalogInputs7 = bits, U08, 1766, [0:5], $adc_channel_e_list +auxAnalogInputs8 = bits, U08, 1767, [0:5], $adc_channel_e_list +trailingCoilPins1 = bits, U16, 1768, [0:8], $output_pin_e_list +trailingCoilPins2 = bits, U16, 1770, [0:8], $output_pin_e_list +trailingCoilPins3 = bits, U16, 1772, [0:8], $output_pin_e_list +trailingCoilPins4 = bits, U16, 1774, [0:8], $output_pin_e_list +trailingCoilPins5 = bits, U16, 1776, [0:8], $output_pin_e_list +trailingCoilPins6 = bits, U16, 1778, [0:8], $output_pin_e_list +trailingCoilPins7 = bits, U16, 1780, [0:8], $output_pin_e_list +trailingCoilPins8 = bits, U16, 1782, [0:8], $output_pin_e_list +trailingCoilPins9 = bits, U16, 1784, [0:8], $output_pin_e_list +trailingCoilPins10 = bits, U16, 1786, [0:8], $output_pin_e_list +trailingCoilPins11 = bits, U16, 1788, [0:8], $output_pin_e_list +trailingCoilPins12 = bits, U16, 1790, [0:8], $output_pin_e_list +tle8888mode = bits, U08, 1792, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +accelerometerCsPinMode = bits, U08, 1793, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1794, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure", "INVALID" +fan2PinMode = bits, U08, 1795, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1796, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = array, F32, 1800, [6x6], "mult", 1, 0, 1, 3, 2 +postCrankingDurationBins = array, F32, 1944, [6], "count", 1, 0, 0, 1000, 0 +postCrankingCLTBins = array, F32, 1968, [6], "C", 1, 0, -100, 100, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1992, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1996, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 2000, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 2004, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 2008, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 2012, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 2016, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 2020, [0:5], $adc_channel_e_list +auxTempSensor2_tempC_1 = scalar, F32, 2024, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 2028, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 2032, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 2036, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 2040, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 2044, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 2048, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 2052, [0:5], $adc_channel_e_list +knockSamplingDuration = scalar, S16, 2056, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 2058, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 2060, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 2064, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 2068, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 2072, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 2074, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 2076, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 2078, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 2080, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperMinDutyCycle = scalar, U08, 2081, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 2082, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 2083, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +timing_offset_cylinder1 = scalar, F32, 2084, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 2088, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 2092, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 2096, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 2100, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 2104, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 2108, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 2112, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 2116, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 2120, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 2124, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 2128, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 2132, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 2136, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MosiMode = bits, U08, 2137, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MisoMode = bits, U08, 2138, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2SckMode = bits, U08, 2139, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MosiMode = bits, U08, 2140, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MisoMode = bits, U08, 2141, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3SckMode = bits, U08, 2142, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MosiMode = bits, U08, 2143, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MisoMode = bits, U08, 2144, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperEnablePinMode = bits, U08, 2145, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 2146, [0:7], $gpio_list +mc33816_driven = bits, U16, 2148, [0:7], $gpio_list +brakePedalPin = bits, U16, 2150, [0:7], $switch_input_pin_e_list +brakePedalPinMode = bits, U08, 2152, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +auxPid1_pFactor = scalar, F32, 2156, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 2160, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 2164, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 2168, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 2170, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 2172, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 2174, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 2176, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 2180, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 2184, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 2188, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 2190, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 2192, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 2194, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2196, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2200, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2204, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2208, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2212, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2216, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2220, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2224, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 2228, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 2236, [0:5], $adc_channel_e_list +oilPressure_v1 = scalar, F32, 2240, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 2244, "", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 2248, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 2252, "", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 2256, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +fan2Pin = bits, U16, 2258, [0:8], $output_pin_e_list +fan2OnTemperature = scalar, U08, 2260, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 2261, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 2262, [0:7], $gpio_list +tle8888_cs = bits, U16, 2264, [0:7], $gpio_list +tle8888_csPinMode = bits, U08, 2266, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_cs = bits, U16, 2268, [0:7], $gpio_list +auxFrequencyFilter = scalar, F32, 2272, "hz", 1, 0, 0, 100, 1 +vvtControlMinRpm = scalar, S16, 2276, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2278, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +launchFuelAdderPercent = scalar, S08, 2280, "%", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2281, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2282, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2284, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2288, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2290, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2292, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2294, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2296, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2298, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2300, [0:5], $adc_channel_e_list +highPressureFuel_v1 = scalar, F32, 2304, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2308, "", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2312, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2316, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2320, [0:5], $adc_channel_e_list +lowPressureFuel_v1 = scalar, F32, 2324, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2328, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2332, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2336, "", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2340, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2344, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2352, 16 +scriptCurveName2 = string, ASCII, 2368, 16 +scriptCurveName3 = string, ASCII, 2384, 16 +scriptCurveName4 = string, ASCII, 2400, 16 +scriptCurveName5 = string, ASCII, 2416, 16 +scriptCurveName6 = string, ASCII, 2432, 16 +scriptTableName1 = string, ASCII, 2448, 16 +scriptTableName2 = string, ASCII, 2464, 16 +scriptTableName3 = string, ASCII, 2480, 16 +scriptTableName4 = string, ASCII, 2496, 16 +scriptSettingName1 = string, ASCII, 2512, 16 +scriptSettingName2 = string, ASCII, 2528, 16 +scriptSettingName3 = string, ASCII, 2544, 16 +scriptSettingName4 = string, ASCII, 2560, 16 +scriptSettingName5 = string, ASCII, 2576, 16 +scriptSettingName6 = string, ASCII, 2592, 16 +scriptSettingName7 = string, ASCII, 2608, 16 +scriptSettingName8 = string, ASCII, 2624, 16 +tChargeAirCoefMin = scalar, F32, 2640, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2644, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2648, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2652, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2656, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2660, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table", "INVALID" +hip9011Gain = scalar, F32, 2664, "", 1, 0, 0, 100, 2 +etb_iTermMin = scalar, S16, 2668, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2670, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2672, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2676, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2680, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2684, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2686, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2688, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2690, "", 1, 0, -30000, 30000, 0 +idleTimingSoftEntryTime = scalar, F32, 2692, "", 1, 0, 0, 100, 1 +etbRocExpAverageLength = scalar, S16, 2696, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2698, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2700, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2704, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33816spiDevice = bits, U08, 2705, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +idlerpmpid_iTermMin = scalar, S16, 2706, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2708, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioPrimary = scalar, U08, 2709, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2710, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2712, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2716, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2717, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2718, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2719, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2720, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2721, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2722, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2723, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2724, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2725, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2726, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2727, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2728, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2736, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2737, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2738, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2739, "RPM", 50.0, 0, 0, 12000, 0 +tractionControlSlipBins = array, U16, 2740, [6], "ratio", 0.01, 0, 0, 999, 2 +tractionControlSpeedBins = array, U08, 2752, [6], "RPM", 1, 0, 0, 250, 0 +disableFan1AtSpeed = scalar, S08, 2758, "", 1, 0, 0, 100, 0 +disableFan2AtSpeed = scalar, S08, 2759, "", 1, 0, 0, 100, 0 +canVssNbcType = bits, U08, 2760, [0:2], "BMW_e46", "W202", "BMW E8x/E9x MK60e5", "Nissan 350", "Hyundai PB", "Honda Civic9", "INVALID", "INVALID" +gppwm1_pin = bits, U16, 2764, [0:8], $output_pin_e_list +gppwm1_dutyIfError = scalar, U08, 2766, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2768, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2770, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2771, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2772, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_rpmAxis = bits, U08, 2773, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadBins = array, S16, 2774, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm1_rpmBins = array, S16, 2790, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2806, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2872, [0:8], $output_pin_e_list +gppwm2_dutyIfError = scalar, U08, 2874, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2876, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2878, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2879, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2880, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_rpmAxis = bits, U08, 2881, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadBins = array, S16, 2882, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm2_rpmBins = array, S16, 2898, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2914, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2980, [0:8], $output_pin_e_list +gppwm3_dutyIfError = scalar, U08, 2982, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2984, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2986, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2987, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2988, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_rpmAxis = bits, U08, 2989, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadBins = array, S16, 2990, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm3_rpmBins = array, S16, 3006, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 3022, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 3088, [0:8], $output_pin_e_list +gppwm4_dutyIfError = scalar, U08, 3090, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 3092, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 3094, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 3095, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 3096, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_rpmAxis = bits, U08, 3097, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadBins = array, S16, 3098, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm4_rpmBins = array, S16, 3114, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 3130, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 3196, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 3198, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 3200, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 3202, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 3204, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 3206, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 3208, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 3210, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 3212, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 3214, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcuDownshiftButtonPinMode = bits, U08, 3215, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acSwitchMode = bits, U08, 3216, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_solenoid_mode1 = bits, U08, 3217, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 3218, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 3219, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 3220, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 3221, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 3222, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 3223, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 3240, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 3244, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 3248, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 3252, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 3256, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 3260, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 3264, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 3268, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3272, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3276, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3280, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3284, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3288, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3292, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3296, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3300, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3304, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3308, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3312, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3316, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3320, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3324, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3328, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3332, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3336, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3340, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3344, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3348, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3352, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3356, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3360, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3364, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3368, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3372, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3376, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3380, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3384, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3385, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3386, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3388, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3390, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3394, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3395, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3396, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2", "INVALID", "INVALID", "INVALID" +auxiliarySetting1 = scalar, U08, 3397, "", 1, 0, 0, 100, 0 +hpfpMinAngle = scalar, U08, 3398, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3400, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3402, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3403, "", 1, 0, 0, 255, 0 +hpfpPidP = scalar, U16, 3404, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3406, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3408, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3410, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3426, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3442, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3450, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3466, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3666, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3686, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3696, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3796, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3816, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3826, [0:8], $output_pin_e_list +stepper_raw_output2 = bits, U16, 3828, [0:8], $output_pin_e_list +stepper_raw_output3 = bits, U16, 3830, [0:8], $output_pin_e_list +stepper_raw_output4 = bits, U16, 3832, [0:8], $output_pin_e_list +gearRatio1 = scalar, U16, 3834, "ratio", 0.01, 0, 0, 30, 2 +gearRatio2 = scalar, U16, 3836, "ratio", 0.01, 0, 0, 30, 2 +gearRatio3 = scalar, U16, 3838, "ratio", 0.01, 0, 0, 30, 2 +gearRatio4 = scalar, U16, 3840, "ratio", 0.01, 0, 0, 30, 2 +gearRatio5 = scalar, U16, 3842, "ratio", 0.01, 0, 0, 30, 2 +gearRatio6 = scalar, U16, 3844, "ratio", 0.01, 0, 0, 30, 2 +gearRatio7 = scalar, U16, 3846, "ratio", 0.01, 0, 0, 30, 2 +gearRatio8 = scalar, U16, 3848, "ratio", 0.01, 0, 0, 30, 2 +gearRatio9 = scalar, U16, 3850, "ratio", 0.01, 0, 0, 30, 2 +gearRatio10 = scalar, U16, 3852, "ratio", 0.01, 0, 0, 30, 2 +vvtActivationDelayMs = scalar, U16, 3854, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3856, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3864, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3872, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3880, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3888, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3896, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3904, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3940, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3952, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3964, [0:1], "None", "Button Shift", "INVALID", "INVALID" +transmissionControllerMode = bits, U08, 3965, [0:1], "None", "Simple Transmission", "GM 4L6X", "INVALID" +acrDisablePhase = scalar, U16, 3966, "deg", 1, 0, 0, 720, 0 +auxLinear1_hwChannel = bits, U08, 3968, [0:5], $adc_channel_e_list +auxLinear1_v1 = scalar, F32, 3972, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3976, "", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3980, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3984, "", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3988, [0:5], $adc_channel_e_list +auxLinear2_v1 = scalar, F32, 3992, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3996, "", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 4000, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 4004, "", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 4008, [0:8], $output_pin_e_list +tcu_tcc_onoff_solenoid_mode = bits, U08, 4010, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 4012, [0:8], $output_pin_e_list +tcu_tcc_pwm_solenoid_mode = bits, U08, 4014, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 4016, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 4018, [0:8], $output_pin_e_list +tcu_pc_solenoid_pin_mode = bits, U08, 4020, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 4022, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 4024, [0:8], $output_pin_e_list +tcu_32_solenoid_pin_mode = bits, U08, 4026, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 4028, "Hz", 1, 0, 0, 3000, 0 +acrPin2 = bits, U16, 4030, [0:8], $output_pin_e_list +etbMinimumPosition = scalar, F32, 4032, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 4036, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 4038, 17 +highSpeedOffsets = array, U16, 4056, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 4120, "", 1, 0, 0, 100, 0 +fuelPressureSensorMode = bits, U08, 4124, [0:1], "Absolute", "Gauge", "Differential", "INVALID" +luaDigitalInputPins1 = bits, U16, 4126, [0:7], $switch_input_pin_e_list +luaDigitalInputPins2 = bits, U16, 4128, [0:7], $switch_input_pin_e_list +luaDigitalInputPins3 = bits, U16, 4130, [0:7], $switch_input_pin_e_list +luaDigitalInputPins4 = bits, U16, 4132, [0:7], $switch_input_pin_e_list +luaDigitalInputPins5 = bits, U16, 4134, [0:7], $switch_input_pin_e_list +luaDigitalInputPins6 = bits, U16, 4136, [0:7], $switch_input_pin_e_list +luaDigitalInputPins7 = bits, U16, 4138, [0:7], $switch_input_pin_e_list +luaDigitalInputPins8 = bits, U16, 4140, [0:7], $switch_input_pin_e_list +tpsTspCorrValuesBins = array, U08, 4142, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 4146, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 4148, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 4150, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 4152, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 4153, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 4154, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 4155, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 4156, "%", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 4157, [0:1], "None", "GM type 1", "Ford type 1", "Custom" +customSentTpsMin = scalar, U16, 4158, "", 1, 0, 0, 32000, 0 +ALSIdleAdd = scalar, S32, 4160, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 4164, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, F32, 4168, "", 1, 0, 0, 1, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 4172, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 4173, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tpsSecondaryMaximum = scalar, U08, 4174, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 4175, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 4176, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes2 = bits, U08, 4177, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes3 = bits, U08, 4178, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes4 = bits, U08, 4179, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes5 = bits, U08, 4180, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes6 = bits, U08, 4181, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes7 = bits, U08, 4182, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes8 = bits, U08, 4183, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +customSentTpsMax = scalar, U16, 4184, "", 1, 0, 0, 32000, 0 +kLineBaudRate = scalar, U16, 4186, "", 1, 0, 0, 32000, 0 +canGpioType = bits, S08, 4188, [0:1], "None", "DRT protocol", "MS protocol", "INVALID" +uiMode = bits, S08, 4189, [0:1], "Full", "Installation", "Tuning", "INVALID" +hpfpPeakPos = scalar, S16, 4190, "deg", 1, 0, -719, 719, 0 +kLinePeriodUs = scalar, S16, 4192, "us", 1, 0, 0, 30000, 0 +rpmSoftLimitWindowSize = scalar, U08, 4194, "RPM", 10.0, 0, 0, 2500, 0 +rpmSoftLimitTimingRetard = scalar, U08, 4195, "deg", 0.2, 0, 0, 50, 1 +rpmSoftLimitFuelAdded = scalar, U08, 4196, "%", 0.2, 0, 0, 50, 1 +rpmHardLimitHyst = scalar, U08, 4197, "RPM", 10.0, 0, 0, 2500, 0 +benchTestOffTime = scalar, U16, 4198, "ms", 0.1, 0, 0, 2000, 1 +boostCutPressureHyst = scalar, U08, 4200, "kPa (absolute)", 0.5, 0, 0, 125, 1 +gearBasedOpenLoopBoostAdder = array, U08, 4201, [10], "%", 0.5, 0, 0, 100, 1 +benchTestCount = scalar, U32, 4212, "", 1, 0, 0, 10000000, 0 +iacByTpsHoldTime = scalar, U08, 4216, "seconds", 0.1, 0, 0, 25, 1 +iacByTpsDecayTime = scalar, U08, 4217, "seconds", 0.1, 0, 0, 25, 1 +tcu_rangeInput1 = bits, U16, 4218, [0:7], $switch_input_pin_e_list +tcu_rangeInput2 = bits, U16, 4220, [0:7], $switch_input_pin_e_list +tcu_rangeInput3 = bits, U16, 4222, [0:7], $switch_input_pin_e_list +tcu_rangeInput4 = bits, U16, 4224, [0:7], $switch_input_pin_e_list +tcu_rangeInput5 = bits, U16, 4226, [0:7], $switch_input_pin_e_list +tcu_rangeInput6 = bits, U16, 4228, [0:7], $switch_input_pin_e_list +tcu_rangeInputMode1 = bits, U08, 4230, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode2 = bits, U08, 4231, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode3 = bits, U08, 4232, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode4 = bits, U08, 4233, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode5 = bits, U08, 4234, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode6 = bits, U08, 4235, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +canVssScaling = scalar, U16, 4236, "ratio", 1.0E-4, 0, 0.5, 1.5, 4 +oilTempSensor_tempC_1 = scalar, F32, 4240, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_2 = scalar, F32, 4244, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_3 = scalar, F32, 4248, "*C", 1, 0, -55, 200, 1 +oilTempSensor_resistance_1 = scalar, F32, 4252, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_2 = scalar, F32, 4256, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_3 = scalar, F32, 4260, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_bias_resistor = scalar, F32, 4264, "Ohm", 1, 0, 0, 200000, 1 +oilTempSensor_adcChannel = bits, U08, 4268, [0:5], $adc_channel_e_list +fuelTempSensor_tempC_1 = scalar, F32, 4272, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_2 = scalar, F32, 4276, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_3 = scalar, F32, 4280, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_resistance_1 = scalar, F32, 4284, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_2 = scalar, F32, 4288, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_3 = scalar, F32, 4292, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_bias_resistor = scalar, F32, 4296, "Ohm", 1, 0, 0, 200000, 1 +fuelTempSensor_adcChannel = bits, U08, 4300, [0:5], $adc_channel_e_list +ambientTempSensor_tempC_1 = scalar, F32, 4304, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_2 = scalar, F32, 4308, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_3 = scalar, F32, 4312, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_resistance_1 = scalar, F32, 4316, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_2 = scalar, F32, 4320, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_3 = scalar, F32, 4324, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_bias_resistor = scalar, F32, 4328, "Ohm", 1, 0, 0, 200000, 1 +ambientTempSensor_adcChannel = bits, U08, 4332, [0:5], $adc_channel_e_list +compressorDischargeTemperature_tempC_1 = scalar, F32, 4336, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_2 = scalar, F32, 4340, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_3 = scalar, F32, 4344, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_resistance_1 = scalar, F32, 4348, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_2 = scalar, F32, 4352, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_3 = scalar, F32, 4356, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_bias_resistor = scalar, F32, 4360, "Ohm", 1, 0, 0, 200000, 1 +compressorDischargeTemperature_adcChannel = bits, U08, 4364, [0:5], $adc_channel_e_list +throttleInletPressureChannel = bits, U08, 4368, [0:5], $adc_channel_e_list +compressorDischargePressureChannel = bits, U08, 4369, [0:5], $adc_channel_e_list +dacOutputPins1 = bits, U16, 4370, [0:7], $gpio_list +dacOutputPins2 = bits, U16, 4372, [0:7], $gpio_list +speedometerOutputPin = bits, U16, 4374, [0:8], $output_pin_e_list +speedometerPulsePerKm = scalar, U16, 4376, "", 1, 0, 0, 65000, 0 +simulatorCamPosition1 = scalar, U08, 4378, "", 1, 0, 0, 100, 0 +simulatorCamPosition2 = scalar, U08, 4379, "", 1, 0, 0, 100, 0 +simulatorCamPosition3 = scalar, U08, 4380, "", 1, 0, 0, 100, 0 +simulatorCamPosition4 = scalar, U08, 4381, "", 1, 0, 0, 100, 0 +ignKeyAdcChannel = bits, U08, 4382, [0:5], $adc_channel_e_list +spi6MisoMode = bits, U08, 4383, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerVVTGapOverrideFrom1 = scalar, F32, 4384, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom2 = scalar, F32, 4388, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom3 = scalar, F32, 4392, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom4 = scalar, F32, 4396, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo1 = scalar, F32, 4400, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo2 = scalar, F32, 4404, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo3 = scalar, F32, 4408, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo4 = scalar, F32, 4412, "ratio", 1, 0, 0, 20, 3 +tractionControlEtbDrop = array, S08, 4416, [6x6], "%", 1, 0, -100, 0, 0 +maxInjectorDutyInstant = scalar, U08, 4452, "%", 1, 0, 50, 200, 0 +maxInjectorDutySustained = scalar, U08, 4453, "%", 1, 0, 50, 120, 0 +maxInjectorDutySustainedTimeout = scalar, U08, 4454, "sec", 0.1, 0, 0, 5, 1 +injectionPinsStage21 = bits, U16, 4456, [0:8], $output_pin_e_list +injectionPinsStage22 = bits, U16, 4458, [0:8], $output_pin_e_list +injectionPinsStage23 = bits, U16, 4460, [0:8], $output_pin_e_list +injectionPinsStage24 = bits, U16, 4462, [0:8], $output_pin_e_list +injectionPinsStage25 = bits, U16, 4464, [0:8], $output_pin_e_list +injectionPinsStage26 = bits, U16, 4466, [0:8], $output_pin_e_list +injectionPinsStage27 = bits, U16, 4468, [0:8], $output_pin_e_list +injectionPinsStage28 = bits, U16, 4470, [0:8], $output_pin_e_list +injectionPinsStage29 = bits, U16, 4472, [0:8], $output_pin_e_list +injectionPinsStage210 = bits, U16, 4474, [0:8], $output_pin_e_list +injectionPinsStage211 = bits, U16, 4476, [0:8], $output_pin_e_list +injectionPinsStage212 = bits, U16, 4478, [0:8], $output_pin_e_list +tractionControlTimingDrop = array, S08, 4480, [6x6], "Deg", 1, 0, -100, 100, 0 +tractionControlIgnitionSkip = array, S08, 4516, [6x6], "%", 1, 0, 0, 100, 0 +auxSpeed1Multiplier = scalar, F32, 4552, "", 1, 0, 0, 100, 0 +brakeMeanEffectivePressureDifferential = scalar, F32, 4556, "", 1, 0, 0, 100, 0 +spi4mosiPin = bits, U16, 4560, [0:7], $gpio_list +spi4misoPin = bits, U16, 4562, [0:7], $gpio_list +spi4sckPin = bits, U16, 4564, [0:7], $gpio_list +spi5mosiPin = bits, U16, 4566, [0:7], $gpio_list +spi5misoPin = bits, U16, 4568, [0:7], $gpio_list +spi5sckPin = bits, U16, 4570, [0:7], $gpio_list +spi6mosiPin = bits, U16, 4572, [0:7], $gpio_list +spi6misoPin = bits, U16, 4574, [0:7], $gpio_list +spi6sckPin = bits, U16, 4576, [0:7], $gpio_list +spi4SckMode = bits, U08, 4578, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MosiMode = bits, U08, 4579, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MisoMode = bits, U08, 4580, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5SckMode = bits, U08, 4581, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MosiMode = bits, U08, 4582, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MisoMode = bits, U08, 4583, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6SckMode = bits, U08, 4584, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6MosiMode = bits, U08, 4585, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +unusedOftenChangesDuringFirmwareUpdate = array, U08, 4586, [120], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4708, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4740, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4772, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4836, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4844, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4852, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4868, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4884, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4900, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4916, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4948, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4980, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 5044, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 5108, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 5172, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 5236, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 5268, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 5300, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 5332, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 5364, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 5396, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 5428, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 5460, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 5492, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 5508, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 5524, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 5588, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 5620, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 5652, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 5660, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 5668, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 5684, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 5700, 120 +afterstartCoolantBins = array, F32, 5820, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5852, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5884, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5916, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5948, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 6012, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 6020, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 6084, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 6092, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 6156, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 6164, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 6172, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 6204, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 6236, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 6244, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 6276, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 6280, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 6284, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 6316, 8000 +cltFuelCorrBins = array, F32, 14316, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 14380, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 14444, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 14508, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 14572, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 14604, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 14636, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 14668, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 14700, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14764, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14828, [32], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 14956, [32], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 15084, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 15148, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 15156, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 15164, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 15676, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 15708, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 15740, [10x6], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 15800, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 16312, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 16344, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 16376, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 16440, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 16456, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 16472, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 16536, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 16552, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 16568, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 17080, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 17112, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 17144, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 17656, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 17688, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 17720, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 17720, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 17976, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 18008, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 18040, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 18296, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 18328, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 18360, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 18616, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 18632, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 18648, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 18712, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 18728, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 18744, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 18808, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 18824, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 18840, [10x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 18920, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 18936, [10], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 18956, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 18964, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 18972, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 18988, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 19004, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 19020, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 19036, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 19052, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 19068, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 19084, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 19100, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 19116, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 19132, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 19148, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 19164, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 19172, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 19180, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 19196, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 19212, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 19228, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 19244, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 19260, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 19276, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 19292, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 19308, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 19324, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 19340, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 19356, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 19372, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 19388, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 19396, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 19404, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 19412, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 19420, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 19428, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 19436, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 19444, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 19452, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 19460, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 19468, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 19476, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 19484, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 19492, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 19500, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 19508, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 19516, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 19524, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 19532, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 19568, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 19574, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 19580, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 19616, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 19622, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 19628, [4x4], "deg", 0.1, 0, -60, 0, 1 +alsIgnRetardLoadBins = array, U16, 19660, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 19668, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 19676, [4x4], "percent", 0.1, 0, 0, 50, 1 +alsFuelAdjustmentLoadBins = array, U16, 19708, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 19716, [4], "RPM", 1, 0, 0, 25000, 0 +ALSIgnSkipTable = array, S16, 19724, [4x4], "ratio", 10.0, 0, 0, 50, 1 +alsIgnSkipLoadBins = array, U16, 19756, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnSkiprpmBins = array, U16, 19764, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 19772, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 19900, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 19916, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 19932, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_yAxisOverride = bits, U08, 19933, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_blendBins = array, S16, 19934, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 19950, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 19960, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 20088, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 20104, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 20120, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_yAxisOverride = bits, U08, 20121, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_blendBins = array, S16, 20122, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 20138, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 20148, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 20276, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 20292, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 20308, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_yAxisOverride = bits, U08, 20309, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_blendBins = array, S16, 20310, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 20326, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 20336, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 20464, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 20480, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 20496, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_yAxisOverride = bits, U08, 20497, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_blendBins = array, S16, 20498, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 20514, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 20524, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 20652, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 20668, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 20684, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_yAxisOverride = bits, U08, 20685, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_blendBins = array, S16, 20686, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 20702, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 20712, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 20840, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 20856, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 20872, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_yAxisOverride = bits, U08, 20873, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_blendBins = array, S16, 20874, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 20890, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 20900, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 21028, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 21044, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 21060, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_yAxisOverride = bits, U08, 21061, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_blendBins = array, S16, 21062, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 21078, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 21088, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 21216, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 21232, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 21248, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_yAxisOverride = bits, U08, 21249, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_blendBins = array, S16, 21250, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 21266, [8], "%", 0.5, 0, 0, 100, 1 +throttleEstimateEffectiveAreaBins = array, U16, 21276, [12], "%", 0.1, 0, 0, 100, 1 +throttleEstimateEffectiveAreaValues = array, U16, 21300, [12], "g/s", 0.1, 0, 0, 6500, 1 +boostOpenLoopBlends1_table = array, S16, 21324, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends1_loadBins = array, U16, 21452, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends1_rpmBins = array, U16, 21468, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends1_blendParameter = bits, U08, 21484, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_yAxisOverride = bits, U08, 21485, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_blendBins = array, S16, 21486, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends1_blendValues = array, U08, 21502, [8], "%", 0.5, 0, 0, 100, 1 +boostOpenLoopBlends2_table = array, S16, 21512, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends2_loadBins = array, U16, 21640, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends2_rpmBins = array, U16, 21656, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends2_blendParameter = bits, U08, 21672, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_yAxisOverride = bits, U08, 21673, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_blendBins = array, S16, 21674, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends2_blendValues = array, U08, 21690, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends1_table = array, S16, 21700, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends1_loadBins = array, U16, 21828, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends1_rpmBins = array, U16, 21844, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends1_blendParameter = bits, U08, 21860, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_yAxisOverride = bits, U08, 21861, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_blendBins = array, S16, 21862, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends1_blendValues = array, U08, 21878, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends2_table = array, S16, 21888, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends2_loadBins = array, U16, 22016, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends2_rpmBins = array, U16, 22032, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends2_blendParameter = bits, U08, 22048, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_yAxisOverride = bits, U08, 22049, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_blendBins = array, S16, 22050, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends2_blendValues = array, U08, 22066, [8], "%", 0.5, 0, 0, 100, 1 +tcu_rangeP = array, U08, 22076, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeR = array, U08, 22082, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeN = array, U08, 22088, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeD = array, U08, 22094, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM = array, U08, 22100, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM3 = array, U08, 22106, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM2 = array, U08, 22112, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM1 = array, U08, 22118, [6], "level", 1, 0, 0, 3, 0 +tcu_rangePlus = array, U08, 22124, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeMinus = array, U08, 22130, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeLow = array, U08, 22136, [6], "level", 1, 0, 0, 3, 0 +lambdaMaxDeviationTable = array, U08, 22142, [4x4], "lambda", 0.01, 0, 0, 1, 2 +lambdaMaxDeviationLoadBins = array, U16, 22158, [4], "", 1, 0, 0, 1000, 0 +lambdaMaxDeviationRpmBins = array, U16, 22166, [4], "RPM", 1, 0, 0, 18000, 0 +injectorStagingTable = array, U08, 22174, [6x6], "%", 1, 0, 0, 90, 0 +injectorStagingLoadBins = array, U16, 22210, [6], "", 1, 0, 0, 1000, 0 +injectorStagingRpmBins = array, U16, 22222, [6], "RPM", 1, 0, 0, 18000, 0 +; total TS size = 22236 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type\nset engine_type X" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + rpmHardLimit = "set rpm_hard_limit X" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm\nset engineSnifferRpmThreshold X" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injector_battLagCorr = "ms delay between injector open and close dead times" + injectorSecondary_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injectorSecondary_battLagCorr = "ms delay between injector open and close dead times" + isForcedInduction = "Does the vehicle have a turbo or supercharger?" + useFordRedundantTps = "On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + enableFan1WithAc = "Turn on this fan when AC is on." + enableFan2WithAc = "Turn on this fan when AC is on." + disableFan1WhenStopped = "Inhibit operation of this fan while the engine is not running." + disableFan2WhenStopped = "Inhibit operation of this fan while the engine is not running." + enableTrailingSparks = "Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines)." + etb_use_two_wires = "TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode." + isDoubleSolenoidIdle = "Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position." + useCicPidForIdle = "Switch between Industrial and Cic PID implementation" + useSeparateIdleTablesForCrankingTaper = "This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration)." + doNotFilterTriggerEdgeNoise = "Detect double trigger edges" + useRunningMathForCranking = "For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table)." + displayLogicLevelsInEngineSniffer = "Shall we display real life signal or just the part consumed by trigger decoder.\nApplies to both trigger and cam/vvt input.\n\nenable logic_level_trigger" + verboseCan = "Print incoming and outgoing first bus CAN messages in rusEFI console" + artificialTestMisfire = "Experimental setting that will cause a misfire\nDO NOT ENABLE." + useFordRedundantPps = "On some Ford and Toyota vehicles one of the pedal sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + useSpiImu = "If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages" + tpsMin = "Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel\nset tps_min X" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equipped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equipped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. \nset cranking_rpm X" + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + hip9011PrescalerAndSDO = "value '6' for 8MHz hw osc\nread hip9011 datasheet for details\ntodo split into two bit fields" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override\nRequires power cycling to effect" + displacement = "Engine displacement in litres" + cylindersCount = "Number of cylinder the engine has." + cylinderBore = "Cylinder diameter in mm." + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nAlpha-N means drive by TPS commonly only used for NA engines\nSpeed Density requires MAP sensor and is the default choice for may installs\nMAF air charge is a cylinder filling based method that uses a mass air flow sensor." + crankingInjectionMode = "This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous"." + injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups." + boostControlMinRpm = "Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinTps = "Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinMap = "Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nThere is tapering towards running timing advance\nset cranking_timing_angle X" + ignitionMode = "Single coil = distributor\nIndividual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode\nWasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder\nTwo distributors = A pair of distributors, found on some BMW, Toyota and other engines\nset ignition_mode X" + gapTrackingLengthOverride = "How many consecutive gap rations have to match expected ranges for sync to happen" + maxIdleVss = "Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed)." + minOilPressureAfterStart = "Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting." + timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light)." + fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location." + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchronization point before TDC and negative in case of synchronization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canNbcType = "set can_mode X" + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor. See also pedalPositionAdcChannel" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body position sensor, single channel so far\nset_analog_input_pin tps2 X" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers\nset trigger_type X" + airByRpmTaper = "Extra air taper amount" + boostControlSafeDutyCycle = "Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met." + camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 1" + camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 2" + camInputs3 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 3" + camInputs4 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 4" + throttlePedalPositionAdcChannel = "Electronic throttle pedal position first channel\nSee throttlePedalPositionSecondAdcChannel for second channel\nSee also tps1_1AdcChannel\nset_analog_input_pin pps X\nSee throttlePedalUpVoltage and throttlePedalWOTVoltage" + etbSplit = "TPS/PPS error threshold" + throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" + baroSensor_lowValue = "kPa value at low volts" + baroSensor_highValue = "kPa value at high volts" + manIdlePosition = "Value between 0 and 100 used in Manual mode" + knockRetardAggression = "Ignition timing to remove when a knock event occurs." + knockRetardReapplyRate = "After a knock event, reapply timing at this rate." + engineSyncCam = "Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync." + vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response." + vssGearRatio = "Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0." + vssToothCount = "Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft." + idleVeOverrideMode = "Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectionPins1 = "injectionPins 1" + injectionPins2 = "injectionPins 2" + injectionPins3 = "injectionPins 3" + injectionPins4 = "injectionPins 4" + injectionPins5 = "injectionPins 5" + injectionPins6 = "injectionPins 6" + injectionPins7 = "injectionPins 7" + injectionPins8 = "injectionPins 8" + injectionPins9 = "injectionPins 9" + injectionPins10 = "injectionPins 10" + injectionPins11 = "injectionPins 11" + injectionPins12 = "injectionPins 12" + ignitionPins1 = "ignitionPins 1" + ignitionPins2 = "ignitionPins 2" + ignitionPins3 = "ignitionPins 3" + ignitionPins4 = "ignitionPins 4" + ignitionPins5 = "ignitionPins 5" + ignitionPins6 = "ignitionPins 6" + ignitionPins7 = "ignitionPins 7" + ignitionPins8 = "ignitionPins 8" + ignitionPins9 = "ignitionPins 9" + ignitionPins10 = "ignitionPins 10" + ignitionPins11 = "ignitionPins 11" + ignitionPins12 = "ignitionPins 12" + gapVvtTrackingLengthOverride = "How many consecutive VVT gap rations have to match expected ranges for sync to happen" + malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + clutchDownPin = "Some cars have a switch to indicate that clutch pedal is all the way down" + digitalPotentiometerChipSelect1 = "digitalPotentiometerChipSelect 1" + digitalPotentiometerChipSelect2 = "digitalPotentiometerChipSelect 2" + digitalPotentiometerChipSelect3 = "digitalPotentiometerChipSelect 3" + digitalPotentiometerChipSelect4 = "digitalPotentiometerChipSelect 4" + digitalPotentiometerSpiDevice = "Digital Potentiometer is used by stock ECU stimulation code" + auxFastSensor1_adcChannel = "Useful in Research&Development phase" + tps1_2AdcChannel = "First throttle body, second sensor." + tps2_2AdcChannel = "Second throttle body, second sensor." + throttlePedalPositionSecondAdcChannel = "Electronic throttle pedal position input\nSecond channel\nSee also tps1_1AdcChannel\nSee throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage" + afr_type = "AFR, WBO, EGO - whatever you like to call it" + mc33810_cs1 = "mc33810_cs 1" + idle_antiwindupFreq = "0.1 is a good default value" + triggerInputPins1 = "triggerInputPins 1" + triggerInputPins2 = "triggerInputPins 2" + mc33_t_min_boost = "Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit." + canTxPin = "set_can_tx_pin X" + canRxPin = "set_can_rx_pin X" + acIdleExtraOffset = "Additional idle % while A/C is active" + finalGearRatio = "Ratio between the wheels and your transmission output." + wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!" + wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units" + idlePositionMin = "Voltage when the idle valve is closed.\nYou probably don't have one of these!" + idlePositionMax = "Voltage when the idle valve is open.\nYou probably don't have one of these!\n1 volt = 1000 units" + tunerStudioSerialSpeed = "Secondary TTL channel baud rate" + compressionRatio = "Just for reference really, not taken into account by any logic at this point" + triggerSimulatorPins1 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 1" + triggerSimulatorPins2 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 2" + triggerSimulatorPinModes1 = "triggerSimulatorPinModes 1" + triggerSimulatorPinModes2 = "triggerSimulatorPinModes 2" + o2heaterPin = "On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking." + isSdCardEnabled = "enable sd/disable sd" + rusefiVerbose29b = "Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format." + useStepperIdle = "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed." + enableVerboseCanTx = "CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_broadcast" + measureMapOnlyInOneCylinder = "Useful for individual intakes" + isFasterEngineSpinUpEnabled = "If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled." + coastingFuelCutEnabled = "This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing." + useIacTableForCoasting = "Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle." + disableEtbWhenEngineStopped = "Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary." + pauseEtbControl = "Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle." + enableAemXSeries = "AEM X-Series or rusEFI Wideband" + logicAnalyzerPins1 = "logicAnalyzerPins 1" + logicAnalyzerPins2 = "logicAnalyzerPins 2" + logicAnalyzerPins3 = "logicAnalyzerPins 3" + logicAnalyzerPins4 = "logicAnalyzerPins 4" + mc33_hvolt = "Boost Voltage" + minimumBoostClosedLoopMap = "Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost." + acFanPin = "Optional Radiator Fan used with A/C" + idlePidRpmUpperLimit = "How far above idle speed do we consider idling, i.e. coasting detection threshold.\nFor example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle." + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." + clutchUpPin = "Some vehicles have a switch to indicate that clutch pedal is all the way up" + max31855_cs1 = "max31855_cs 1" + max31855_cs2 = "max31855_cs 2" + max31855_cs3 = "max31855_cs 3" + max31855_cs4 = "max31855_cs 4" + max31855_cs5 = "max31855_cs 5" + max31855_cs6 = "max31855_cs 6" + max31855_cs7 = "max31855_cs 7" + max31855_cs8 = "max31855_cs 8" + flexSensorPin = "Continental/GM flex fuel sensor, 50-150hz type" + stoichRatioSecondary = "Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0" + etbMaximumPosition = "Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open." + sdCardLogFrequency = "Rate the ECU will log to the SD card, in hz (log lines per second)." + starterRelayDisablePinMode = "On some vehicles we can disable starter once engine is already running" + secondSolenoidPin = "Some Subaru and some Mazda use double-solenoid idle air valve" + startStopButtonPin = "See also starterControlPin" + mapMinBufferLength = "This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies." + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%." + startCrankingDuration = "Maximum time to crank starter when start/stop button is pressed" + triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" + lambdaProtectionTimeout = "Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed" + scriptSetting1 = "scriptSetting 1" + scriptSetting2 = "scriptSetting 2" + scriptSetting3 = "scriptSetting 3" + scriptSetting4 = "scriptSetting 4" + scriptSetting5 = "scriptSetting 5" + scriptSetting6 = "scriptSetting 6" + scriptSetting7 = "scriptSetting 7" + scriptSetting8 = "scriptSetting 8" + cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + alphaNUseIat = "In Alpha-N mode, compensate for air temperature." + useRawOutputToDriveIdleStepper = "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils" + verboseCan2 = "Print incoming and outgoing second bus CAN messages in rusEFI console" + etbIo1_controlPin = "Acts as EN pin in two-wire mode" + etbIo2_controlPin = "Acts as EN pin in two-wire mode" + boostControlPin = "Wastegate control Solenoid" + boostPid_offset = "Linear addition to PID logic" + boostPid_periodMs = "PID dTime" + boostPid_minValue = "Output Min Duty Cycle" + boostPid_maxValue = "Output Max Duty Cycle" + launchSpeedThreshold = "Launch disabled above this speed if setting is above zero" + launchTimingRpmRange = "Range from Launch RPM for Timing Retard to activate" + launchSparkSkipPercent = "Spark Skip Transition Target" + 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_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs1_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs1_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs2_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs2_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs2_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs3_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs3_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs3_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs4_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs4_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs4_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stepperDcIo1_controlPin = "Acts as EN pin in two-wire mode" + stepperDcIo2_controlPin = "Acts as EN pin in two-wire mode" + engineMake = "For example, BMW, GM or Chevrolet\nREQUIRED for rusEFI Online" + engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online" + vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online" + tcu_solenoid1 = "tcu_solenoid 1" + tcu_solenoid2 = "tcu_solenoid 2" + tcu_solenoid3 = "tcu_solenoid 3" + tcu_solenoid4 = "tcu_solenoid 4" + tcu_solenoid5 = "tcu_solenoid 5" + tcu_solenoid6 = "tcu_solenoid 6" + etbFunctions1 = "etbFunctions 1" + etbFunctions2 = "etbFunctions 2" + luaOutputPins1 = "luaOutputPins 1" + luaOutputPins2 = "luaOutputPins 2" + luaOutputPins3 = "luaOutputPins 3" + luaOutputPins4 = "luaOutputPins 4" + luaOutputPins5 = "luaOutputPins 5" + luaOutputPins6 = "luaOutputPins 6" + luaOutputPins7 = "luaOutputPins 7" + luaOutputPins8 = "luaOutputPins 8" + vvtOffsets1 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + oddFireEngine = "On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines." + silentTriggerError = "Sometimes we have a performance issue while printing error" + canReadEnabled = "enable can_read/disable can_read" + canWriteEnabled = "enable can_write/disable can_write. See also can1ListenMode" + tachPulseDurationAsDutyCycle = "Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%" + isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings." + invertPrimaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the primary engine speed sensor." + invertSecondaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the secondary engine speed sensor." + cutSparkOnHardLimit = "Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer." + launchSparkCutEnable = "This is the Cut Mode normally used" + verboseIsoTp = "Are you a developer troubleshooting TS over CAN ISO/TP?" + skippedWheelOnCam = "Where is your primary skipped wheel located?" + acSwitch = "A/C button input" + etbNeutralPosition = "Expected neutral position" + idleMode = "See also idleRpmPid" + isCylinderCleanupEnabled = "When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders." + complexWallModel = "Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?" + alwaysInstantRpm = "RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution" + overrideCrankingIacSetting = "If enabled, use separate temperature multiplier table for cranking idle position.\nIf disabled, use normal running multiplier table applied to the cranking base position." + useSeparateAdvanceForIdle = "This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed." + useSeparateVeForIdle = "This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling." + verboseTriggerSynchDetails = "Verbose info in console below engineSnifferRpmThreshold\nenable trigger_details" + isManualSpinningMode = "Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed" + twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)." + useSeparateAdvanceForCranking = "In Constant mode, timing is automatically tapered to running as RPM increases.\nIn Table mode, the "Cranking ignition advance" table is used directly." + useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).\nYou probably don't need this." + flexCranking = "Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor." + useIacPidMultTable = "This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller" + launchSmoothRetard = "Interpolates the Ignition Retard from 0 to 100% within the RPM Range" + isPhaseSyncRequiredForIgnition = "Some engines are OK running semi-random sequential while other engine require phase synchronization" + useCltBasedRpmLimit = "If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value." + forceO2Heating = "If enabled, don't wait for engine start to heat O2 sensors. WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element." + invertVvtControlIntake = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + invertVvtControlExhaust = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + sdTriggerLog = "'Trigger' mode will write a high speed log of trigger events (warning: uses lots of space!). 'Normal' mode will write a standard MLG of sensors, engine function, etc. similar to the one captured in TunerStudio." + camInputsDebug1 = "camInputsDebug 1" + camInputsDebug2 = "camInputsDebug 2" + camInputsDebug3 = "camInputsDebug 3" + camInputsDebug4 = "camInputsDebug 4" + acIdleRpmTarget = "Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling." + warningPeriod = "set warningPeriod X" + noAccelAfterHardLimitPeriodSecs = "TODO: finish this #413" + mapAveragingSchedulingAtIndex = "At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + tachPulseDuractionMs = "Duration in ms or duty cycle depending on selected mode" + wwaeTau = "Length of time the deposited wall fuel takes to dissipate after the start of acceleration." + alternatorControl_offset = "Linear addition to PID logic" + alternatorControl_periodMs = "PID dTime" + alternatorControl_minValue = "Output Min Duty Cycle" + alternatorControl_maxValue = "Output Max Duty Cycle" + etb_offset = "Linear addition to PID logic" + etb_periodMs = "PID dTime" + etb_minValue = "Output Min Duty Cycle" + etb_maxValue = "Output Max Duty Cycle" + triggerInputDebugPins1 = "triggerInputDebugPins 1" + triggerInputDebugPins2 = "triggerInputDebugPins 2" + airTaperRpmRange = "RPM range above upper limit for extra air taper" + tps2Min = "Closed throttle#2. todo: extract these two fields into a structure\nSee also tps2_1AdcChannel\nset tps2_min X" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel\nset tps2_max X" + starterControlPin = "See also startStopButtonPin" + mapErrorDetectionTooLow = "kPa value which is too low to be true" + mapErrorDetectionTooHigh = "kPa value which is too high to be true" + multisparkSparkDuration = "How long to wait for the spark to fire before recharging the coil for another spark." + multisparkDwell = "This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table." + idleRpmPid_offset = "Linear addition to PID logic" + idleRpmPid_periodMs = "PID dTime" + idleRpmPid_minValue = "Output Min Duty Cycle" + idleRpmPid_maxValue = "Output Max Duty Cycle" + wwaeBeta = "0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment." + binarySerialTxPin = "See also EFI_CONSOLE_RX_BRAIN_PIN" + auxValves1 = "auxValves 1" + auxValves2 = "auxValves 2" + throttlePedalWOTVoltage = "Pedal in the floor" + startUpFuelPumpDuration = "on IGN voltage detection turn fuel pump on to build fuel pressure" + idlePidRpmDeadZone = "If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation" + targetVBatt = "This is the target battery voltage the alternator PID control will attempt to maintain" + mc33810DisableRecoveryMode = "See Over/Undervoltage Shutdown/Retry bit in documentation" + useVssAsSecondWheelSpeed = "VSS and auxSpeed1 or auxSpeed1 with auxSpeed2?" + 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 = "IAC Value added when coasting and transitioning into idle." + auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + tpsAccelLookback = "How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs." + coastingFuelCutVssLow = "Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + coastingFuelCutVssHigh = "Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + noFuelTrimAfterDfcoTime = "Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut." + tpsAccelEnrichmentThreshold = "Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in." + auxSpeedSensorInputPin1 = "auxSpeedSensorInputPin 1" + auxSpeedSensorInputPin2 = "auxSpeedSensorInputPin 2" + injectionTimingMode = "Sets what part of injection's is controlled by the injection phase table." + debugMode = "See http://rusefi.com/s/debugmode" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + uartConsoleSerialSpeed = "Band rate for primary TTL" + tpsDecelEnleanmentThreshold = "For decel we simply multiply delta of TPS and tFor decel we do not use table?!" + tpsDecelEnleanmentMultiplier = "Magic multiplier, we multiply delta of TPS and get fuel squirt duration" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + can1ListenMode = "ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled" + benchTestOnTime = "Duration of each test pulse" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output solenoid pin for this cam 1" + vvtPins2 = "VVT output solenoid pin for this cam 2" + vvtPins3 = "VVT output solenoid pin for this cam 3" + vvtPins4 = "VVT output solenoid pin for this cam 4" + crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling." + minimumIgnitionTiming = "Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint." + maximumIgnitionTiming = "Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC" + vvtMode1 = "set vvt_mode X 1" + vvtMode2 = "set vvt_mode X 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder ignition and fueling timing correction for uneven engines 1" + timing_offset_cylinder2 = "per-cylinder ignition and fueling timing correction for uneven engines 2" + timing_offset_cylinder3 = "per-cylinder ignition and fueling timing correction for uneven engines 3" + timing_offset_cylinder4 = "per-cylinder ignition and fueling timing correction for uneven engines 4" + timing_offset_cylinder5 = "per-cylinder ignition and fueling timing correction for uneven engines 5" + timing_offset_cylinder6 = "per-cylinder ignition and fueling timing correction for uneven engines 6" + timing_offset_cylinder7 = "per-cylinder ignition and fueling timing correction for uneven engines 7" + timing_offset_cylinder8 = "per-cylinder ignition and fueling timing correction for uneven engines 8" + timing_offset_cylinder9 = "per-cylinder ignition and fueling timing correction for uneven engines 9" + timing_offset_cylinder10 = "per-cylinder ignition and fueling timing correction for uneven engines 10" + timing_offset_cylinder11 = "per-cylinder ignition and fueling timing correction for uneven engines 11" + timing_offset_cylinder12 = "per-cylinder ignition and fueling timing correction for uneven engines 12" + spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." + mc33816_rstb = "ResetB" + brakePedalPin = "Brake pedal switch" + auxPid1_offset = "Linear addition to PID logic" + auxPid1_periodMs = "PID dTime" + auxPid1_minValue = "Output Min Duty Cycle" + auxPid1_maxValue = "Output Max Duty Cycle" + auxPid2_offset = "Linear addition to PID logic" + auxPid2_periodMs = "PID dTime" + auxPid2_minValue = "Output Min Duty Cycle" + auxPid2_maxValue = "Output Max Duty Cycle" + injectorCorrectionPolynomial1 = "injectorCorrectionPolynomial 1" + injectorCorrectionPolynomial2 = "injectorCorrectionPolynomial 2" + injectorCorrectionPolynomial3 = "injectorCorrectionPolynomial 3" + injectorCorrectionPolynomial4 = "injectorCorrectionPolynomial 4" + injectorCorrectionPolynomial5 = "injectorCorrectionPolynomial 5" + injectorCorrectionPolynomial6 = "injectorCorrectionPolynomial 6" + injectorCorrectionPolynomial7 = "injectorCorrectionPolynomial 7" + injectorCorrectionPolynomial8 = "injectorCorrectionPolynomial 8" + fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + sentInputPins1 = "sentInputPins 1" + 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 = 1468 + +; 11.2.3 Full Optimized – High Speed + scatteredOchGetCommand = 9 + scatteredOffsetArray = highSpeedOffsets +#if CONN_SLOW + scatteredGetEnabled = { 1 } +#else + scatteredGetEnabled = { 0 } +#endif + +; +; see TunerStudioOutputChannels struct +; + +sd_present = bits, U32, 0, [0:0] +sd_logging_internal = bits, U32, 0, [1:1] +triggerScopeReady = bits, U32, 0, [2:2] +antilagTriggered = bits, U32, 0, [3:3] +isFanOn = bits, U32, 0, [4:4] +isO2HeaterOn = bits, U32, 0, [5:5] +checkEngine = bits, U32, 0, [6:6] +needBurn = bits, U32, 0, [7:7] +sd_msd = bits, U32, 0, [8:8] +isFan2On = bits, U32, 0, [9:9] +toothLogReady = bits, U32, 0, [10:10] +isTpsError = bits, U32, 0, [11:11] +isCltError = bits, U32, 0, [12:12] +isMapError = bits, U32, 0, [13:13] +isIatError = bits, U32, 0, [14:14] +isTriggerError = bits, U32, 0, [15:15] +hasCriticalError = bits, U32, 0, [16:16] +isWarnNow = bits, U32, 0, [17:17] +isPedalError = bits, U32, 0, [18:18] +isKnockChipOk = bits, U32, 0, [19:19] +launchTriggered = bits, U32, 0, [20:20] +isTps2Error = bits, U32, 0, [21:21] +injectorFault = bits, U32, 0, [22:22] +ignitionFault = bits, U32, 0, [23:23] +isMainRelayOn = bits, U32, 0, [24:24] +isUsbConnected = bits, U32, 0, [25:25] +dfcoActive = bits, U32, 0, [26:26] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, S16, 6, "RPM acceleration", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +unusedVehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +VBatt = scalar, U16, 36, "V", 0.001, 0 +oilPressure = scalar, U16, 38, "kPa", 0.03333333333333333, 0 +vvtPositionB1I = scalar, S16, 40, "deg", 0.02, 0 +actualLastInjection = scalar, U16, 42, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 44, "%", 0.5, 0 +injectionOffset = scalar, S16, 46, "deg", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 48, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 50, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 52, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 54, "", 1, 0 +canReadCounter = scalar, U16, 56, "", 1, 0 +tpsAccelFuel = scalar, S16, 58, "ms", 0.0033333333333333335, 0 +currentIgnitionMode = scalar, U08, 60, "", 1, 0 +currentInjectionMode = scalar, U08, 61, "", 1, 0 +coilDutyCycle = scalar, U16, 62, "%", 0.01, 0 +etbTarget = scalar, S16, 64, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 66, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 68, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 70, "grams", 1, 0 +fuelFlowRate = scalar, U16, 72, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 74, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 76, "crc16", 1, 0 +veValue = scalar, U16, 78, "ratio", 0.1, 0 +seconds = scalar, U32, 80, "sec", 1, 0 +engineMode = scalar, U32, 84, "em", 1, 0 +firmwareVersion = scalar, U32, 88, "version_f", 1, 0 +rawIdlePositionSensor = scalar, S16, 92, "V", 0.001, 0 +rawWastegatePosition = scalar, S16, 94, "V", 0.001, 0 +accelerationLat = scalar, S16, 96, "G", 0.001, 0 +accelerationLon = scalar, S16, 98, "G", 0.001, 0 +detectedGear = scalar, U08, 100, "", 1, 0 +maxTriggerReentrant = scalar, U08, 101, "", 1, 0 +rawLowFuelPressure = scalar, S16, 102, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 104, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 106, "kpa", 0.03333333333333333, 0 +tcuDesiredGear = scalar, S08, 108, "gear", 1, 0 +flexPercent = scalar, U08, 109, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 110, "%", 0.01, 0 +highFuelPressure = scalar, S16, 112, "bar", 0.1, 0 +calibrationValue = scalar, F32, 116, "", 1, 0 +calibrationMode = scalar, U08, 120, "", 1, 0 +idleStepperTargetPosition = scalar, U08, 121, "", 1, 0 +tsConfigVersion = scalar, U32, 124, "", 1, 0 +totalTriggerErrorCounter = scalar, U32, 128, "counter", 1, 0 +orderingErrorCounter = scalar, U32, 132, "", 1, 0 +warningCounter = scalar, U16, 136, "count", 1, 0 +lastErrorCode = scalar, U16, 138, "error", 1, 0 +recentErrorCode1 = scalar, U16, 140, "error", 1, 0 +recentErrorCode2 = scalar, U16, 142, "error", 1, 0 +recentErrorCode3 = scalar, U16, 144, "error", 1, 0 +recentErrorCode4 = scalar, U16, 146, "error", 1, 0 +recentErrorCode5 = scalar, U16, 148, "error", 1, 0 +recentErrorCode6 = scalar, U16, 150, "error", 1, 0 +recentErrorCode7 = scalar, U16, 152, "error", 1, 0 +recentErrorCode8 = scalar, U16, 154, "error", 1, 0 +debugFloatField1 = scalar, F32, 156, "val", 1, 0 +debugFloatField2 = scalar, F32, 160, "val", 1, 0 +debugFloatField3 = scalar, F32, 164, "val", 1, 0 +debugFloatField4 = scalar, F32, 168, "val", 1, 0 +debugFloatField5 = scalar, F32, 172, "val", 1, 0 +debugFloatField6 = scalar, F32, 176, "val", 1, 0 +debugFloatField7 = scalar, F32, 180, "val", 1, 0 +debugIntField1 = scalar, U32, 184, "val", 1, 0 +debugIntField2 = scalar, U32, 188, "val", 1, 0 +debugIntField3 = scalar, U32, 192, "val", 1, 0 +debugIntField4 = scalar, S16, 196, "val", 1, 0 +debugIntField5 = scalar, S16, 198, "val", 1, 0 +egt1 = scalar, U16, 200, "deg C", 1, 0 +egt2 = scalar, U16, 202, "deg C", 1, 0 +egt3 = scalar, U16, 204, "deg C", 1, 0 +egt4 = scalar, U16, 206, "deg C", 1, 0 +egt5 = scalar, U16, 208, "deg C", 1, 0 +egt6 = scalar, U16, 210, "deg C", 1, 0 +egt7 = scalar, U16, 212, "deg C", 1, 0 +egt8 = scalar, U16, 214, "deg C", 1, 0 +rawTps1Primary = scalar, S16, 216, "V", 0.001, 0 +rawPpsPrimary = scalar, S16, 218, "V", 0.001, 0 +rawClt = scalar, S16, 220, "V", 0.001, 0 +rawIat = scalar, S16, 222, "V", 0.001, 0 +rawOilPressure = scalar, S16, 224, "V", 0.001, 0 +fuelClosedLoopBinIdx = scalar, U08, 226, "", 1, 0 +rawPpsSecondary = scalar, S16, 228, "V", 0.001, 0 +idlePositionSensor = scalar, S16, 230, "%", 0.01, 0 +AFRValue = scalar, U16, 232, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 234, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 236, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 238, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 240, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 242, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 244, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 246, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 248, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 250, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 252, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 254, "V", 0.001, 0 +accelerationVert = scalar, S16, 256, "G", 0.001, 0 +gyroYaw = scalar, S16, 258, "deg/sec", 0.001, 0 +vvtTargets1 = scalar, S08, 260, "deg", 1, 0 +vvtTargets2 = scalar, S08, 261, "deg", 1, 0 +vvtTargets3 = scalar, S08, 262, "deg", 1, 0 +vvtTargets4 = scalar, S08, 263, "deg", 1, 0 +turboSpeed = scalar, U16, 264, "hz", 1, 0 +ignitionAdvanceCyl1 = scalar, S16, 266, "deg", 0.02, 0 +ignitionAdvanceCyl2 = scalar, S16, 268, "deg", 0.02, 0 +ignitionAdvanceCyl3 = scalar, S16, 270, "deg", 0.02, 0 +ignitionAdvanceCyl4 = scalar, S16, 272, "deg", 0.02, 0 +ignitionAdvanceCyl5 = scalar, S16, 274, "deg", 0.02, 0 +ignitionAdvanceCyl6 = scalar, S16, 276, "deg", 0.02, 0 +ignitionAdvanceCyl7 = scalar, S16, 278, "deg", 0.02, 0 +ignitionAdvanceCyl8 = scalar, S16, 280, "deg", 0.02, 0 +ignitionAdvanceCyl9 = scalar, S16, 282, "deg", 0.02, 0 +ignitionAdvanceCyl10 = scalar, S16, 284, "deg", 0.02, 0 +ignitionAdvanceCyl11 = scalar, S16, 286, "deg", 0.02, 0 +ignitionAdvanceCyl12 = scalar, S16, 288, "deg", 0.02, 0 +tps1Split = scalar, S16, 290, "%", 0.01, 0 +tps2Split = scalar, S16, 292, "%", 0.01, 0 +tps12Split = scalar, S16, 294, "%", 0.01, 0 +accPedalSplit = scalar, S16, 296, "%", 0.01, 0 +sparkCutReason = scalar, S08, 298, "code", 1, 0 +fuelCutReason = scalar, S08, 299, "code", 1, 0 +mafEstimate = scalar, U16, 300, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 302, "rpm", 1, 0 +rawMap = scalar, U16, 304, "V", 0.001, 0 +rawAfr = scalar, U16, 306, "V", 0.001, 0 +calibrationValue2 = scalar, F32, 308, "", 1, 0 +luaInvocationCounter = scalar, U32, 312, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 316, "nt", 1, 0 +vssEdgeCounter = scalar, U32, 320, "", 1, 0 +issEdgeCounter = scalar, U32, 324, "", 1, 0 +auxLinear1 = scalar, S16, 328, "", 0.01, 0 +auxLinear2 = scalar, S16, 330, "", 0.01, 0 +fallbackMap = scalar, U16, 332, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 334, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 336, "us", 1, 0 +canWriteOk = scalar, U16, 338, "", 1, 0 +canWriteNotOk = scalar, U16, 340, "", 1, 0 +triggerPrimaryFall = scalar, U32, 344, "", 1, 0 +triggerPrimaryRise = scalar, U32, 348, "", 1, 0 +triggerSecondaryFall = scalar, U32, 352, "", 1, 0 +triggerSecondaryRise = scalar, U32, 356, "", 1, 0 +triggerVvtFall = scalar, U16, 360, "", 1, 0 +triggerVvtRise = scalar, U16, 362, "", 1, 0 +triggerVvt2Fall = scalar, U16, 364, "", 1, 0 +triggerVvt2Rise = scalar, U16, 366, "", 1, 0 +starterState = scalar, U08, 368, "", 1, 0 +starterRelayDisable = scalar, U08, 369, "", 1, 0 +multiSparkCounter = scalar, U08, 370, "", 1, 0 +extiOverflowCount = scalar, U08, 371, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 372, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 376, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 378, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 380, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 382, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 384, "", 1, 0 +idleStatus_pTerm = scalar, F32, 388, "", 1, 0 +idleStatus_iTerm = scalar, S16, 392, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 394, "", 0.01, 0 +idleStatus_output = scalar, S16, 396, "", 0.01, 0 +idleStatus_error = scalar, S16, 398, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 400, "", 1, 0 +etbStatus_pTerm = scalar, F32, 404, "", 1, 0 +etbStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +etbStatus_output = scalar, S16, 412, "", 0.01, 0 +etbStatus_error = scalar, S16, 414, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 416, "", 1, 0 +boostStatus_pTerm = scalar, F32, 420, "", 1, 0 +boostStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +boostStatus_output = scalar, S16, 428, "", 0.01, 0 +boostStatus_error = scalar, S16, 430, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 432, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 436, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 444, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 446, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 448, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 452, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 456, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 458, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 460, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 462, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 464, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 468, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 472, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 474, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 476, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 478, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 512, "", 1, 0 +auxSpeed1 = scalar, U16, 516, "s", 1, 0 +auxSpeed2 = scalar, U16, 518, "s", 1, 0 +ISSValue = scalar, U16, 520, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 522, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 524, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 526, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 528, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 530, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 532, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 534, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 536, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 538, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 539, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 540, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 541, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 542, "", 1, 0 +gppwmXAxis2 = scalar, S16, 544, "", 1, 0 +gppwmXAxis3 = scalar, S16, 546, "", 1, 0 +gppwmXAxis4 = scalar, S16, 548, "", 1, 0 +gppwmYAxis1 = scalar, S16, 550, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 552, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 554, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 556, "", 0.1, 0 +rawBattery = scalar, S16, 558, "V", 0.001, 0 +ignBlendParameter1 = scalar, S16, 560, "", 0.1, 0 +ignBlendParameter2 = scalar, S16, 562, "", 0.1, 0 +ignBlendParameter3 = scalar, S16, 564, "", 0.1, 0 +ignBlendParameter4 = scalar, S16, 566, "", 0.1, 0 +ignBlendBias1 = scalar, U08, 568, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 569, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 570, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 571, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 572, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 574, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 576, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 578, "deg", 0.01, 0 +veBlendParameter1 = scalar, S16, 580, "", 0.1, 0 +veBlendParameter2 = scalar, S16, 582, "", 0.1, 0 +veBlendParameter3 = scalar, S16, 584, "", 0.1, 0 +veBlendParameter4 = scalar, S16, 586, "", 0.1, 0 +veBlendBias1 = scalar, U08, 588, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 589, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 590, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 591, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 592, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 594, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 596, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 598, "%", 0.01, 0 +boostOpenLoopBlendParameter1 = scalar, S16, 600, "", 0.1, 0 +boostOpenLoopBlendParameter2 = scalar, S16, 602, "", 0.1, 0 +boostOpenLoopBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +boostOpenLoopBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +boostOpenLoopBlendOutput1 = scalar, S08, 606, "%", 1, 0 +boostOpenLoopBlendOutput2 = scalar, S08, 607, "%", 1, 0 +boostClosedLoopBlendParameter1 = scalar, S16, 608, "", 0.1, 0 +boostClosedLoopBlendParameter2 = scalar, S16, 610, "", 0.1, 0 +boostClosedLoopBlendBias1 = scalar, U08, 612, "%", 0.5, 0 +boostClosedLoopBlendBias2 = scalar, U08, 613, "%", 0.5, 0 +boostClosedLoopBlendOutput1 = scalar, S16, 614, "%", 0.1, 0 +boostClosedLoopBlendOutput2 = scalar, S16, 616, "%", 0.1, 0 +coilState1 = bits, U32, 620, [0:0] +coilState2 = bits, U32, 620, [1:1] +coilState3 = bits, U32, 620, [2:2] +coilState4 = bits, U32, 620, [3:3] +coilState5 = bits, U32, 620, [4:4] +coilState6 = bits, U32, 620, [5:5] +coilState7 = bits, U32, 620, [6:6] +coilState8 = bits, U32, 620, [7:7] +coilState9 = bits, U32, 620, [8:8] +coilState10 = bits, U32, 620, [9:9] +coilState11 = bits, U32, 620, [10:10] +coilState12 = bits, U32, 620, [11:11] +injectorState1 = bits, U32, 620, [12:12] +injectorState2 = bits, U32, 620, [13:13] +injectorState3 = bits, U32, 620, [14:14] +injectorState4 = bits, U32, 620, [15:15] +injectorState5 = bits, U32, 620, [16:16] +injectorState6 = bits, U32, 620, [17:17] +injectorState7 = bits, U32, 620, [18:18] +injectorState8 = bits, U32, 620, [19:19] +injectorState9 = bits, U32, 620, [20:20] +injectorState10 = bits, U32, 620, [21:21] +injectorState11 = bits, U32, 620, [22:22] +injectorState12 = bits, U32, 620, [23:23] +triggerChannel1 = bits, U32, 620, [24:24] +triggerChannel2 = bits, U32, 620, [25:25] +vvtChannel1 = bits, U32, 620, [26:26] +vvtChannel2 = bits, U32, 620, [27:27] +vvtChannel3 = bits, U32, 620, [28:28] +vvtChannel4 = bits, U32, 620, [29:29] +outputRequestPeriod = scalar, U32, 624, "", 1, 0 +mapFast = scalar, F32, 628, "", 1, 0 +luaGauges1 = scalar, F32, 632, "value", 1, 0 +luaGauges2 = scalar, F32, 636, "value", 1, 0 +rawMaf2 = scalar, U16, 640, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 642, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 644, "", 1,0 +vehicleSpeedKph = scalar, U16, 646, "kph", 0.01, 0 +Gego = scalar, U16, 648, "%", 0.01,0 +testBenchIter = scalar, U16, 650, "count", 1, 0 +oilTemp = scalar, S16, 652, "deg C", 0.01, 0 +fuelTemp = scalar, S16, 654, "deg C", 0.01, 0 +ambientTemp = scalar, S16, 656, "deg C", 0.01, 0 +compressorDischargeTemp = scalar, S16, 658, "deg C", 0.01, 0 +compressorDischargePressure = scalar, U16, 660, "kPa", 0.03333333333333333, 0 +throttleInletPressure = scalar, U16, 662, "kPa", 0.03333333333333333, 0 +ignitionOnTime = scalar, U16, 664, "sec", 1,0 +engineRunTime = scalar, U16, 666, "sec", 1,0 +distanceTraveled = scalar, U16, 668, "km", 0.1,0 +afrGasolineScale = scalar, U16, 670, "AFR", 0.001, 0 +afr2GasolineScale = scalar, U16, 672, "AFR", 0.001, 0 +wheelSlipRatio = scalar, F32, 676, "", 1, 0 +ignitorDiagnostic1 = scalar, U08, 680, "", 1, 0 +ignitorDiagnostic2 = scalar, U08, 681, "", 1, 0 +ignitorDiagnostic3 = scalar, U08, 682, "", 1, 0 +ignitorDiagnostic4 = scalar, U08, 683, "", 1, 0 +ignitorDiagnostic5 = scalar, U08, 684, "", 1, 0 +ignitorDiagnostic6 = scalar, U08, 685, "", 1, 0 +ignitorDiagnostic7 = scalar, U08, 686, "", 1, 0 +ignitorDiagnostic8 = scalar, U08, 687, "", 1, 0 +ignitorDiagnostic9 = scalar, U08, 688, "", 1, 0 +ignitorDiagnostic10 = scalar, U08, 689, "", 1, 0 +ignitorDiagnostic11 = scalar, U08, 690, "", 1, 0 +ignitorDiagnostic12 = scalar, U08, 691, "", 1, 0 +injectorDiagnostic1 = scalar, U08, 692, "", 1, 0 +injectorDiagnostic2 = scalar, U08, 693, "", 1, 0 +injectorDiagnostic3 = scalar, U08, 694, "", 1, 0 +injectorDiagnostic4 = scalar, U08, 695, "", 1, 0 +injectorDiagnostic5 = scalar, U08, 696, "", 1, 0 +injectorDiagnostic6 = scalar, U08, 697, "", 1, 0 +injectorDiagnostic7 = scalar, U08, 698, "", 1, 0 +injectorDiagnostic8 = scalar, U08, 699, "", 1, 0 +injectorDiagnostic9 = scalar, U08, 700, "", 1, 0 +injectorDiagnostic10 = scalar, U08, 701, "", 1, 0 +injectorDiagnostic11 = scalar, U08, 702, "", 1, 0 +injectorDiagnostic12 = scalar, U08, 703, "", 1, 0 +actualLastInjectionStage2 = scalar, U16, 704, "ms", 0.0033333333333333335, 0 +injectorDutyCycleStage2 = scalar, U08, 706, "%", 0.5, 0 +unusedAtTheEnd1 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 777, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 778, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 779, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 780, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 781, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 782, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 783, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 784, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 785, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 786, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 787, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 788, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 789, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 790, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 791, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 792, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 793, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 794, "", 1, 0 +; total TS size = 796 +totalFuelCorrection = scalar, F32, 796, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 800, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 804, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 808, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 812, "secs", 1,0 +running_baseFuel = scalar, U16, 816, "mg", 0.01, 0 +running_fuel = scalar, U16, 818, "mg", 0.01, 0 +afrTableYAxis = scalar, U16, 820, "%", 0.01,0 +targetLambda = scalar, U16, 822, "", 1.0E-4,0 +targetAFR = scalar, U16, 824, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 826, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 828, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 832, "g", 1, 0 +normalizedCylinderFilling = scalar, F32, 836, "%", 1, 0 +brokenInjector = scalar, U08, 840, "", 1, 0 +unused88 = scalar, U08, 841, "", 1, 0 +idealEngineTorque = scalar, U16, 842, "", 1, 0 +injectorHwIssue = bits, U32, 844, [0:0] +; total TS size = 848 +baseDwell = scalar, F32, 848, "ms", 1,0 +sparkDwell = scalar, F32, 852, "ms", 1,0 +dwellDurationAngle = scalar, F32, 856, "deg", 1,0 +cltTimingCorrection = scalar, S16, 860, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 862, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 864, "deg", 0.01,0 +baseIgnitionAdvance = scalar, S16, 866, "deg", 0.02, 0 +correctedIgnitionAdvance = scalar, S16, 868, "deg", 0.02, 0 +tractionAdvanceDrop = scalar, S16, 870, "deg", 0.02, 0 +dwellVoltageCorrection = scalar, F32, 872, "", 1, 0 +luaTimingAdd = scalar, F32, 876, "deg", 1, 0 +luaTimingMult = scalar, F32, 880, "deg", 1, 0 +luaIgnitionSkip = bits, U32, 884, [0:0] +; total TS size = 888 +m_knockLevel = scalar, F32, 888, "Volts", 1, 0 +m_knockCyl1 = scalar, S08, 892, "dBv", 1, 0 +m_knockCyl2 = scalar, S08, 893, "dBv", 1, 0 +m_knockCyl3 = scalar, S08, 894, "dBv", 1, 0 +m_knockCyl4 = scalar, S08, 895, "dBv", 1, 0 +m_knockCyl5 = scalar, S08, 896, "dBv", 1, 0 +m_knockCyl6 = scalar, S08, 897, "dBv", 1, 0 +m_knockCyl7 = scalar, S08, 898, "dBv", 1, 0 +m_knockCyl8 = scalar, S08, 899, "dBv", 1, 0 +m_knockCyl9 = scalar, S08, 900, "dBv", 1, 0 +m_knockCyl10 = scalar, S08, 901, "dBv", 1, 0 +m_knockCyl11 = scalar, S08, 902, "dBv", 1, 0 +m_knockCyl12 = scalar, S08, 903, "dBv", 1, 0 +m_knockRetard = scalar, F32, 904, "deg", 1,0 +m_knockThreshold = scalar, F32, 908, "", 1, 0 +m_knockCount = scalar, U32, 912, "", 1, 0 +m_maximumRetard = scalar, F32, 916, "", 1, 0 +; total TS size = 920 +tcuCurrentGear = scalar, S08, 920, "gear", 1, 0 +tcRatio = scalar, U16, 922, "value", 0.01, 0 +lastShiftTime = scalar, F32, 924, "", 1, 0 +tcu_currentRange = scalar, U08, 928, "", 1, 0 +; total TS size = 932 +throttleUseWotModel = bits, U32, 932, [0:0] +throttleModelCrossoverAngle = scalar, S16, 936, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 940, "g/s", 1, 0 +; total TS size = 944 +m_requested_pump = scalar, F32, 944, "", 1, 0 +fuel_requested_percent = scalar, F32, 948, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 952, "", 1, 0 +noValve = bits, U32, 956, [0:0] +angleAboveMin = bits, U32, 956, [1:1] +isHpfpInactive = bits, U32, 956, [2:2] +m_pressureTarget_kPa = scalar, F32, 960, "", 1, 0 +nextLobe = scalar, F32, 964, "", 1, 0 +di_nextStart = scalar, F32, 968, "v", 1, 0 +; total TS size = 972 +m_deadtime = scalar, F32, 972, "ms", 1, 0 +pressureDelta = scalar, F32, 976, "kPa", 1, 0 +pressureRatio = scalar, F32, 980, "", 1, 0 +; total TS size = 984 +retardThresholdRpm = scalar, S32, 984, "", 1, 0 +combinedConditions = bits, U32, 988, [0:0] +launchActivatePinState = bits, U32, 988, [1:1] +isLaunchPreCondition = bits, U32, 988, [2:2] +isLaunchCondition = bits, U32, 988, [3:3] +isSwitchActivated = bits, U32, 988, [4:4] +isClutchActivated = bits, U32, 988, [5:5] +isValidInputPin = bits, U32, 988, [6:6] +activateSwitchCondition = bits, U32, 988, [7:7] +rpmCondition = bits, U32, 988, [8:8] +speedCondition = bits, U32, 988, [9:9] +tpsCondition = bits, U32, 988, [10:10] +; total TS size = 992 +isAntilagCondition = bits, U32, 992, [0:0] +ALSMinRPMCondition = bits, U32, 992, [1:1] +ALSMaxRPMCondition = bits, U32, 992, [2:2] +ALSMinCLTCondition = bits, U32, 992, [3:3] +ALSMaxCLTCondition = bits, U32, 992, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 992, [5:5] +isALSSwitchActivated = bits, U32, 992, [6:6] +ALSActivatePinState = bits, U32, 992, [7:7] +ALSSwitchCondition = bits, U32, 992, [8:8] +ALSTimerCondition = bits, U32, 992, [9:9] +fuelALSCorrection = scalar, F32, 996, "", 1, 0 +timingALSCorrection = scalar, S16, 1000, "deg", 0.01, 0 +timingALSSkip = scalar, S16, 1002, "deg", 0.01, 0 +; total TS size = 1004 +isTpsInvalid = bits, U32, 1004, [0:0] +m_shouldResetPid = bits, U32, 1004, [1:1] +isBelowClosedLoopThreshold = bits, U32, 1004, [2:2] +isNotClosedLoop = bits, U32, 1004, [3:3] +isZeroRpm = bits, U32, 1004, [4:4] +hasInitBoost = bits, U32, 1004, [5:5] +rpmTooLow = bits, U32, 1004, [6:6] +tpsTooLow = bits, U32, 1004, [7:7] +mapTooLow = bits, U32, 1004, [8:8] +isPlantValid = bits, U32, 1004, [9:9] +isBoostControlled = bits, U32, 1004, [10:10] +luaTargetAdd = scalar, S16, 1008, "v", 0.5,0 +boostOutput = scalar, S16, 1010, "percent", 0.01,0 +luaTargetMult = scalar, F32, 1012, "v", 1,0 +openLoopPart = scalar, F32, 1016, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 1020, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 1024, "%", 0.5,0 +boostControlTarget = scalar, S16, 1026, "kPa", 0.03333333333333333,0 +; total TS size = 1028 +acButtonState = scalar, S08, 1028, "", 1, 0 +m_acEnabled = bits, U32, 1032, [0:0] +engineTooSlow = bits, U32, 1032, [1:1] +engineTooFast = bits, U32, 1032, [2:2] +noClt = bits, U32, 1032, [3:3] +engineTooHot = bits, U32, 1032, [4:4] +tpsTooHigh = bits, U32, 1032, [5:5] +isDisabledByLua = bits, U32, 1032, [6:6] +acCompressorState = bits, U32, 1032, [7:7] +latest_usage_ac_control = scalar, S32, 1036, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 1040, "", 1, 0 +; total TS size = 1044 +cranking0 = bits, U32, 1044, [0:0] +notRunning0 = bits, U32, 1044, [1:1] +disabledWhileEngineStopped0 = bits, U32, 1044, [2:2] +brokenClt0 = bits, U32, 1044, [3:3] +enabledForAc0 = bits, U32, 1044, [4:4] +hot0 = bits, U32, 1044, [5:5] +cold0 = bits, U32, 1044, [6:6] +disabledBySpeed0 = bits, U32, 1044, [7:7] +; total TS size = 1048 +isPrime = bits, U32, 1048, [0:0] +engineTurnedRecently = bits, U32, 1048, [1:1] +isFuelPumpOn = bits, U32, 1048, [2:2] +ignitionOn = bits, U32, 1048, [3:3] +; total TS size = 1052 +isBenchTest = bits, U32, 1052, [0:0] +hasIgnitionVoltage = bits, U32, 1052, [1:1] +mainRelayState = bits, U32, 1052, [2:2] +delayedShutoffRequested = bits, U32, 1052, [3:3] +; total TS size = 1056 +lua_fuelAdd = scalar, F32, 1056, "g", 1, 0 +lua_fuelMult = scalar, F32, 1060, "", 1, 0 +lua_clutchUpState = bits, U32, 1064, [0:0] +lua_brakePedalState = bits, U32, 1064, [1:1] +lua_acRequestState = bits, U32, 1064, [2:2] +lua_luaDisableEtb = bits, U32, 1064, [3:3] +lua_luaIgnCut = bits, U32, 1064, [4:4] +sd_tCharge = scalar, S16, 1068, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1072, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1076, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1080, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1084, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1088, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1092, "", 1, 0 +hellenBoardId = scalar, S16, 1096, "id", 1, 0 +clutchUpState = scalar, S08, 1098, "", 1, 0 +clutchDownState = scalar, S08, 1099, "", 1, 0 +brakePedalState = scalar, S08, 1100, "", 1, 0 +startStopState = scalar, S08, 1101, "", 1, 0 +smartChipState = scalar, S08, 1102, "", 1, 0 +smartChipRestartCounter = scalar, S08, 1103, "", 1, 0 +smartChipAliveCounter = scalar, S08, 1104, "", 1, 0 +startStopPhysicalState = bits, U32, 1108, [0:0] +acrActive = bits, U32, 1108, [1:1] +acrEngineMovedRecently = bits, U32, 1108, [2:2] +heaterControlEnabled = bits, U32, 1108, [3:3] +luaDigitalState0 = bits, U32, 1108, [4:4] +luaDigitalState1 = bits, U32, 1108, [5:5] +luaDigitalState2 = bits, U32, 1108, [6:6] +luaDigitalState3 = bits, U32, 1108, [7:7] +startStopStateToggleCounter = scalar, U32, 1112, "", 1, 0 +egtValue1 = scalar, F32, 1116, "", 1, 0 +egtValue2 = scalar, F32, 1120, "", 1, 0 +luaSoftSparkSkip = scalar, F32, 1124, "", 1, 0 +luaHardSparkSkip = scalar, F32, 1128, "", 1, 0 +tractionControlSparkSkip = scalar, F32, 1132, "", 1, 0 +desiredRpmLimit = scalar, S16, 1136, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1140, "", 1, 0 +globalSparkCounter = scalar, U32, 1144, "", 1, 0 +fuelingLoad = scalar, F32, 1148, "", 1, 0 +ignitionLoad = scalar, F32, 1152, "", 1, 0 +veTableYAxis = scalar, U16, 1156, "%", 0.01, 0 +; total TS size = 1160 +tpsFrom = scalar, F32, 1160 +tpsTo = scalar, F32, 1164 +deltaTps = scalar, F32, 1168 +extraFuel = scalar, F32, 1172, "", 1, 0 +valueFromTable = scalar, F32, 1176, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1180, [0:0] +isBelowDecelThreshold = bits, U32, 1180, [1:1] +isTimeToResetAccumulator = bits, U32, 1180, [2:2] +isFractionalEnrichment = bits, U32, 1180, [3:3] +belowEpsilon = bits, U32, 1180, [4:4] +tooShort = bits, U32, 1180, [5:5] +fractionalInjFuel = scalar, F32, 1184, "", 1, 0 +accumulatedValue = scalar, F32, 1188, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1192, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1196, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1200, "", 1, 0 +cycleCnt = scalar, S32, 1204, "", 1, 0 +; total TS size = 1208 +hwEventCounters1 = scalar, U32, 1208, "", 1, 0 +hwEventCounters2 = scalar, U32, 1212, "", 1, 0 +hwEventCounters3 = scalar, U32, 1216, "", 1, 0 +hwEventCounters4 = scalar, U32, 1220, "", 1, 0 +hwEventCounters5 = scalar, U32, 1224, "", 1, 0 +hwEventCounters6 = scalar, U32, 1228, "", 1, 0 +vvtCamCounter = scalar, U32, 1232, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1236, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1240, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1244, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1245, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1248, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1252, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1256, "", 1, 0 +mapCamPrevToothAngle = scalar, F32, 1260, "deg", 1, 0 +isDecodingMapCam = bits, U32, 1264, [0:0] +; total TS size = 1268 +crankSynchronizationCounter0 = scalar, U32, 1268, "", 1, 0 +vvtSyncGapRatio0 = scalar, F32, 1272, "", 1, 0 +vvtToothDurations00 = scalar, U32, 1276, "us", 1, 0 +vvtCurrentPosition0 = scalar, F32, 1280, "sync: Primary Cam Position", 1, 0 +vvtToothPosition10 = scalar, F32, 1284, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition20 = scalar, F32, 1288, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition30 = scalar, F32, 1292, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition40 = scalar, F32, 1296, "sync: Cam Tooth Position", 1, 0 +triggerSyncGapRatio0 = scalar, F32, 1300, "", 1, 0 +triggerStateIndex0 = scalar, U08, 1304, "", 1, 0 +vvtStateIndex0 = scalar, U08, 1305, "", 1, 0 +; total TS size = 1308 +camResyncCounter = scalar, U08, 1308, "", 1, 0 +m_hasSynchronizedPhase = bits, U32, 1312, [0:0] +; total TS size = 1316 +wallFuelCorrection = scalar, F32, 1316, "", 1, 0 +wallFuel = scalar, F32, 1320, "", 1, 0 +; total TS size = 1324 +idleState = bits, S32, 1324, [0:2], "not important" +currentIdlePosition = scalar, F32, 1328 +baseIdlePosition = scalar, F32, 1332 +idleClosedLoop = scalar, F32, 1336 +iacByTpsTaper = scalar, F32, 1340 +throttlePedalUpState = scalar, S32, 1344, "", 1, 0 +mightResetPid = bits, U32, 1348, [0:0] +shouldResetPid = bits, U32, 1348, [1:1] +wasResetPid = bits, U32, 1348, [2:2] +mustResetPid = bits, U32, 1348, [3:3] +isCranking = bits, U32, 1348, [4:4] +isIacTableForCoasting = bits, U32, 1348, [5:5] +notIdling = bits, U32, 1348, [6:6] +needReset = bits, U32, 1348, [7:7] +isInDeadZone = bits, U32, 1348, [8:8] +isBlipping = bits, U32, 1348, [9:9] +useClosedLoop = bits, U32, 1348, [10:10] +badTps = bits, U32, 1348, [11:11] +looksLikeRunning = bits, U32, 1348, [12:12] +looksLikeCoasting = bits, U32, 1348, [13:13] +looksLikeCrankToIdle = bits, U32, 1348, [14:14] +isIdleCoasting = bits, U32, 1348, [15:15] +isIdleClosedLoop = bits, U32, 1348, [16:16] +idleTarget = scalar, S32, 1352, "", 1, 0 +targetRpmByClt = scalar, S32, 1356, "", 1, 0 +targetRpmAc = scalar, S32, 1360, "", 1, 0 +iacByRpmTaper = scalar, F32, 1364 +luaAdd = scalar, F32, 1368 +; total TS size = 1372 +idlePosition0 = scalar, F32, 1372, "per", 1,0 +trim0 = scalar, F32, 1376, "", 1, 0 +luaAdjustment0 = scalar, F32, 1380, "per", 1,0 +m_wastegatePosition0 = scalar, F32, 1384, "per", 1,0 +etbFeedForward0 = scalar, F32, 1388 +etbIntegralError0 = scalar, F32, 1392, "", 1, 0 +etbCurrentTarget0 = scalar, F32, 1396, "%", 1, 0 +etbCurrentAdjustedTarget0 = scalar, F32, 1400, "%", 1, 0 +etbRevLimitActive0 = bits, U32, 1404, [0:0] +jamDetected0 = bits, U32, 1404, [1:1] +etbDutyRateOfChange0 = scalar, F32, 1408, "per", 1,0 +etbDutyAverage0 = scalar, F32, 1412, "per", 1,0 +etbTpsErrorCounter0 = scalar, U16, 1416, "count", 1,0 +etbPpsErrorCounter0 = scalar, U16, 1418, "count", 1,0 +etbErrorCode0 = scalar, S08, 1420, "", 1, 0 +tcEtbDrop0 = scalar, S08, 1421, "", 1, 0 +jamTimer0 = scalar, U16, 1422, "sec", 0.01, 0 +; total TS size = 1424 +faultCode0 = scalar, U08, 1424, "", 1, 0 +heaterDuty0 = scalar, U08, 1425, "%", 1, 0 +pumpDuty0 = scalar, U08, 1426, "%", 1, 0 +tempC0 = scalar, U16, 1428, "C", 1, 0 +nernstVoltage0 = scalar, U16, 1430, "V", 0.001, 0 +esr0 = scalar, U16, 1432, "ohm", 1, 0 +; total TS size = 1436 +dcOutput0 = scalar, F32, 1436, "per", 1,0 +isEnabled0_int = scalar, U08, 1440, "per", 1,0 +isEnabled0 = bits, U32, 1444, [0:0] +; total TS size = 1448 +value0 = scalar, U16, 1448, "value", 1,0 +value1 = scalar, U16, 1450, "value", 1,0 +errorRate = scalar, F32, 1452, "ratio", 1,0 +; total TS size = 1456 +vvtTarget = scalar, U16, 1456, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1458, "%", 0.5, 0 +; total TS size = 1460 +lambdaCurrentlyGood = bits, U32, 1460, [0:0] +lambdaMonitorCut = bits, U32, 1460, [1:1] +lambdaTimeSinceGood = scalar, U16, 1464, "sec", 0.01, 0 +; total TS size = 1468 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + wbo0_hasFault = { enableAemXSeries && (faultCode0 >= 3) } + +[PcVariables] + tuneCrcPcVariable = continuousChannelValue, tuneCrc16 + + wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; + wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 + + gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave + solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave + + rangeInputArray = array, U08, [6], "Input", 1, 0, 0, 6, 0, noMsqSave + rangeStateArray = array, U08, [9], "State", 1, 0, 0, 9, 0, noMsqSave + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "silent", "cranking", "failed to heat", "overheat", "underheat", "no supply", "legacy" + + injModeList = bits, U08, [0:3], "Simultaneous", "Sequential", "Batch", "Single Point" + ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" + +; ClearReason + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot", "GDI Comms", "Brake" + +; TpsState + etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" + + outputDiagErrorList = bits, U08, [0:3], "Not used", "No error", "Open Load", "Short to Gnd", "Short to Battery", "Overload", "Driver Overtemp", "Driver disabled", "Unknown" + +[ConstantsExtensions] + ; defaultValue is used to provide TunerStudio with a value to use in the case of + ; the constant not yet being initialized. This is primarily important if the + ; constant is used as a variable in the ini. + ; defaultValue = constantName, value; + defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 + + ; this magic is best described in output_channels.txt search for 'maintainConstantValue' + ; TPS 1 Primary + maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax } + maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin } + + ; TPS 1 Secondary + maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } + maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } + + ; TPS 2 Primary + maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } + maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } + + ; TPS 2 Secondary + maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax } + maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin } + + ; ETB Auto Gain Calibration + maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } + maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } + maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } + + maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == 12 ) ? calibrationValue : throttlePedalUpVoltage } + maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == 12 ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage } + + maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue : throttlePedalWOTVoltage } + maintainConstantValue = throttlePedalSecondaryWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage } + + requiresPowerCycle = boardUseCanTerminator + requiresPowerCycle = lps25BaroSensorScl + requiresPowerCycle = lps25BaroSensorSda + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = canWriteEnabled + requiresPowerCycle = canReadEnabled + requiresPowerCycle = can1ListenMode + requiresPowerCycle = can2ListenMode + + requiresPowerCycle = startStopButtonPin + requiresPowerCycle = startStopButtonMode + + requiresPowerCycle = enableAemXSeries + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbSplit + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = vvtOutputFrequency + requiresPowerCycle = vvtPins1 + requiresPowerCycle = vvtPins2 + requiresPowerCycle = vvtPins3 + requiresPowerCycle = vvtPins4 + + requiresPowerCycle = auxAnalogInputs1 + requiresPowerCycle = auxAnalogInputs2 + requiresPowerCycle = auxAnalogInputs3 + requiresPowerCycle = auxAnalogInputs4 + requiresPowerCycle = auxAnalogInputs5 + requiresPowerCycle = auxAnalogInputs6 + requiresPowerCycle = auxAnalogInputs7 + requiresPowerCycle = auxAnalogInputs8 + + requiresPowerCycle = knockBandCustom + + readOnly = warning_message + + defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 + readOnly = gearCountArray + defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 + readOnly = solenoidCountArray + + defaultValue = rangeStateArray, 0 1 2 3 4 5 6 7 8 + readOnly = rangeStateArray + defaultValue = rangeInputArray, 0 1 2 3 4 5 + readOnly = solenoidCountArray + +[CurveEditor] +; xAxis = leftValue, rightValue, step +; yAxis = bottomValue, topValue, step + + curve = knockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 10 + xBins = knockNoiseRpmBins, RPMValue + yBins = knockBaseNoise + gauge = RPMGauge + + curve = scriptCurve1, "Script Curve #1" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -155, 150, 10 + xBins = scriptCurve1Bins + yBins = scriptCurve1 + showTextValues = true + + curve = scriptCurve2, "Script Curve #2" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -150, 150, 10 + xBins = scriptCurve2Bins + yBins = scriptCurve2 + showTextValues = true + + curve = scriptCurve3, "Script Curve #3" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve3Bins + yBins = scriptCurve3 + showTextValues = true + + curve = scriptCurve4, "Script Curve #4" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve4Bins + yBins = scriptCurve4 + showTextValues = true + + curve = scriptCurve5, "Script Curve #5" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve5Bins + yBins = scriptCurve5 + showTextValues = true + + curve = scriptCurve6, "Script Curve #6" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve6Bins + yBins = scriptCurve6 + showTextValues = true + + curve = dwellCorrection, "Dwell time base" + columnLabel = "RPM", "Dwell" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 9 + xBins = sparkDwellRpmBins, RPMValue + yBins = sparkDwellValues + gauge = RPMGauge + + curve = dwellVoltageCorrection, "Dwell voltage correction" + columnLabel = "Battery Volts", "Multiplier" + xAxis = 6, 16, 11 + yAxis = 0, 3, 7 + xBins = dwellVoltageCorrVoltBins, VBatt + yBins = dwellVoltageCorrValues + gauge = VBattGauge + + curve = tpsTspRpmCorrection, "Transient RPM correction" + columnLabel = "RPM", "Multiplier" + xAxis = 0, 8000, 9 + yAxis = 0, 3, 7 + xBins = tpsTspCorrValuesBins, RPMValue + yBins = tpsTspCorrValues + gauge = RPMGauge + + curve = primingPulse, "Priming pulse fuel mass" + columnLabel = "Coolant", "Prime Pulse" + xAxis = -40, 120, 9 + yAxis = 0, 1000, 9 + xBins = primeBins, coolant + yBins = primeValues + gauge = CLTGauge + + curve = map_samplingAngleCurve, "MAP Sampling Start Angle" + columnLabel = "RPM", "Angle" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingAngleBins, RPMValue + yBins = map_samplingAngle + gauge = MAPGauge + + curve = map_samplingWindowCurve, "MAP Sampling Duration" + columnLabel = "RPM", "Window" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingWindowBins, RPMValue + yBins = map_samplingWindow + gauge = MAPGauge + + curve = injectorsDeadTime, "Injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injector_battLagCorrBins, VBatt + yBins = injector_battLagCorr + gauge = VBattGauge + + curve = injectorsSecondaryDeadTime, "Secondary injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injectorSecondary_battLagCorrBins, VBatt + yBins = injectorSecondary_battLagCorr + gauge = VBattGauge + + curve = vrThresholdCurve1, "VR 1 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold1_rpmBins, RPMValue + yBins = vrThreshold1_values + + curve = vrThresholdCurve2, "VR 2 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold2_rpmBins, RPMValue + yBins = vrThreshold2_values + + curve = mafDecodingCurve, "MAF sensor" + columnLabel = "Voltage", "kg/hour" + xAxis = -1, 6, 10 + yAxis = -30, 1300, 10 + xBins = mafDecodingBins, rawMaf + yBins = mafDecoding + gauge = rawMafGauge + + curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" + topicHelp = "iatFuelCorrCurveHelp" + columnLabel = "Air Temp", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 2, 11 + xBins = iatFuelCorrBins, intake + yBins = iatFuelCorr + gauge = IATGauge + + curve = cltTimingCorrCurve, "Warmup timing correction" + columnLabel = "Coolant", "Extra" + xAxis = -40, 120, 9 + yAxis = 0, 20, 9 + xBins = cltTimingBins, coolant + yBins = cltTimingExtra + gauge = CLTGauge + + curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + gauge = CLTGauge + + curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoef + gauge = CLTGauge + + curve = crankingCltCurveE100, "Cranking Coolant Temperature Multiplier (Flex Fuel E85)" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoefE100 + gauge = CLTGauge + + curve = cltRevLimitCurve, "" + columnLabel = "Coolant", "RPM Limit" + xAxis = -40, 120, 9 + yAxis = 0, 8000, 9 + xBins = cltRevLimitRpmBins, coolant + yBins = cltRevLimitRpm + gauge = CLTGauge + + curve = etbTpsBiasCurve, "Electronic TB Bias Curve" + columnLabel = "TPS", "duty bias" + xAxis = 0, 50, 11 + yAxis = -40, 40, 9 + xBins = etbBiasBins, TPSValue + yBins = etbBiasValues + gauge = TPSGauge + + curve = crankingTpsCurve, "Cranking TPS Multiplier" + columnLabel = "TPS", "Multiplier" + xAxis = 0, 100, 11 + yAxis = 0, 3, 10 + xBins = crankingTpsBins, TPSValue + yBins = crankingTpsCoef + gauge = TPSGauge + + curve = crankingDurationCurve, "Cranking Cycle Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = cltIdleRPMCurve, "Idle Target RPM" + columnLabel = "Coolant", "RPM" + xAxis = -40, 120, 9 + yAxis = 0, 2400, 13 + xBins = cltIdleRpmBins, coolant + yBins = cltIdleRpm, RPMValue + gauge = CLTGauge + + curve = idleAdvanceCurve, "Idle Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 2400, 13 + yAxis = -100, 100, 11 + xBins = idleAdvanceBins, RPMValue + yBins = idleAdvance + gauge = RPMGauge + + curve = crankingAdvanceCurve, "Cranking Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 1200, 13 + yAxis = -30, 30, 11 + xBins = crankingAdvanceBins, RPMValue + yBins = crankingAdvance + gauge = RPMGauge + + curve = fuelLevelCurve, "Fuel Level" + columnLabel = "Voltage", "%" + xAxis = 0, 5, 6 + yAxis = 0, 100, 11 + xBins = fuelLevelBins + yBins = fuelLevelValues + gauge = fuelTankLevelGauge + + curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" + columnLabel = "Coolant", "AFR Offset" + xAxis = -40, 200, 9 + yAxis = -3, 1, 5 + xBins = cltFuelCorrBins, coolant + yBins = wueAfrTargetOffset + gauge = cltGauge + + curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" + columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" + xAxis = -40, 200, 9 + yAxis = 90, 500, 6 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + yBins = wueAnalRecommend + ;gauge = cltGauge + + lineLabel = "Warmup Correction" + lineLabel = "Recommended WUE" + + curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" + columnLabel = "% pump volume", "angle" + xAxis = 0, 100, 11 + yAxis = 0, 240, 13 + xBins = hpfpLobeProfileQuantityBins + yBins = hpfpLobeProfileAngle + + curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" + columnLabel = "volts", "ms" + xAxis = 5, 15, 11 + yAxis = 0, 5, 6 + xBins = hpfpDeadtimeVoltsBins + yBins = hpfpDeadtimeMS + + curve = wwTauCltCurve, "Evap time vs. CLT" + columnLabel = "coolant", "seconds" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwTauCltValues + gauge = CLTGauge + + curve = wwTauMapCurve, "Evap time vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwTauMapValues + gauge = MAPGauge + + curve = wwBetaCltCurve, "Impact fraction vs. CLT" + columnLabel = "coolant", "fraction" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwBetaCltValues + gauge = CLTGauge + + curve = wwBetaMapCurve, "Impact fraction vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwBetaMapValues + gauge = MAPGauge + + curve = tchargeCurve, "Charge temperature estimation coefficient" + columnLabel = "flow", "coefficient" + xAxis = 0, 500, 6 + yAxis = 0, 100, 5 + xBins = tchargeBins, mafEstimate + yBins = tchargeValues + gauge = tChargeGauge + + curve = tccLockCurve, "TCC Lock Curve" + columnLabel = "TPS", "Lock Speed", "Unlock Speed" + xAxis = 0, 100, 10 + yAxis = 0, 100, 10 + xBins = tcu_tccTpsBins, TPSValue + yBins = tcu_tccLockSpeed + yBins = tcu_tccUnlockSpeed + gauge = TPSGauge + + curve = pcPerGearCurve, "Transmission Line Pressure Control" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcValsR + yBins = tcu_pcValsN + yBins = tcu_pcVals1 + yBins = tcu_pcVals2 + yBins = tcu_pcVals3 + yBins = tcu_pcVals4 + lineLabel = "R%" + lineLabel = "N%" + lineLabel = "1%" + lineLabel = "2%" + lineLabel = "3%" + lineLabel = "4%" + +curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcVals12 + yBins = tcu_pcVals23 + yBins = tcu_pcVals34 + yBins = tcu_pcVals21 + yBins = tcu_pcVals32 + yBins = tcu_pcVals43 + lineLabel = "1->2%" + lineLabel = "2->3%" + lineLabel = "3->4%" + lineLabel = "2->1%" + lineLabel = "3->2%" + lineLabel = "4->3%" + +curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" + columnLabel = "Speed", "%" + xAxis = 0, 200, 20 + yAxis = 0, 100, 10 + xBins = tcu_32SpeedBins, vehicleSpeedKph + yBins = tcu_32Vals + +curve = rangeMatrix, "Range Switch Input Matrix" + columnLabel = "Pin", "" + xAxis = 0, 6, 6 + yAxis = 0, 3, 3 + xBins = rangeInputArray + yBins = tcu_rangeP + yBins = tcu_rangeR + yBins = tcu_rangeN + yBins = tcu_rangeD + yBins = tcu_rangeM + yBins = tcu_rangeM3 + yBins = tcu_rangeM2 + yBins = tcu_rangeM1 + yBins = tcu_rangePlus + yBins = tcu_rangeMinus + yBins = tcu_rangeLow + lineLabel = "Park" + lineLabel = "Reverse" + lineLabel = "Neutral" + lineLabel = "Drive" + lineLabel = "Manual" + lineLabel = "Manual 3rd" + lineLabel = "Manual 2nd" + lineLabel = "Manual 1st" + lineLabel = "Manual +" + lineLabel = "Manual -" + lineLabel = "Low" + + curve = ignAdder1Bias, "Ignition adder 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends1_blendBins, ignBlendParameter1 + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlendParameter2 + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlendParameter3 + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlendParameter4 + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlendParameter1 + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlendParameter2 + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlendParameter3 + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlendParameter4 + yBins = veBlends4_blendValues + + curve = boostOpenLoopBlend1Bias, "Boost open loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends1_blendBins, boostOpenLoopBlendParameter1 + yBins = boostOpenLoopBlends1_blendValues + + curve = boostOpenLoopBlend2Bias, "Boost open loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends2_blendBins, boostOpenLoopBlendParameter2 + yBins = boostOpenLoopBlends2_blendValues + + curve = boostClosedLoopBlend1Bias, "Boost Closed loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends1_blendBins, boostClosedLoopBlendParameter1 + yBins = boostClosedLoopBlends1_blendValues + + curve = boostClosedLoopBlend2Bias, "Boost Closed loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends2_blendBins, boostClosedLoopBlendParameter2 + yBins = boostClosedLoopBlends2_blendValues + + curve = throttleEffectiveArea, "Throttle effective area" + columnLabel = "TPS", "normalized flow" + xAxis = 0, 100, 11 + yAxis = 0, 2, 5 + xBins = throttleEstimateEffectiveAreaBins, TPSValue + yBins = throttleEstimateEffectiveAreaValues + gauge = TPSGauge + + curve = boostOpenLoopGearAdderCurve, "Boost Open Loop gear-based adder" + columnLabel = "Gear", "duty cycle" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = gearCountArray, tcuCurrentGear + yBins = gearBasedOpenLoopBoostAdder + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com/s/tpstps https://github.com/rusefi/rusefi/issues/5130 + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = tractionEtbTableTbl, tractionEtb, "Traction Control ETB drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlEtbDrop + + table = tractionTimingTableTbl, tractionEtb, "Traction Control Timing drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlTimingDrop + + table = tractionIgnitionSkipTableTbl, tractionEtb, "Traction Control Skip Ignition", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlIgnitionSkip + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + xBins = alsIgnRetardrpmBins, RPMValue + yBins = alsIgnRetardLoadBins, TPSValue + zBins = ALSTimingRetardTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = FuelAdderTableALS, FuelAdderALS, "Fuel adjustment", 1 + xBins = alsFuelAdjustmentrpmBins, RPMValue + yBins = alsFuelAdjustmentLoadBins, TPSValue + zBins = ALSFuelAdjustment + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = IgnSkipTableALS, IgnSkipALS, "Ignition Skip", 1 + ; constant, variable + xBins = alsIgnSkiprpmBins, RPMValue + yBins = alsIgnSkipLoadBins, TPSValue + zBins = ALSIgnSkipTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 + xyLabels = "RPM", "Ignition Load" + xBins = baroCorrRpmBins, RPMValue + yBins = baroCorrPressureBins, baroPressure + zBins = baroCorrTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignitionRpmBins, RPMValue + yBins = ignitionLoadBins, ignitionLoad + zBins = ignitionTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends1_rpmBins, RPMValue + yBins = ignBlends1_loadBins, ignitionLoad + zBins = ignBlends1_table + gridOrient = 250, 0, 340 + + table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends2_rpmBins, RPMValue + yBins = ignBlends2_loadBins, ignitionLoad + zBins = ignBlends2_table + gridOrient = 250, 0, 340 + + table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends3_rpmBins, RPMValue + yBins = ignBlends3_loadBins, ignitionLoad + zBins = ignBlends3_table + gridOrient = 250, 0, 340 + + table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends4_rpmBins, RPMValue + yBins = ignBlends4_loadBins, ignitionLoad + zBins = ignBlends4_table + gridOrient = 250, 0, 340 + + table = veBlend1Table, veBlend1Map, "VE blend 1", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends1_rpmBins, RPMValue + yBins = veBlends1_loadBins, fuelingLoad + zBins = veBlends1_table + gridOrient = 250, 0, 340 + + table = veBlend2Table, veBlend2Map, "VE blend 2", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends2_rpmBins, RPMValue + yBins = veBlends2_loadBins, fuelingLoad + zBins = veBlends2_table + gridOrient = 250, 0, 340 + + table = veBlend3Table, veBlend3Map, "VE blend 3", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends3_rpmBins, RPMValue + yBins = veBlends3_loadBins, fuelingLoad + zBins = veBlends3_table + gridOrient = 250, 0, 340 + + table = veBlend4Table, veBlend4Map, "VE blend 4", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends4_rpmBins, RPMValue + yBins = veBlends4_loadBins, fuelingLoad + zBins = veBlends4_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends1_rpmBins, RPMValue + yBins = boostOpenLoopBlends1_loadBins, TPSValue + zBins = boostOpenLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends2_rpmBins, RPMValue + yBins = boostOpenLoopBlends2_loadBins, TPSValue + zBins = boostOpenLoopBlends2_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends1_rpmBins, RPMValue + yBins = boostClosedLoopBlends1_loadBins, TPSValue + zBins = boostClosedLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends2_rpmBins, RPMValue + yBins = boostClosedLoopBlends2_loadBins, TPSValue + zBins = boostClosedLoopBlends2_table + gridOrient = 250, 0, 340 + + table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 + xyLabels = "Air Temp", "Ignition Load" + xBins = ignitionIatCorrTempBins, intake + yBins = ignitionIatCorrLoadBins, ignitionLoad + zBins = ignitionIatCorrTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = torqueTableTbl, torqueTableMap, "Engine Torque", 1 + xBins = torqueRpmBins, RPMValue + yBins = torqueLoadBins, veTableYAxis + zBins = torqueTable + + table = veTableTbl, veTableMap, "VE Table", 1 + xyLabels = "RPM", "load" + xBins = veRpmBins, RPMValue + yBins = veLoadBins, veTableYAxis + zBins = veTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = idleVeTableTbl, idleVeTable, "Idle VE" + xyLabels = "RPM", "load" + xBins = idleVeRpmBins, RPMValue + yBins = idleVeLoadBins, veTableYAxis + zBins = idleVeTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims1_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims2_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims3_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims4_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims5_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims6_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims7_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims8_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims9_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims10_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims11_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims12_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims1_table + + table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims2_table + + table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims3_table + + table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims4_table + + table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims5_table + + table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims6_table + + table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims7_table + + table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims8_table + + table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims9_table + + table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims10_table + + table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims11_table + + table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims12_table + + table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 + xBins = mapEstimateRpmBins, RPMValue + yBins = mapEstimateTpsBins, TPSValue + zBins = mapEstimateTable + + table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 + topicHelp = "fuelHelp" + xBins = injPhaseRpmBins, RPMValue + yBins = injPhaseLoadBins, fuelingLoad + zBins = injectionPhase +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 + xBins = pedalToTpsRpmBins, RPMValue + yBins = pedalToTpsPedalBins, throttlePedalPosition + zBins = pedalToTpsTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1 + xBins = throttle2TrimRpmBins, RPMValue + yBins = throttle2TrimTpsBins, TPSValue + zBins = throttle2TrimTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + + table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1 + xBins = maxKnockRetardRpmBins, RPMValue + yBins = maxKnockRetardLoadBins, TPSValue + zBins = maxKnockRetardTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + +#if LAMBDA + table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 +#else + table = afrTableTbl, afrTableMap, "Target AFR Table", 1 +#endif + xBins = lambdaRpmBins, RPMValue + yBins = lambdaLoadBins, afrTableYAxis + zBins = lambdaTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 + xyLabels = "RPM", "" + xBins = lambdaMaxDeviationRpmBins, RPMValue + yBins = lambdaMaxDeviationLoadBins, afrTableYAxis + zBins = lambdaMaxDeviationTable + + table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 + xBins = iacPidMultRpmBins, RPMValue + yBins = iacPidMultLoadBins, fuelingLoad + zBins = iacPidMultTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = gppwm1Tbl, gppwm1Map, "GP#1", 1 + xyLabels = "RPM", "" + xBins = gppwm1_rpmBins, gppwmXAxis1 + yBins = gppwm1_loadBins, gppwmYAxis1 + zBins = gppwm1_table + + table = gppwm2Tbl, gppwm2Map, "GP#2", 1 + xyLabels = "RPM", "" + xBins = gppwm2_rpmBins, gppwmXAxis2 + yBins = gppwm2_loadBins, gppwmYAxis2 + zBins = gppwm2_table + + table = gppwm3Tbl, gppwm3Map, "GP#3", 1 + xyLabels = "RPM", "" + xBins = gppwm3_rpmBins, gppwmXAxis3 + yBins = gppwm3_loadBins, gppwmYAxis3 + zBins = gppwm3_table + + table = gppwm4Tbl, gppwm4Map, "GP#4", 1 + xyLabels = "RPM", "" + xBins = gppwm4_rpmBins, gppwmXAxis4 + yBins = gppwm4_loadBins, gppwmYAxis4 + zBins = gppwm4_table + + table = stagedInjectionTbl, stagedInjectionMap, "Staged Injection %", 1 + xyLabels = "RPM", "" + xBins = injectorStagingRpmBins, RPMValue + yBins = injectorStagingLoadBins, fuelingLoad + zBins = injectorStagingTable + + table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 + xBins = gearCountArray, tcuCurrentGear + yBins = solenoidCountArray, tcuCurrentGear + zBins = tcuSolenoidTable + xyLabels = "Solenoid", "Gear" + + table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1 + xBins = hpfpTargetRpmBins, RPMValue + yBins = hpfpTargetLoadBins, veTableYAxis + zBins = hpfpTarget + + table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1 + xBins = hpfpCompensationRpmBins, RPMValue + yBins = hpfpCompensationLoadBins, running_fuel + zBins = hpfpCompensation + + table = postCrankingEnrichmentTbl, postCrankingEnrichmentMap, "After start enrichment", 1 + xyLabels = "Engine Cycles", "Coolant Temp" + xBins = postCrankingDurationBins, revolutionCounterSinceStart + yBins = postCrankingCLTBins, coolant + zBins = postCrankingFactor + + +[GaugeConfigurations] + gaugeCategory = "Sync" +triggerVvt2FallGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +triggerVvt2RiseGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +currentEngineDecodedPhaseGauge = currentEngineDecodedPhase,"Sync: Engine Phase", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"Fuel: Total correction", "mult", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +running_timeSinceCrankingInSecsGauge = running_timeSinceCrankingInSecs,"running_ timeSinceCrankingInSecs", "secs", 0.0,600000.0, 0.0,600000.0, 0.0,600000.0, 0,0 +targetLambdaGauge = targetLambda,"Fuel: target lambda", "", 0.5,1.5, 0.5,1.5, 0.5,1.5, 2,2 +targetAFRGauge = targetAFR,"Fuel: target AFR", "ratio", 10.0,20.0, 10.0,20.0, 10.0,20.0, 2,2 + gaugeCategory = "Timing" +baseDwellGauge = baseDwell,"Ignition: base dwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"Ignition: coil charge time", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +dwellDurationAngleGauge = dwellDurationAngle,"Ignition: dwell duration", "deg", 0.0,120.0, 0.0,120.0, 0.0,120.0, 1,1 +cltTimingCorrectionGauge = cltTimingCorrection,"Ign: CLT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"Ign: IAT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"Idle: Timing adjustment", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"Ign: Lua timing add", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"Ign: Lua timing mult", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + gaugeCategory = "Boost Control" +luaTargetAddGauge = luaTargetAdd,"Boost: Lua target add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostOutputGauge = boostOutput,"Boost: Output", "percent", -100.0,100.0, -100.0,100.0, -100.0,100.0, 2,2 +luaTargetMultGauge = luaTargetMult,"Boost: Lua target mult", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +openLoopPartGauge = openLoopPart,"Boost: Open loop", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +luaOpenLoopAddGauge = luaOpenLoopAdd,"Boost: Lua open loop add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostControllerClosedLoopPartGauge = boostControllerClosedLoopPart,"Boost: Closed loop", "%", -50.0,50.0, -50.0,50.0, -50.0,50.0, 1,1 +boostControlTargetGauge = boostControlTarget,"Boost: Target", "kPa", 0.0,300.0, 0.0,300.0, 0.0,300.0, 1,1 + gaugeCategory = "ETB more" +idlePosition0Gauge = idlePosition0,"ETB: idlePosition0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +luaAdjustment0Gauge = luaAdjustment0,"ETB: luaAdjustment0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +m_wastegatePosition0Gauge = m_wastegatePosition0,"DC: wastegatePosition0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +etbDutyRateOfChange0Gauge = etbDutyRateOfChange0,"ETB duty rate of change0", "per", 0.0,25.0, 0.0,25.0, 0.0,25.0, 2,2 +etbDutyAverage0Gauge = etbDutyAverage0,"ETB average duty0", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounter0Gauge = etbTpsErrorCounter0,"ETB TPS error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounter0Gauge = etbPpsErrorCounter0,"ETB pedal error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio0,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex0,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio0,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex0,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallCounterGauge = triggerPrimaryFall,"triggerPrimaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerPrimaryRiseCounterGauge = triggerPrimaryRise,"triggerPrimaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryFallCounterGauge = triggerSecondaryFall,"triggerSecondaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryRiseCounterGauge = triggerSecondaryRise,"triggerSecondaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtFallCounterGauge = triggerVvtFall,"triggerVvtFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtRiseCounterGauge = triggerVvtRise,"triggerVvtRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2FallCounterGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2RiseCounterGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0 + +gaugeCategory = Test Bench + testBenchIterGauge = testBenchIter, "Test Bench Iterations", "count", -10, {benchTestCount + 10}, -5, 0, {benchTestCount}, {benchTestCount + 5}, 1, 1 + +gaugeCategory = LUA + luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + +gaugeCategory = Alternator PID + alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Boost PID + boostStatus_iTermGauge = boostStatus_iTerm,"Boost PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_dTermGauge = boostStatus_dTerm,"Boost PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_outputGauge = boostStatus_output,"Boost PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_errorGauge = boostStatus_error,"Boost PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_resetCounterGauge = boostStatus_resetCounter,"Boost PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Idle + idlePosSensGauge = idlePositionSensor, "Idle: Position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleAirValvePositionGauge = currentIdlePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Etb PID + etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_dTermGauge = etbStatus_dTerm,"ETB 1 PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_outputGauge = etbStatus_output,"ETB 1 PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_errorGauge = etbStatus_error,"ETB 1 PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_resetCounterGauge = etbStatus_resetCounter,"ETB 1 PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + + wgStatus_iTermGauge = wastegateDcStatus_iTerm,"WG PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_dTermGauge = wastegateDcStatus_dTerm,"WG PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_outputGauge = wastegateDcStatus_output,"WG PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_errorGauge = wastegateDcStatus_error,"WG PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_resetCounterGauge = wastegateDcStatus_resetCounter,"WG PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + +gaugeCategory = CAN + canReadCounterGauge = canReadCounter,"CAN: Rx", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteOkGauge = canWriteOk,"CAN: Tx OK", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteNotOkGauge = canWriteNotOk,"CAN: Tx err", "", 0,64000, 0,64000, 0,64000, 0,0 + +gaugeCategory = GDI + di_nextStartGauge = di_nextStart,"DI: next start", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;todo see comment in HpfpQuantity class definition + ;m_I_sum_percentGauge = m_I_sum_percent,"DI: m_I_sum_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;m_pressureTarget_kPaGauge = m_pressureTarget_kPa,"DI: m_pressureTarget_kPa", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + highFuelPressureGauge = highFuelPressure, "Fuel pressure (high)", "bar", 0, 200, 0, 0, 200, 200, 1, 0 + +gaugeCategory = ECU Status + warningCounterGauge = warningCounter, "Warning: counter", "", 0, 100, 0, 0, 100, 100, 0, 0 + lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode1Gauge = recentErrorCode1, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode2Gauge = recentErrorCode2, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode3Gauge = recentErrorCode3, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode4Gauge = recentErrorCode4, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode5Gauge = recentErrorCode5, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode6Gauge = recentErrorCode6, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode7Gauge = recentErrorCode7, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode8Gauge = recentErrorCode8, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 + timeSecondsGauge = seconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 + tuneCrc16Gauge = tuneCrc16, "Tune CRC16", "", 0, 64000, 0, 0, 64000, 64000, 0, 0 + +gaugeCategory = Debug + debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Sensors - Basic + RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + CLTGauge = coolant, "Coolant temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + IATGauge = intake, "Intake air temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + afr1Gauge = AFRValue, "Air/Fuel Ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr2Gauge = AFRValue2, "Air/Fuel Ratio 2", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale1Gauge = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale2Gauge = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + lambda1Gauge = lambdaValue, "Lambda", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + lambda2Gauge = lambdaValue2, "Lambda 2", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + VBattGauge = VBatt, "Battery", "V", 8, 21, 9, 10, 17, 19, 1, 1 + MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 + massAirFlowValueGa = mafMeasured, "MAF", "kg/h", 0, 50, -999, -999, 999, 999, 1, 1 + + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld +gaugeCategory = Sensors - Extra 1 + VSSGauge = vehicleSpeedKph, "Vehicle Speed", "kmh", 0, 200, 0, 5, 110, 130, 1, 1 + wheelSlipRatioGauge = wheelSlipRatio, "Wheel Slip Ratio", "", 0, 200, 0, 1, 3, 4, 3, 3 + turboSpeedGauge = turboSpeed, "Turbocharger Speed", "hz", 0, 200, 0, 1, 3, 4, 1, 1 + baroPressureGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + fuelTempGauge = fuelTemp, "Fuel Temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 + AuxL1Gauge = auxLinear1, "Aux linear #1", "", -100, 100, -100, -100, 100, 100, 2, 2 + AuxL2Gauge = auxLinear2, "Aux linear #2", "", -100, 100, -100, -100, 100, 100, 2, 2 + +gaugeCategory = Sensors - Extra 2 + accelerationLatGauge = accelerationLat, "Accel: Lateral", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationLonGauge = accelerationLon, "Accel: Longitudinal", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationVertGauge = accelerationVert, "Accel: Vertical", "acc", 0, 1.5, 0.5, 0.6, 1.4, 1.5, 3, 1 + gyroYawGauge = gyroYaw, "Gyro: Yaw rate", "acc", -100, 100, -100, -100, 100, 100, 3, 1 + egt1Gauge = egt1, "EGT#1", "C", 0, 2000 + egt2Gauge = egt2, "EGT#2", "C", 0, 2000 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 + wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + auxSpeed2Gauge = auxSpeed2, "Aux Freq Input2", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + +gaugeCategory = VVT + vvtPositionB1IGauge = vvtPositionB1I, "VVT: bank 1 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB1EGauge = vvtPositionB1E, "VVT: bank 1 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2IGauge = vvtPositionB2I, "VVT: bank 2 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2EGauge = vvtPositionB2E, "VVT: bank 2 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtTargets1Gauge = vvtTargets1, "VVT: bank 1 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets2Gauge = vvtTargets2, "VVT: bank 1 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets3Gauge = vvtTargets3, "VVT: bank 2 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets4Gauge = vvtTargets4, "VVT: bank 2 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtOutput1Gauge = vvtStatus1_output, "vvt: output 1", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput2Gauge = vvtStatus2_output, "vvt: output 2", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput3Gauge = vvtStatus3_output, "vvt: output 3", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput4Gauge = vvtStatus4_output, "vvt: output 4", "", 00, 100, -60, -60, 60, 60, 0, 0 + + +gaugeCategory = Ignition + sparkCutReasonGauge = sparkCutReason,"Spark Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + baseIgnAdvGauge = baseIgnitionAdvance, "Ignition: Timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + correctedIgnAdvGauge = correctedIgnitionAdvance, "Timing: ignition", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + dwellGauge = sparkDwell, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 + coilDutyCycleGauge = coilDutyCycle, "Ignition: coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1 + ignitionLoadGauge = ignitionLoad, "Ignition: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + +gaugeCategory = Acceleration Enrichment + deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 + +gaugeCategory = Fueling + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + tChargeGauge = sd_tCharge, "Fuel: Estimated charge temperature", "C", -40, 140, -15, 1, 95, 110, 1, 1 + baroCorrectionGauge = baroCorrection,"Fuel: Barometric pressure mult", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 + crankingFuelGauge = crankingFuel_fuel, "Fuel: cranking", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + iatCorrectionGauge = running_intakeTemperatureCoefficient, "Fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + cltCorrectionGauge = running_coolantTemperatureCoefficient, "Fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + injectorDutyCycleGauge=injectorDutyCycle, "Fuel: injector duty cycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + injectorDutyCycleStg2Gauge=injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2","%", 0, 120, 10, 10, 100, 100, 1, 1 + actualLastInjectionGauge = actualLastInjection, "Fuel: Last inj pulse width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + actualLastInjectionStg2Gauge = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = m_deadtime, "Fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = running_fuel, "Fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = running_baseFuel, "Fuel: base cycle mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "Fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "Fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "Fuel: Load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "Fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "Fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB: position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB: position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps1SplitGauge = tps1Split, "TPS1 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps2SplitGauge = tps2Split, "TPS2 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + accPedalSplitGauge = accPedalSplit, "Pedal Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB: Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "TCU: Desired Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + currentGearGauge = tcuCurrentGear, "Current Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + detectedGearGauge = detectedGear, "Detected Gear", "gear", 0, 10, 0, 0, 10, 10, 0, 0 + speedToRpmRatioGauge = speedToRpmRatio, "Gearbox Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + ISSGauge = ISSValue, "TCU: Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "TCU: Torque Converter Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4 + idealEngineTorqueGauge = idealEngineTorque, "idealEngineTorque", "", 0, 100, 0, 0, 100, 100, 4, 4 + +gaugeCategory = Knock + knock1Gauge = m_knockCyl1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock2Gauge = m_knockCyl2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock3Gauge = m_knockCyl3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock4Gauge = m_knockCyl4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock5Gauge = m_knockCyl5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock6Gauge = m_knockCyl6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock7Gauge = m_knockCyl7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock8Gauge = m_knockCyl8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock9Gauge = m_knockCyl9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock10Gauge = m_knockCyl10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock11Gauge = m_knockCyl11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock12Gauge = m_knockCyl12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockLevelGauge = m_knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockRetardGauge = m_knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = m_knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = correctedIgnAdvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + ; todo: do we want to drop this line since we have "config error" thing above? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode0 != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode0)}, white, black, yellow, black + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { isAboveAccelThreshold }, "No TPS accel", "TPS accel active", white, black, yellow, black + ; error codes + indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black + + ; Line 3 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black + indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black + indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black + indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black + ; not implemented + ; indicator = { ind_map_error}, "map", "map error", white, black, red, black + indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black + indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black + indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black + indicator = { etbRevLimitActive0 }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black + + indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, white, black, red, black + + ; indicator = { isInjectionEnabled && fuelCutReason == 0 }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, white, black, white, black + ; indicator = { isIgnitionEnabled && sparkCutReason == 0 }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, white, black, white, black + +; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error + +[KeyActions] + showPanel = spi, spiBuses + showPanel = con, connection + +; +; this section defines how we log output channels +; see [OutputChannels] +; +[Datalog] + ; Channel Label Type Format + entry = time, "Time", float, "%.3f" +entry = sd_present, "SD: Present", int, "%d" +entry = sd_logging_internal, "SD: Logging", int, "%d" +entry = triggerScopeReady, "triggerScopeReady", int, "%d" +entry = antilagTriggered, "antilagTriggered", int, "%d" +entry = isFanOn, "Radiator Fan", int, "%d" +entry = isO2HeaterOn, "isO2HeaterOn", int, "%d" +entry = checkEngine, "checkEngine", int, "%d" +entry = needBurn, "needBurn", int, "%d" +entry = sd_msd, "SD: MSD", int, "%d" +entry = isFan2On, "Radiator Fan 2", int, "%d" +entry = toothLogReady, "Tooth Logger Ready", int, "%d" +entry = isTpsError, "Error: TPS", int, "%d" +entry = isCltError, "Error: CLT", int, "%d" +entry = isMapError, "Error: MAP", int, "%d" +entry = isIatError, "Error: IAT", int, "%d" +entry = isTriggerError, "Error: Trigger", int, "%d" +entry = hasCriticalError, "Error: Active", int, "%d" +entry = isWarnNow, "Warning: Active", int, "%d" +entry = isPedalError, "Error: Pedal", int, "%d" +entry = isKnockChipOk, "isKnockChipOk", int, "%d" +entry = launchTriggered, "Launch Control Triggered", int, "%d" +entry = isTps2Error, "Error: TPS2", int, "%d" +entry = injectorFault, "Injector Fault", int, "%d" +entry = ignitionFault, "Ignition Fault", int, "%d" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = dfcoActive, "dfcoActive", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = internalMcuTemperature, "CPU Temperature", int, "%d" +entry = coolant, "CLT", float, "%.3f" +entry = intake, "IAT", float, "%.3f" +entry = auxTemp1, "auxTemp1", float, "%.3f" +entry = auxTemp2, "auxTemp2", float, "%.3f" +entry = TPSValue, "TPS", float, "%.3f" +entry = throttlePedalPosition, "Throttle pedal position", float, "%.3f" +entry = tpsADC, "tpsADC", int, "%d" +entry = rawMaf, "rawMaf", float, "%.3f" +entry = mafMeasured, "MAF", float, "%.3f" +entry = MAPValue, "MAP", float, "%.3f" +entry = baroPressure, "baroPressure", float, "%.3f" +entry = lambdaValue, "Lambda", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" +entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" +entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" +entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" +entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" +entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" +entry = revolutionCounterSinceStart, "revolutionCounterSinceStart", int, "%d" +entry = canReadCounter, "CAN: Rx", int, "%d" +entry = tpsAccelFuel, "Fuel: TPS AE add fuel ms", float, "%.3f" +entry = currentIgnitionMode, "Ignition: Mode", int, "%d" +entry = currentInjectionMode, "Fuel: Injection mode", int, "%d" +entry = coilDutyCycle, "Ignition: coil duty cycle", float, "%.3f" +entry = etbTarget, "ETB Target", float, "%.3f" +entry = etb1DutyCycle, "ETB: Duty", float, "%.3f" +entry = fuelTankLevel, "Fuel level", float, "%.3f" +entry = totalFuelConsumption, "Fuel: Total consumed", int, "%d" +entry = fuelFlowRate, "Fuel: Flow rate", float, "%.3f" +entry = TPS2Value, "TPS2", float, "%.3f" +entry = tuneCrc16, "Tune CRC16", int, "%d" +entry = veValue, "Fuel: VE", float, "%.3f" +entry = seconds, "Uptime", int, "%d" +entry = engineMode, "Engine Mode", int, "%d" +entry = firmwareVersion, "firmware", int, "%d" +entry = rawIdlePositionSensor, "rawIdlePositionSensor", float, "%.3f" +entry = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationLat, "Accel: Lateral", float, "%.3f" +entry = accelerationLon, "Accel: Longitudinal", float, "%.3f" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", int, "%d" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = tcuDesiredGear, "TCU: Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleStepperTargetPosition, "Idle: Stepper target position", int, "%d" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = totalTriggerErrorCounter, "Trigger Error Counter", int, "%d" +entry = orderingErrorCounter, "orderingErrorCounter", int, "%d" +entry = warningCounter, "Warning: counter", int, "%d" +entry = lastErrorCode, "Warning: last", int, "%d" +entry = recentErrorCode1, "recentErrorCode 1", int, "%d" +entry = recentErrorCode2, "recentErrorCode 2", int, "%d" +entry = recentErrorCode3, "recentErrorCode 3", int, "%d" +entry = recentErrorCode4, "recentErrorCode 4", int, "%d" +entry = recentErrorCode5, "recentErrorCode 5", int, "%d" +entry = recentErrorCode6, "recentErrorCode 6", int, "%d" +entry = recentErrorCode7, "recentErrorCode 7", int, "%d" +entry = recentErrorCode8, "recentErrorCode 8", int, "%d" +entry = debugFloatField1, "debugFloatField1", float, "%.3f" +entry = debugFloatField2, "debugFloatField2", float, "%.3f" +entry = debugFloatField3, "debugFloatField3", float, "%.3f" +entry = debugFloatField4, "debugFloatField4", float, "%.3f" +entry = debugFloatField5, "debugFloatField5", float, "%.3f" +entry = debugFloatField6, "debugFloatField6", float, "%.3f" +entry = debugFloatField7, "debugFloatField7", float, "%.3f" +entry = debugIntField1, "debugIntField1", int, "%d" +entry = debugIntField2, "debugIntField2", int, "%d" +entry = debugIntField3, "debugIntField3", int, "%d" +entry = debugIntField4, "debugIntField4", int, "%d" +entry = debugIntField5, "debugIntField5", int, "%d" +entry = egt1, "EGT 1", 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 = rawPpsSecondary, "rawPpsSecondary", float, "%.3f" +entry = idlePositionSensor, "Idle: Position sensor", float, "%.3f" +entry = AFRValue, "Air/Fuel Ratio", float, "%.3f" +entry = VssAcceleration, "Vss Accel", float, "%.3f" +entry = lambdaValue2, "Lambda 2", float, "%.3f" +entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.3f" +entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.3f" +entry = vvtPositionB2I, "VVT: bank 2 intake", float, "%.3f" +entry = vvtPositionB2E, "VVT: bank 2 exhaust", float, "%.3f" +entry = fuelPidCorrection1, "Fuel: Trim bank 1", float, "%.3f" +entry = fuelPidCorrection2, "Fuel: Trim bank 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = accelerationVert, "Accel: Vertical", float, "%.3f" +entry = gyroYaw, "Gyro: Yaw rate", float, "%.3f" +entry = vvtTargets1, "vvtTargets 1", int, "%d" +entry = vvtTargets2, "vvtTargets 2", int, "%d" +entry = vvtTargets3, "vvtTargets 3", int, "%d" +entry = vvtTargets4, "vvtTargets 4", int, "%d" +entry = turboSpeed, "Turbocharger Speed", int, "%d" +entry = ignitionAdvanceCyl1, "Ign: Timing Cyl 1", float, "%.3f" +entry = ignitionAdvanceCyl2, "Ign: Timing Cyl 2", float, "%.3f" +entry = ignitionAdvanceCyl3, "Ign: Timing Cyl 3", float, "%.3f" +entry = ignitionAdvanceCyl4, "Ign: Timing Cyl 4", float, "%.3f" +entry = ignitionAdvanceCyl5, "Ign: Timing Cyl 5", float, "%.3f" +entry = ignitionAdvanceCyl6, "Ign: Timing Cyl 6", float, "%.3f" +entry = ignitionAdvanceCyl7, "Ign: Timing Cyl 7", float, "%.3f" +entry = ignitionAdvanceCyl8, "Ign: Timing Cyl 8", float, "%.3f" +entry = ignitionAdvanceCyl9, "Ign: Timing Cyl 9", float, "%.3f" +entry = ignitionAdvanceCyl10, "Ign: Timing Cyl 10", float, "%.3f" +entry = ignitionAdvanceCyl11, "Ign: Timing Cyl 11", float, "%.3f" +entry = ignitionAdvanceCyl12, "Ign: Timing Cyl 12", float, "%.3f" +entry = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Ign: Cut Code", int, "%d" +entry = fuelCutReason, "Fuel: Cut Code", int, "%d" +entry = mafEstimate, "Air: Flow estimate", float, "%.3f" +entry = instantRpm, "sync: instant RPM", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = luaInvocationCounter, "Lua: Tick counter", int, "%d" +entry = luaLastCycleDuration, "Lua: Last tick duration", int, "%d" +entry = vssEdgeCounter, "vssEdgeCounter", int, "%d" +entry = issEdgeCounter, "issEdgeCounter", int, "%d" +entry = auxLinear1, "Aux linear #1", float, "%.3f" +entry = auxLinear2, "Aux linear #2", float, "%.3f" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "CAN: Tx OK", int, "%d" +entry = canWriteNotOk, "CAN: Tx err", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = triggerVvt2Fall, "triggerVvt2Fall", int, "%d" +entry = triggerVvt2Rise, "triggerVvt2Rise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "Ign: Multispark count", int, "%d" +entry = extiOverflowCount, "extiOverflowCount", int, "%d" +entry = alternatorStatus_pTerm, "alternatorStatus_pTerm", float, "%.3f" +entry = alternatorStatus_iTerm, "alternatorStatus_iTerm", float, "%.3f" +entry = alternatorStatus_dTerm, "alternatorStatus_dTerm", float, "%.3f" +entry = alternatorStatus_output, "alternatorStatus_output", float, "%.3f" +entry = alternatorStatus_error, "alternatorStatus_error", float, "%.3f" +entry = alternatorStatus_resetCounter, "alternatorStatus_resetCounter", int, "%d" +entry = idleStatus_pTerm, "idleStatus_pTerm", float, "%.3f" +entry = idleStatus_iTerm, "idleStatus_iTerm", float, "%.3f" +entry = idleStatus_dTerm, "idleStatus_dTerm", float, "%.3f" +entry = idleStatus_output, "idleStatus_output", float, "%.3f" +entry = idleStatus_error, "idleStatus_error", float, "%.3f" +entry = idleStatus_resetCounter, "idleStatus_resetCounter", int, "%d" +entry = etbStatus_pTerm, "etbStatus_pTerm", float, "%.3f" +entry = etbStatus_iTerm, "etbStatus_iTerm", float, "%.3f" +entry = etbStatus_dTerm, "etbStatus_dTerm", float, "%.3f" +entry = etbStatus_output, "etbStatus_output", float, "%.3f" +entry = etbStatus_error, "etbStatus_error", float, "%.3f" +entry = etbStatus_resetCounter, "etbStatus_resetCounter", int, "%d" +entry = boostStatus_pTerm, "boostStatus_pTerm", float, "%.3f" +entry = boostStatus_iTerm, "boostStatus_iTerm", float, "%.3f" +entry = boostStatus_dTerm, "boostStatus_dTerm", float, "%.3f" +entry = boostStatus_output, "boostStatus_output", float, "%.3f" +entry = boostStatus_error, "boostStatus_error", float, "%.3f" +entry = boostStatus_resetCounter, "boostStatus_resetCounter", int, "%d" +entry = wastegateDcStatus_pTerm, "wastegateDcStatus_pTerm", float, "%.3f" +entry = wastegateDcStatus_iTerm, "wastegateDcStatus_iTerm", float, "%.3f" +entry = wastegateDcStatus_dTerm, "wastegateDcStatus_dTerm", float, "%.3f" +entry = wastegateDcStatus_output, "wastegateDcStatus_output", float, "%.3f" +entry = wastegateDcStatus_error, "wastegateDcStatus_error", float, "%.3f" +entry = wastegateDcStatus_resetCounter, "wastegateDcStatus_resetCounter", int, "%d" +entry = vvtStatus1_pTerm, "vvtStatus1_pTerm", float, "%.3f" +entry = vvtStatus1_iTerm, "vvtStatus1_iTerm", float, "%.3f" +entry = vvtStatus1_dTerm, "vvtStatus1_dTerm", float, "%.3f" +entry = vvtStatus1_output, "vvtStatus1_output", float, "%.3f" +entry = vvtStatus1_error, "vvtStatus1_error", float, "%.3f" +entry = vvtStatus1_resetCounter, "vvtStatus1_resetCounter", int, "%d" +entry = vvtStatus2_pTerm, "vvtStatus2_pTerm", float, "%.3f" +entry = vvtStatus2_iTerm, "vvtStatus2_iTerm", float, "%.3f" +entry = vvtStatus2_dTerm, "vvtStatus2_dTerm", float, "%.3f" +entry = vvtStatus2_output, "vvtStatus2_output", float, "%.3f" +entry = vvtStatus2_error, "vvtStatus2_error", float, "%.3f" +entry = vvtStatus2_resetCounter, "vvtStatus2_resetCounter", int, "%d" +entry = vvtStatus3_pTerm, "vvtStatus3_pTerm", float, "%.3f" +entry = vvtStatus3_iTerm, "vvtStatus3_iTerm", float, "%.3f" +entry = vvtStatus3_dTerm, "vvtStatus3_dTerm", float, "%.3f" +entry = vvtStatus3_output, "vvtStatus3_output", float, "%.3f" +entry = vvtStatus3_error, "vvtStatus3_error", float, "%.3f" +entry = vvtStatus3_resetCounter, "vvtStatus3_resetCounter", int, "%d" +entry = vvtStatus4_pTerm, "vvtStatus4_pTerm", float, "%.3f" +entry = vvtStatus4_iTerm, "vvtStatus4_iTerm", float, "%.3f" +entry = vvtStatus4_dTerm, "vvtStatus4_dTerm", float, "%.3f" +entry = vvtStatus4_output, "vvtStatus4_output", float, "%.3f" +entry = vvtStatus4_error, "vvtStatus4_error", float, "%.3f" +entry = vvtStatus4_resetCounter, "vvtStatus4_resetCounter", int, "%d" +entry = auxSpeed1, "Aux speed 1", int, "%d" +entry = auxSpeed2, "Aux speed 2", int, "%d" +entry = ISSValue, "TCU: Input Shaft Speed", int, "%d" +entry = rawAnalogInput1, "rawAnalogInput 1", float, "%.3f" +entry = rawAnalogInput2, "rawAnalogInput 2", float, "%.3f" +entry = rawAnalogInput3, "rawAnalogInput 3", float, "%.3f" +entry = rawAnalogInput4, "rawAnalogInput 4", float, "%.3f" +entry = rawAnalogInput5, "rawAnalogInput 5", float, "%.3f" +entry = rawAnalogInput6, "rawAnalogInput 6", float, "%.3f" +entry = rawAnalogInput7, "rawAnalogInput 7", float, "%.3f" +entry = rawAnalogInput8, "rawAnalogInput 8", float, "%.3f" +entry = gppwmOutput1, "GPPWM Output 1", float, "%.3f" +entry = gppwmOutput2, "GPPWM Output 2", float, "%.3f" +entry = gppwmOutput3, "GPPWM Output 3", float, "%.3f" +entry = gppwmOutput4, "GPPWM Output 4", float, "%.3f" +entry = gppwmXAxis1, "gppwmXAxis 1", int, "%d" +entry = gppwmXAxis2, "gppwmXAxis 2", int, "%d" +entry = gppwmXAxis3, "gppwmXAxis 3", int, "%d" +entry = gppwmXAxis4, "gppwmXAxis 4", int, "%d" +entry = gppwmYAxis1, "gppwmYAxis 1", float, "%.3f" +entry = gppwmYAxis2, "gppwmYAxis 2", float, "%.3f" +entry = gppwmYAxis3, "gppwmYAxis 3", float, "%.3f" +entry = gppwmYAxis4, "gppwmYAxis 4", float, "%.3f" +entry = rawBattery, "rawBattery", float, "%.3f" +entry = ignBlendParameter1, "ignBlendParameter 1", float, "%.3f" +entry = ignBlendParameter2, "ignBlendParameter 2", float, "%.3f" +entry = ignBlendParameter3, "ignBlendParameter 3", float, "%.3f" +entry = ignBlendParameter4, "ignBlendParameter 4", float, "%.3f" +entry = ignBlendBias1, "ignBlendBias 1", float, "%.3f" +entry = ignBlendBias2, "ignBlendBias 2", float, "%.3f" +entry = ignBlendBias3, "ignBlendBias 3", float, "%.3f" +entry = ignBlendBias4, "ignBlendBias 4", float, "%.3f" +entry = ignBlendOutput1, "ignBlendOutput 1", float, "%.3f" +entry = ignBlendOutput2, "ignBlendOutput 2", float, "%.3f" +entry = ignBlendOutput3, "ignBlendOutput 3", float, "%.3f" +entry = ignBlendOutput4, "ignBlendOutput 4", float, "%.3f" +entry = veBlendParameter1, "veBlendParameter 1", float, "%.3f" +entry = veBlendParameter2, "veBlendParameter 2", float, "%.3f" +entry = veBlendParameter3, "veBlendParameter 3", float, "%.3f" +entry = veBlendParameter4, "veBlendParameter 4", float, "%.3f" +entry = veBlendBias1, "veBlendBias 1", float, "%.3f" +entry = veBlendBias2, "veBlendBias 2", float, "%.3f" +entry = veBlendBias3, "veBlendBias 3", float, "%.3f" +entry = veBlendBias4, "veBlendBias 4", float, "%.3f" +entry = veBlendOutput1, "veBlendOutput 1", float, "%.3f" +entry = veBlendOutput2, "veBlendOutput 2", float, "%.3f" +entry = veBlendOutput3, "veBlendOutput 3", float, "%.3f" +entry = veBlendOutput4, "veBlendOutput 4", float, "%.3f" +entry = boostOpenLoopBlendParameter1, "boostOpenLoopBlendParameter 1", float, "%.3f" +entry = boostOpenLoopBlendParameter2, "boostOpenLoopBlendParameter 2", float, "%.3f" +entry = boostOpenLoopBlendBias1, "boostOpenLoopBlendBias 1", float, "%.3f" +entry = boostOpenLoopBlendBias2, "boostOpenLoopBlendBias 2", float, "%.3f" +entry = boostOpenLoopBlendOutput1, "boostOpenLoopBlendOutput 1", int, "%d" +entry = boostOpenLoopBlendOutput2, "boostOpenLoopBlendOutput 2", int, "%d" +entry = boostClosedLoopBlendParameter1, "boostClosedLoopBlendParameter 1", float, "%.3f" +entry = boostClosedLoopBlendParameter2, "boostClosedLoopBlendParameter 2", float, "%.3f" +entry = boostClosedLoopBlendBias1, "boostClosedLoopBlendBias 1", float, "%.3f" +entry = boostClosedLoopBlendBias2, "boostClosedLoopBlendBias 2", float, "%.3f" +entry = boostClosedLoopBlendOutput1, "boostClosedLoopBlendOutput 1", float, "%.3f" +entry = boostClosedLoopBlendOutput2, "boostClosedLoopBlendOutput 2", float, "%.3f" +entry = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = triggerChannel1, "triggerChannel1", int, "%d" +entry = triggerChannel2, "triggerChannel2", int, "%d" +entry = vvtChannel1, "bank 1 intake cam input", int, "%d" +entry = vvtChannel2, "bank 1 exhaust cam input", int, "%d" +entry = vvtChannel3, "bank 2 intake cam input", int, "%d" +entry = vvtChannel4, "bank 2 exhaust cam input", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "Lua: Gauge 1", float, "%.3f" +entry = luaGauges2, "Lua: Gauge 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = vehicleSpeedKph, "Vehicle Speed", float, "%.3f" +entry = Gego, "Gego", float, "%.3f" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = oilTemp, "oilTemp", float, "%.3f" +entry = fuelTemp, "fuelTemp", float, "%.3f" +entry = ambientTemp, "ambientTemp", float, "%.3f" +entry = compressorDischargeTemp, "compressorDischargeTemp", float, "%.3f" +entry = compressorDischargePressure, "compressorDischargePressure", float, "%.3f" +entry = throttleInletPressure, "throttleInletPressure", float, "%.3f" +entry = ignitionOnTime, "ignitionOnTime", int, "%d" +entry = engineRunTime, "engineRunTime", int, "%d" +entry = distanceTraveled, "distanceTraveled", float, "%.3f" +entry = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", float, "%.3f" +entry = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", float, "%.3f" +entry = wheelSlipRatio, "wheelSlipRatio", float, "%.3f" +entry = ignitorDiagnostic1, "ignitorDiagnostic 1", int, "%d" +entry = ignitorDiagnostic2, "ignitorDiagnostic 2", int, "%d" +entry = ignitorDiagnostic3, "ignitorDiagnostic 3", int, "%d" +entry = ignitorDiagnostic4, "ignitorDiagnostic 4", int, "%d" +entry = ignitorDiagnostic5, "ignitorDiagnostic 5", int, "%d" +entry = ignitorDiagnostic6, "ignitorDiagnostic 6", int, "%d" +entry = ignitorDiagnostic7, "ignitorDiagnostic 7", int, "%d" +entry = ignitorDiagnostic8, "ignitorDiagnostic 8", int, "%d" +entry = ignitorDiagnostic9, "ignitorDiagnostic 9", int, "%d" +entry = ignitorDiagnostic10, "ignitorDiagnostic 10", int, "%d" +entry = ignitorDiagnostic11, "ignitorDiagnostic 11", int, "%d" +entry = ignitorDiagnostic12, "ignitorDiagnostic 12", int, "%d" +entry = injectorDiagnostic1, "injectorDiagnostic 1", int, "%d" +entry = injectorDiagnostic2, "injectorDiagnostic 2", int, "%d" +entry = injectorDiagnostic3, "injectorDiagnostic 3", int, "%d" +entry = injectorDiagnostic4, "injectorDiagnostic 4", int, "%d" +entry = injectorDiagnostic5, "injectorDiagnostic 5", int, "%d" +entry = injectorDiagnostic6, "injectorDiagnostic 6", int, "%d" +entry = injectorDiagnostic7, "injectorDiagnostic 7", int, "%d" +entry = injectorDiagnostic8, "injectorDiagnostic 8", int, "%d" +entry = injectorDiagnostic9, "injectorDiagnostic 9", int, "%d" +entry = injectorDiagnostic10, "injectorDiagnostic 10", int, "%d" +entry = injectorDiagnostic11, "injectorDiagnostic 11", int, "%d" +entry = injectorDiagnostic12, "injectorDiagnostic 12", int, "%d" +entry = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", float, "%.3f" +entry = injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2", float, "%.3f" +entry = totalFuelCorrection, "Fuel: Total correction", float, "%.3f" +entry = running_postCrankingFuelCorrection, "Fuel: Post cranking mult", float, "%.3f" +entry = running_intakeTemperatureCoefficient, "Fuel: IAT correction", float, "%.3f" +entry = running_coolantTemperatureCoefficient, "Fuel: CLT correction", float, "%.3f" +entry = running_timeSinceCrankingInSecs, "running_timeSinceCrankingInSecs", float, "%.3f" +entry = running_baseFuel, "Fuel: base cycle mass", float, "%.3f" +entry = running_fuel, "Fuel: running", float, "%.3f" +entry = afrTableYAxis, "afrTableYAxis", float, "%.3f" +entry = targetLambda, "Fuel: target lambda", float, "%.3f" +entry = targetAFR, "Fuel: target AFR", float, "%.3f" +entry = stoichiometricRatio, "Fuel: Stoich ratio", float, "%.3f" +entry = sdTcharge_coff, "sdTcharge_coff", float, "%.3f" +entry = sdAirMassInOneCylinder, "Air: Cylinder airmass", float, "%.3f" +entry = normalizedCylinderFilling, "Air: Normalized cyl filling", float, "%.3f" +entry = brokenInjector, "brokenInjector", int, "%d" +entry = idealEngineTorque, "idealEngineTorque", int, "%d" +entry = injectorHwIssue, "injectorHwIssue", int, "%d" +entry = baseDwell, "Ignition: base dwell", float, "%.3f" +entry = sparkDwell, "Ignition: coil charge time", float, "%.3f" +entry = dwellDurationAngle, "Ignition: dwell duration", float, "%.3f" +entry = cltTimingCorrection, "Ign: CLT correction", float, "%.3f" +entry = timingIatCorrection, "Ign: IAT correction", float, "%.3f" +entry = timingPidCorrection, "Idle: Timing adjustment", float, "%.3f" +entry = baseIgnitionAdvance, "Ignition: Timing", float, "%.3f" +entry = correctedIgnitionAdvance, "Timing: ignition", float, "%.3f" +entry = tractionAdvanceDrop, "Traction: timing correction", float, "%.3f" +entry = dwellVoltageCorrection, "Ign: Dwell voltage correction", float, "%.3f" +entry = luaTimingAdd, "Ign: Lua timing add", float, "%.3f" +entry = luaTimingMult, "Ign: Lua timing mult", float, "%.3f" +entry = luaIgnitionSkip, "Ign: Lua Spark Skip", int, "%d" +entry = m_knockLevel, "Knock: Current level", float, "%.3f" +entry = m_knockCyl1, "Knock: Cyl 1", int, "%d" +entry = m_knockCyl2, "Knock: Cyl 2", int, "%d" +entry = m_knockCyl3, "Knock: Cyl 3", int, "%d" +entry = m_knockCyl4, "Knock: Cyl 4", int, "%d" +entry = m_knockCyl5, "Knock: Cyl 5", int, "%d" +entry = m_knockCyl6, "Knock: Cyl 6", int, "%d" +entry = m_knockCyl7, "Knock: Cyl 7", int, "%d" +entry = m_knockCyl8, "Knock: Cyl 8", int, "%d" +entry = m_knockCyl9, "Knock: Cyl 9", int, "%d" +entry = m_knockCyl10, "Knock: Cyl 10", int, "%d" +entry = m_knockCyl11, "Knock: Cyl 11", int, "%d" +entry = m_knockCyl12, "Knock: Cyl 12", int, "%d" +entry = m_knockRetard, "Knock: Retard", float, "%.3f" +entry = m_knockThreshold, "Knock: Threshold", float, "%.3f" +entry = m_knockCount, "Knock: Count", int, "%d" +entry = m_maximumRetard, "Knock: Max retard", float, "%.3f" +entry = tcuCurrentGear, "Current Gear", int, "%d" +entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f" +entry = lastShiftTime, "lastShiftTime", float, "%.3f" +entry = tcu_currentRange, "TCU: Current Range", int, "%d" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = m_requested_pump, "GDI: HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "GDI: requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "GDI: percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = m_pressureTarget_kPa, "GDI: target pressure", float, "%.3f" +entry = nextLobe, "GDI: nextLobe", float, "%.3f" +entry = di_nextStart, "GDI: next start", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "Fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "Fuel: Injector pressure ratio", float, "%.3f" +entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" +entry = combinedConditions, "combinedConditions", int, "%d" +entry = launchActivatePinState, "launchActivatePinState", int, "%d" +entry = isLaunchPreCondition, "isLaunchPreCondition", int, "%d" +entry = isLaunchCondition, "isLaunchCondition", int, "%d" +entry = isSwitchActivated, "isSwitchActivated", int, "%d" +entry = isClutchActivated, "isClutchActivated", int, "%d" +entry = isValidInputPin, "isValidInputPin", int, "%d" +entry = activateSwitchCondition, "activateSwitchCondition", int, "%d" +entry = rpmCondition, "rpmCondition", int, "%d" +entry = speedCondition, "speedCondition", int, "%d" +entry = tpsCondition, "tpsCondition", int, "%d" +entry = isAntilagCondition, "isAntilagCondition", int, "%d" +entry = ALSMinRPMCondition, "ALSMinRPMCondition", int, "%d" +entry = ALSMaxRPMCondition, "ALSMaxRPMCondition", int, "%d" +entry = ALSMinCLTCondition, "ALSMinCLTCondition", int, "%d" +entry = ALSMaxCLTCondition, "ALSMaxCLTCondition", int, "%d" +entry = ALSMaxThrottleIntentCondition, "ALSMaxThrottleIntentCondition", int, "%d" +entry = isALSSwitchActivated, "isALSSwitchActivated", int, "%d" +entry = ALSActivatePinState, "ALSActivatePinState", int, "%d" +entry = ALSSwitchCondition, "ALSSwitchCondition", int, "%d" +entry = ALSTimerCondition, "ALSTimerCondition", int, "%d" +entry = fuelALSCorrection, "fuelALSCorrection", float, "%.3f" +entry = timingALSCorrection, "timingALSCorrection", float, "%.3f" +entry = timingALSSkip, "timingALSSkip", float, "%.3f" +entry = isTpsInvalid, "isTpsInvalid", int, "%d" +entry = m_shouldResetPid, "m_shouldResetPid", int, "%d" +entry = isBelowClosedLoopThreshold, "isBelowClosedLoopThreshold", int, "%d" +entry = isNotClosedLoop, "isNotClosedLoop", int, "%d" +entry = isZeroRpm, "isZeroRpm", int, "%d" +entry = hasInitBoost, "hasInitBoost", int, "%d" +entry = rpmTooLow, "rpmTooLow", int, "%d" +entry = tpsTooLow, "tpsTooLow", int, "%d" +entry = mapTooLow, "mapTooLow", int, "%d" +entry = isPlantValid, "isPlantValid", int, "%d" +entry = isBoostControlled, "isBoostControlled", int, "%d" +entry = luaTargetAdd, "Boost: Lua target add", float, "%.3f" +entry = boostOutput, "Boost: Output", float, "%.3f" +entry = luaTargetMult, "Boost: Lua target mult", float, "%.3f" +entry = openLoopPart, "Boost: Open loop", float, "%.3f" +entry = luaOpenLoopAdd, "Boost: Lua open loop add", float, "%.3f" +entry = boostControllerClosedLoopPart, "Boost: Closed loop", float, "%.3f" +entry = boostControlTarget, "Boost: Target", float, "%.3f" +entry = acButtonState, "AC switch", int, "%d" +entry = m_acEnabled, "AC enabled", int, "%d" +entry = engineTooSlow, "AC engine too slow", int, "%d" +entry = engineTooFast, "AC engine too fast", int, "%d" +entry = noClt, "AC no CLT", int, "%d" +entry = engineTooHot, "AC engine too hot", int, "%d" +entry = tpsTooHigh, "AC tps too high", int, "%d" +entry = isDisabledByLua, "AC disabled by Lua", int, "%d" +entry = acCompressorState, "AC compressor on", int, "%d" +entry = latest_usage_ac_control, "AC latest activity", int, "%d" +entry = acSwitchLastChangeTimeMs, "acSwitchLastChangeTimeMs", int, "%d" +entry = cranking0, "cranking0", int, "%d" +entry = notRunning0, "notRunning0", int, "%d" +entry = disabledWhileEngineStopped0, "disabledWhileEngineStopped0", int, "%d" +entry = brokenClt0, "brokenClt0", int, "%d" +entry = enabledForAc0, "enabledForAc0", int, "%d" +entry = hot0, "hot0", int, "%d" +entry = cold0, "cold0", int, "%d" +entry = disabledBySpeed0, "disabledBySpeed0", int, "%d" +;entry = cranking1, "cranking1", int, "%d" +;entry = notRunning1, "notRunning1", int, "%d" +;entry = disabledWhileEngineStopped1, "disabledWhileEngineStopped1", int, "%d" +;entry = brokenClt1, "brokenClt1", int, "%d" +;entry = enabledForAc1, "enabledForAc1", int, "%d" +;entry = hot1, "hot1", int, "%d" +;entry = cold1, "cold1", int, "%d" +;entry = disabledBySpeed1, "disabledBySpeed1", int, "%d" +entry = isPrime, "isPrime", int, "%d" +entry = engineTurnedRecently, "engineTurnedRecently", int, "%d" +entry = isFuelPumpOn, "isFuelPumpOn", int, "%d" +entry = ignitionOn, "ignitionOn", int, "%d" +entry = isBenchTest, "isBenchTest", int, "%d" +entry = hasIgnitionVoltage, "hasIgnitionVoltage", int, "%d" +entry = mainRelayState, "mainRelayState", int, "%d" +entry = delayedShutoffRequested, "delayedShutoffRequested", int, "%d" +entry = lua_fuelAdd, "Lua: Fuel add", float, "%.3f" +entry = lua_fuelMult, "Lua: Fuel mult", float, "%.3f" +entry = lua_clutchUpState, "lua_clutchUpState", int, "%d" +entry = lua_brakePedalState, "lua_brakePedalState", int, "%d" +entry = lua_acRequestState, "lua_acRequestState", int, "%d" +entry = lua_luaDisableEtb, "lua_luaDisableEtb", int, "%d" +entry = lua_luaIgnCut, "lua_luaIgnCut", int, "%d" +entry = sd_tCharge, "Air: Charge temperature estimate", float, "%.3f" +entry = sd_tChargeK, "Air: Charge temperature estimate K", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Fuel: cranking CLT mult", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "Fuel: cranking TPS mult", float, "%.3f" +entry = crankingFuel_durationCoefficient, "Fuel: cranking duration mult", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Cranking cycle mass", float, "%.3f" +entry = baroCorrection, "Fuel: Barometric pressure mult", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "Clutch: up", int, "%d" +entry = clutchDownState, "Clutch: down", int, "%d" +entry = brakePedalState, "Brake switch", int, "%d" +entry = startStopState, "startStopState", int, "%d" +entry = smartChipState, "smartChipState", int, "%d" +entry = smartChipRestartCounter, "smartChipRestartCounter", int, "%d" +entry = smartChipAliveCounter, "smartChipAliveCounter", int, "%d" +entry = startStopPhysicalState, "startStopPhysicalState", int, "%d" +entry = acrActive, "Harley ACR Active", int, "%d" +entry = acrEngineMovedRecently, "acrEngineMovedRecently", int, "%d" +entry = heaterControlEnabled, "heaterControlEnabled", int, "%d" +entry = luaDigitalState0, "luaDigitalState0", int, "%d" +entry = luaDigitalState1, "luaDigitalState1", int, "%d" +entry = luaDigitalState2, "luaDigitalState2", int, "%d" +entry = luaDigitalState3, "luaDigitalState3", int, "%d" +entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d" +entry = egtValue1, "egtValue1", float, "%.3f" +entry = egtValue2, "egtValue2", float, "%.3f" +entry = luaSoftSparkSkip, "luaSoftSparkSkip", float, "%.3f" +entry = luaHardSparkSkip, "luaHardSparkSkip", float, "%.3f" +entry = tractionControlSparkSkip, "tractionControlSparkSkip", float, "%.3f" +entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d" +entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d" +entry = globalSparkCounter, "Ign: Spark counter", int, "%d" +entry = fuelingLoad, "Fuel: Load", float, "%.3f" +entry = ignitionLoad, "Ignition: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "Fuel: TPS AE from", float, "%.3f" +entry = tpsTo, "Fuel: TPS AE to", float, "%.3f" +entry = deltaTps, "Fuel: TPS AE change", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "Fuel: TPS AE Active", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Fuel: TPS AE: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Fuel: TPS AE: below threshold", int, "%d" +entry = tooShort, "Fuel: TPS AE: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "Sync: total cams front counter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Sync: Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "Sync: trigger angle error", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = mapCamPrevToothAngle, "Sync: MAP: prev angle", float, "%.3f" +entry = isDecodingMapCam, "isDecodingMapCam", int, "%d" +entry = crankSynchronizationCounter0, "sync: Crank sync counter0", int, "%d" +entry = vvtSyncGapRatio0, "vvtSyncGapRatio0", float, "%.3f" +entry = vvtToothDurations00, "vvtToothDurations00", int, "%d" +entry = vvtCurrentPosition0, "vvtCurrentPosition0", float, "%.3f" +entry = vvtToothPosition10, "vvtToothPosition 10", float, "%.3f" +entry = vvtToothPosition20, "vvtToothPosition 20", float, "%.3f" +entry = vvtToothPosition30, "vvtToothPosition 30", float, "%.3f" +entry = vvtToothPosition40, "vvtToothPosition 40", float, "%.3f" +entry = triggerSyncGapRatio0, "Trigger Sync Latest Ratio0", float, "%.3f" +entry = triggerStateIndex0, "triggerStateIndex0", int, "%d" +entry = vvtStateIndex0, "vvtStateIndex0", int, "%d" +;entry = crankSynchronizationCounter1, "sync: Crank sync counter1", int, "%d" +;entry = vvtSyncGapRatio1, "vvtSyncGapRatio1", float, "%.3f" +;entry = vvtToothDurations01, "vvtToothDurations01", int, "%d" +;entry = vvtCurrentPosition1, "vvtCurrentPosition1", float, "%.3f" +;entry = vvtToothPosition11, "vvtToothPosition 11", float, "%.3f" +;entry = vvtToothPosition21, "vvtToothPosition 21", float, "%.3f" +;entry = vvtToothPosition31, "vvtToothPosition 31", float, "%.3f" +;entry = vvtToothPosition41, "vvtToothPosition 41", float, "%.3f" +;entry = triggerSyncGapRatio1, "Trigger Sync Latest Ratio1", float, "%.3f" +;entry = triggerStateIndex1, "triggerStateIndex1", int, "%d" +;entry = vvtStateIndex1, "vvtStateIndex1", int, "%d" +;entry = crankSynchronizationCounter2, "sync: Crank sync counter2", int, "%d" +;entry = vvtSyncGapRatio2, "vvtSyncGapRatio2", float, "%.3f" +;entry = vvtToothDurations02, "vvtToothDurations02", int, "%d" +;entry = vvtCurrentPosition2, "vvtCurrentPosition2", float, "%.3f" +;entry = vvtToothPosition12, "vvtToothPosition 12", float, "%.3f" +;entry = vvtToothPosition22, "vvtToothPosition 22", float, "%.3f" +;entry = vvtToothPosition32, "vvtToothPosition 32", float, "%.3f" +;entry = vvtToothPosition42, "vvtToothPosition 42", float, "%.3f" +;entry = triggerSyncGapRatio2, "Trigger Sync Latest Ratio2", float, "%.3f" +;entry = triggerStateIndex2, "triggerStateIndex2", int, "%d" +;entry = vvtStateIndex2, "vvtStateIndex2", int, "%d" +;entry = crankSynchronizationCounter3, "sync: Crank sync counter3", int, "%d" +;entry = vvtSyncGapRatio3, "vvtSyncGapRatio3", float, "%.3f" +;entry = vvtToothDurations03, "vvtToothDurations03", int, "%d" +;entry = vvtCurrentPosition3, "vvtCurrentPosition3", float, "%.3f" +;entry = vvtToothPosition13, "vvtToothPosition 13", float, "%.3f" +;entry = vvtToothPosition23, "vvtToothPosition 23", float, "%.3f" +;entry = vvtToothPosition33, "vvtToothPosition 33", float, "%.3f" +;entry = vvtToothPosition43, "vvtToothPosition 43", float, "%.3f" +;entry = triggerSyncGapRatio3, "Trigger Sync Latest Ratio3", float, "%.3f" +;entry = triggerStateIndex3, "triggerStateIndex3", int, "%d" +;entry = vvtStateIndex3, "vvtStateIndex3", int, "%d" +;entry = crankSynchronizationCounter4, "sync: Crank sync counter4", int, "%d" +;entry = vvtSyncGapRatio4, "vvtSyncGapRatio4", float, "%.3f" +;entry = vvtToothDurations04, "vvtToothDurations04", int, "%d" +;entry = vvtCurrentPosition4, "vvtCurrentPosition4", float, "%.3f" +;entry = vvtToothPosition14, "vvtToothPosition 14", float, "%.3f" +;entry = vvtToothPosition24, "vvtToothPosition 24", float, "%.3f" +;entry = vvtToothPosition34, "vvtToothPosition 34", float, "%.3f" +;entry = vvtToothPosition44, "vvtToothPosition 44", float, "%.3f" +;entry = triggerSyncGapRatio4, "Trigger Sync Latest Ratio4", float, "%.3f" +;entry = triggerStateIndex4, "triggerStateIndex4", int, "%d" +;entry = vvtStateIndex4, "vvtStateIndex4", int, "%d" +entry = camResyncCounter, "sync: Phase Re-Sync Counter", int, "%d" +entry = m_hasSynchronizedPhase, "sync: Known Engine Phase", int, "%d" +entry = wallFuelCorrection, "fuel wallwetting injection time", float, "%.3f" +entry = wallFuel, "Fuel on the wall", float, "%.3f" +entry = idleState, "idleState", int, "%d" +entry = currentIdlePosition, "Idle: Position", float, "%.3f" +entry = baseIdlePosition, "idle: base value", float, "%.3f" +entry = idleClosedLoop, "Idle: Closed loop", float, "%.3f" +entry = iacByTpsTaper, "idle: iacByTpsTaper portion", float, "%.3f" +entry = throttlePedalUpState, "idle: throttlePedalUpState", int, "%d" +entry = mightResetPid, "idle: mightResetPid", int, "%d" +entry = shouldResetPid, "Idle: shouldResetPid", int, "%d" +entry = wasResetPid, "Idle: wasResetPid", int, "%d" +entry = mustResetPid, "Idle: mustResetPid", int, "%d" +entry = isCranking, "Idle: cranking", int, "%d" +entry = isIacTableForCoasting, "isIacTableForCoasting", int, "%d" +entry = notIdling, "notIdling", int, "%d" +entry = needReset, "Idle: reset", int, "%d" +entry = isInDeadZone, "Idle: dead zone", int, "%d" +entry = isBlipping, "isBlipping", int, "%d" +entry = useClosedLoop, "useClosedLoop", int, "%d" +entry = badTps, "badTps", int, "%d" +entry = looksLikeRunning, "looksLikeRunning", int, "%d" +entry = looksLikeCoasting, "looksLikeCoasting", int, "%d" +entry = looksLikeCrankToIdle, "looksLikeCrankToIdle", int, "%d" +entry = isIdleCoasting, "Idle: coasting", int, "%d" +entry = isIdleClosedLoop, "Idle: Closed loop active", int, "%d" +entry = idleTarget, "Idle: Target RPM", int, "%d" +entry = targetRpmByClt, "Idle: Target RPM base", int, "%d" +entry = targetRpmAc, "Idle: Target A/C RPM", int, "%d" +entry = iacByRpmTaper, "idle: iacByRpmTaper portion", float, "%.3f" +entry = luaAdd, "idle: Lua Adder", float, "%.3f" +entry = idlePosition0, "ETB: idlePosition0", float, "%.3f" +entry = trim0, "ETB: trim0", float, "%.3f" +entry = luaAdjustment0, "ETB: luaAdjustment0", float, "%.3f" +entry = m_wastegatePosition0, "DC: wastegatePosition0", float, "%.3f" +entry = etbFeedForward0, "etbFeedForward0", float, "%.3f" +entry = etbIntegralError0, "etbIntegralError0", float, "%.3f" +entry = etbCurrentTarget0, "etbCurrentTarget0", float, "%.3f" +entry = etbCurrentAdjustedTarget0, "etbCurrentAdjustedTarget0", float, "%.3f" +entry = etbRevLimitActive0, "etbRevLimitActive0", int, "%d" +entry = jamDetected0, "jamDetected0", int, "%d" +entry = etbDutyRateOfChange0, "ETB duty rate of change0", float, "%.3f" +entry = etbDutyAverage0, "ETB average duty0", float, "%.3f" +entry = etbTpsErrorCounter0, "ETB TPS error counter0", int, "%d" +entry = etbPpsErrorCounter0, "ETB pedal error counter0", int, "%d" +entry = etbErrorCode0, "etbErrorCode0", int, "%d" +entry = tcEtbDrop0, "tcEtbDrop0", int, "%d" +entry = jamTimer0, "ETB jam timer0", float, "%.3f" +;entry = idlePosition1, "ETB: idlePosition1", float, "%.3f" +;entry = trim1, "ETB: trim1", float, "%.3f" +;entry = luaAdjustment1, "ETB: luaAdjustment1", float, "%.3f" +;entry = m_wastegatePosition1, "DC: wastegatePosition1", float, "%.3f" +;entry = etbFeedForward1, "etbFeedForward1", float, "%.3f" +;entry = etbIntegralError1, "etbIntegralError1", float, "%.3f" +;entry = etbCurrentTarget1, "etbCurrentTarget1", float, "%.3f" +;entry = etbCurrentAdjustedTarget1, "etbCurrentAdjustedTarget1", float, "%.3f" +;entry = etbRevLimitActive1, "etbRevLimitActive1", int, "%d" +;entry = jamDetected1, "jamDetected1", int, "%d" +;entry = etbDutyRateOfChange1, "ETB duty rate of change1", float, "%.3f" +;entry = etbDutyAverage1, "ETB average duty1", float, "%.3f" +;entry = etbTpsErrorCounter1, "ETB TPS error counter1", int, "%d" +;entry = etbPpsErrorCounter1, "ETB pedal error counter1", int, "%d" +;entry = etbErrorCode1, "etbErrorCode1", int, "%d" +;entry = tcEtbDrop1, "tcEtbDrop1", int, "%d" +;entry = jamTimer1, "ETB jam timer1", float, "%.3f" +entry = faultCode0, "WBO: Fault code0", int, "%d" +entry = heaterDuty0, "WBO: Heater duty0", int, "%d" +entry = pumpDuty0, "WBO: Pump duty0", int, "%d" +entry = tempC0, "WBO: Temperature0", int, "%d" +entry = nernstVoltage0, "WBO: Nernst Voltage0", float, "%.3f" +entry = esr0, "WBO: ESR0", int, "%d" +;entry = faultCode1, "WBO: Fault code1", int, "%d" +;entry = heaterDuty1, "WBO: Heater duty1", int, "%d" +;entry = pumpDuty1, "WBO: Pump duty1", int, "%d" +;entry = tempC1, "WBO: Temperature1", int, "%d" +;entry = nernstVoltage1, "WBO: Nernst Voltage1", float, "%.3f" +;entry = esr1, "WBO: ESR1", int, "%d" +entry = dcOutput0, "DC: output0", float, "%.3f" +entry = isEnabled0_int, "DC: en0", int, "%d" +entry = isEnabled0, "isEnabled0", int, "%d" +entry = value0, "ETB: SENT value0", int, "%d" +entry = value1, "ETB: SENT value1", int, "%d" +entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" +entry = lambdaCurrentlyGood, "lambdaCurrentlyGood", int, "%d" +entry = lambdaMonitorCut, "lambdaMonitorCut", int, "%d" +entry = lambdaTimeSinceGood, "lambdaTimeSinceGood", float, "%.3f" + + +[Menu] + +menuDialog = main +; see #1653 +; menu = "Data Logging" +; subMenu = std_ms3SdConsole, "Browse / Import SD Card" + + menu = "&Base &Engine" + subMenu = engineChars, "Base engine" + subMenu = limitsAndFallback, "Limits and fallbacks" + subMenu = triggerConfiguration, "Trigger" + subMenu = trigger_advanced, "Advanced Trigger" + subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = std_separator + subMenu = energySystems, "Battery and alternator" + subMenu = std_separator + + # Digital outputs + subMenu = outputsDialog, "Outputs" + subMenu = acSettings, "Air Conditioning" + subMenu = statusLeds, "Status LEDs" + + menu = "Fuel" + # basic + subMenu = injectorConfig, "Injection configuration" + subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} + + subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} + subMenu = stagedInjectionOutputs, "Staged injection outputs", 0, {isInjectionEnabled && enableStagedInjection} + subMenu = stagedInjectionTbl, "Staged injection % table", 0, {isInjectionEnabled && enableStagedInjection} + + groupMenu = "Cylinder fuel trims" + groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" + groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2" + groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3" + groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4" + groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5" + groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6" + groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7" + groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8" + groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9" + groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10" + groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11" + groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12" + + subMenu = std_separator + + # Air mass model + subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} + subMenu = veTableMap, "VE Table", 0, {isInjectionEnabled} + + groupMenu = "VE blend tables" + groupChildMenu = veBlend1Cfg, "VE blend 1 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend1Table, "VE blend table 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 } + groupChildMenu = veBlend2Cfg, "VE blend 2 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend2Table, "VE blend table 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 } + groupChildMenu = veBlend3Cfg, "VE blend 3 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend3Table, "VE blend table 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 } + groupChildMenu = veBlend4Cfg, "VE blend 4 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend4Table, "VE blend table 4", 0, { isInjectionEnabled && veBlends4_blendParameter != 0 } + + subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} + subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == 0} + subMenu = mapEstimateTableTbl, "MAP estimate table" + subMenu = std_separator + + # Fuel model +#if LAMBDA + subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} +#else + subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} +#endif + subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} + subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} + subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} + subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Injector model + subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Accel enrichment + subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} + subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} + subMenu = tpsTspRpmCorrection, "TPS/TPS extra fuelRPM correction", 0, {isInjectionEnabled == 1} + + groupMenu = "Wall wetting AE" + groupChildMenu = wwTauCurves, "Evap time", 0, { complexWallModel != 0 } + groupChildMenu = wwBetaCurves, "Impact fraction", 0, { complexWallModel != 0 } + + menu = "Ignition" + subMenu = ignitionSettings, "Ignition settings" + subMenu = std_separator + + subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = ignitionTableMap, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = cltTimingCorrCurve, "Ign CLT correction", 0, {isIgnitionEnabled == 1} + subMenu = ignitionIatCorrTableTbl, "Ign IAT correction", 0, {isIgnitionEnabled == 1} + subMenu = std_separator + + subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} + groupMenu = "Ignition blend tables" + groupChildMenu = ignAdder1Cfg, "Ignition blend 1 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder1Table, "Ignition blend table 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 } + groupChildMenu = ignAdder2Cfg, "Ignition blend 2 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder2Table, "Ignition blend table 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 } + groupChildMenu = ignAdder3Cfg, "Ignition blend 3 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder3Table, "Ignition blend table 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 } + groupChildMenu = ignAdder4Cfg, "Ignition blend 4 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder4Table, "Ignition blend table 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 } + groupMenu = "Cylinder ign trims" + groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1" + groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2" + groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3" + groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4" + groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5" + groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6" + groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7" + groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8" + groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9" + groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10" + groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11" + groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12" + subMenu = std_separator + + subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + + menu = "&Cranking" + subMenu = crankingDialog, "Cranking settings" + subMenu = postCrankingEnrichmentTbl,"After-start enrichment" + subMenu = primingFuelPulsePanel, "Priming pulse" + subMenu = std_separator + + subMenu = crankingCltCurve, "Fuel CLT multiplier" + subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != 0 && flexCranking } + subMenu = crankingDurationCurve, "Fuel duration multiplier" + subMenu = crankingTpsCurve, "Fuel TPS multiplier" + subMenu = std_separator + + subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1} + subMenu = std_separator + + subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1} + + menu = "&Idle" + subMenu = idleSettings, "Idle settings" + subMenu = idlehw, "Idle hardware" + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" + subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting == 1} + subMenu = std_separator + subMenu = idleVeTableTbl, "Idle VE", 0, {useSeparateVeForIdle == 1} + subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} + + menu = "&Advanced" + subMenu = smLaunchControl, "Launch Control" + subMenu = ignitionCylExtra, "Cylinder offsets", 0 + + subMenu = std_separator + subMenu = boostDialog, "Boost control" + subMenu = boostOpenLoopDialog, "Boost control open loop", { isBoostControlEnabled } + subMenu = boostOpenLoopGearAdderDialog, "Boost control open loop gear adder", { isBoostControlEnabled } + subMenu = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + + groupMenu = "Boost blend tables" + groupChildMenu = boostOpenBlend1Cfg, "Open loop 1 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend1Table, "Open loop 1 adder", { isBoostControlEnabled && boostOpenLoopBlends1_blendParameter != 0 } + groupChildMenu = boostOpenBlend2Cfg, "Open loop 2 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend2Table, "Open loop 2 adder", { isBoostControlEnabled && boostOpenLoopBlends2_blendParameter != 0 } + groupChildMenu = boostClosedBlend1Cfg, "Closed loop 1 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 1 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends1_blendParameter != 0 } + groupChildMenu = boostClosedBlend2Cfg, "Closed loop 2 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 2 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends2_blendParameter != 0 } + + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 4 || etbFunctions2 == 4 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 && vvtPins1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 && vvtPins2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + + subMenu = std_separator + subMenu = tcuControls, "Transmission Settings (alpha)" + subMenu = gearControls, "Gear Selection Settings (alpha)" + subMenu = inputSpeedSensor, "Input Speed Sensor (alpha)" + subMenu = tcuSolenoidTableTbl, "Shift Solenoids (alpha)" + subMenu = tccCurves, "TCC Lock/Unlock Speed (alpha)" + subMenu = pcPerGearDialog, "Line Pressure Per Gear (alpha)" + subMenu = pcPerShiftDialog, "Line Pressure Per Shift (alpha)" + subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed (alpha)" + subMenu = rangeMatrixDialog, "Range Selector Input Matrix (alpha)" + + 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 = speedSensor, "Vehicle speed sensor" + subMenu = oilPressureSensor, "Oil pressure" + subMenu = oilTempSensor, "Oil temp sensor" + subMenu = fuelPressureSensor, "Fuel pressure" + subMenu = fuelTempSensor, "Fuel temp sensor" + subMenu = fuelLevelDialog, "Fuel level sensor" + subMenu = ambientTempSensor, "Ambient temp sensor" + subMenu = compressorDischargeTemperature, "Compressor discharge temp" + subMenu = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = spiBuses, "SPI Buses" + subMenu = spiDevices, "SPI Devices" + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = std_separator + + subMenu = std_separator + + subMenu = allPins1, "Full pinout 1/3" + subMenu = allPins2, "Full pinout 2/3" + subMenu = allPins3_1_and_2 "Full pinout 3/3" + 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 = tractionEtbTableTbl, "Traction Control ETB Drop" + subMenu = tractionTimingTableTbl, "Traction Control Timing Adjustment" + subMenu = tractionIgnitionSkipDialog, "Traction Control Skip Ignition" + subMenu = std_separator + + + ; TODO: move lambdaProtection to the fuel menu once ready + ; https://github.com/FOME-Tech/fome-fw/issues/75 + subMenu = lambdaProtection, "Lambda Protection", 0, { isInjectionEnabled } + subMenu = std_separator + + subMenu = kLineDialog, "K-Line" + subMenu = parkingLot, "Experimental/Broken" + subMenu = parkingLot2, "Experimental 2" + subMenu = harleyAcr, "HD" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + subMenu = throttleEffectiveArea, "Throttle effective area" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = tcu_controllerDialog, "tcu_controller" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_control0Dialog, "fan_control0" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_state0Dialog, "trigger_state0" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttle0Dialog, "electronic_throttle0" + subMenu = wideband_state0Dialog, "wideband_state0" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + subMenu = vvtDialog, "vvt" + subMenu = lambda_monitorDialog, "lambda_monitor" + + + +[ControllerCommands] +; commandName = command1, command2, commandn... +; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. +; This does not include any resultant protocol envelope data, only the response data itself. + +; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands +; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition +; and may create error messages. +; It is expected that these commands would not typically alter any ram mapped to a Constant. + +; +; see TS_IO_TEST_COMMAND in firmware code +; + +cmd_test_spk1 = "Z\x00\x12\x00\x01" +cmd_test_spk2 = "Z\x00\x12\x00\x02" +cmd_test_spk3 = "Z\x00\x12\x00\x03" +cmd_test_spk4 = "Z\x00\x12\x00\x04" +cmd_test_spk5 = "Z\x00\x12\x00\x05" +cmd_test_spk6 = "Z\x00\x12\x00\x06" +cmd_test_spk7 = "Z\x00\x12\x00\x07" +cmd_test_spk8 = "Z\x00\x12\x00\x08" +cmd_test_spk9 = "Z\x00\x12\x00\x09" +cmd_test_spk10 = "Z\x00\x12\x00\x0a" +cmd_test_spk11 = "Z\x00\x12\x00\x0b" +cmd_test_spk12 = "Z\x00\x12\x00\x0c" + +cmd_test_lua1 = "Z\x00\x20\x00\x01" +cmd_test_lua2 = "Z\x00\x20\x00\x02" +cmd_test_lua3 = "Z\x00\x20\x00\x03" +cmd_test_lua4 = "Z\x00\x20\x00\x04" +cmd_test_lua5 = "Z\x00\x20\x00\x05" +cmd_test_lua6 = "Z\x00\x20\x00\x06" +cmd_test_lua7 = "Z\x00\x20\x00\x07" +cmd_test_lua8 = "Z\x00\x20\x00\x08" + +cmd_test_inj1 = "Z\x00\x13\x00\x01" +cmd_test_inj2 = "Z\x00\x13\x00\x02" +cmd_test_inj3 = "Z\x00\x13\x00\x03" +cmd_test_inj4 = "Z\x00\x13\x00\x04" +cmd_test_inj5 = "Z\x00\x13\x00\x05" +cmd_test_inj6 = "Z\x00\x13\x00\x06" +cmd_test_inj7 = "Z\x00\x13\x00\x07" +cmd_test_inj8 = "Z\x00\x13\x00\x08" +cmd_test_inj9 = "Z\x00\x13\x00\x09" +cmd_test_inj10 = "Z\x00\x13\x00\x0a" +cmd_test_inj11 = "Z\x00\x13\x00\x0b" +cmd_test_inj12 = "Z\x00\x13\x00\x0c" + +cmd_test_cancel = "Z\x00\x16\x00\x0f" + +cmd_test_sol1 = "Z\x00\x19\x00\x01" +cmd_test_sol2 = "Z\x00\x19\x00\x02" +cmd_test_sol3 = "Z\x00\x19\x00\x03" +cmd_test_sol4 = "Z\x00\x19\x00\x04" +cmd_test_sol5 = "Z\x00\x19\x00\x05" +cmd_test_sol6 = "Z\x00\x19\x00\x06" + +cmd_test_main_relay = "Z\x00\x16\x00\x00" +cmd_test_fuel_pump = "Z\x00\x16\x00\x01" +cmd_test_starter_relay = "Z\x00\x16\x00\x02" +cmd_test_starter_disable_relay = "Z\x00\x16\x00\x03" +cmd_test_ac_relay = "Z\x00\x16\x00\x06" +cmd_test_fan_1 = "Z\x00\x16\x00\x04" +cmd_test_fan_2 = "Z\x00\x16\x00\x05" +cmd_test_check_engine_light = "Z\x00\x16\x00\x07" +cmd_test_idle_valve = "Z\x00\x16\x00\x08" +cmd_test_second_idle_valve = "Z\x00\x16\x00\x0e" +cmd_test_hpfp_valve = "Z\x00\x16\x00\x09" +cmd_test_acr_valve = "Z\x00\x16\x00\x1c" +cmd_test_acr2_valve = "Z\x00\x16\x00\x1d" +cmd_test_vvt0_valve = "Z\x00\x16\x00\x10" +cmd_test_vvt1_valve = "Z\x00\x16\x00\x11" +cmd_test_vvt2_valve = "Z\x00\x16\x00\x12" +cmd_test_vvt3_valve = "Z\x00\x16\x00\x13" + +cmd_calibrate_tps_1_closed = "Z\x00\x14\x00\x02" +cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03" +cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04" +cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05" +cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06" +cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07" +cmd_tle8888_init = "Z\x00\x14\x00\x08" +cmd_mc33810_init = "Z\x00\x14\x00\x14" +cmd_write_config = "Z\x00\x14\x00\x0a" +cmd_etb_reset = "Z\x00\x14\x00\x0b" +cmd_etb_autotune = "Z\x00\x14\x00\x0C" +cmd_enable_self_stim = "Z\x00\x14\x00\x0D" +cmd_etb_auto_calibrate = "Z\x00\x14\x00\x0E" +cmd_disable_self_stim = "Z\x00\x14\x00\x0F" +cmd_etb_autotune_stop = "Z\x00\x14\x00\x10" +cmd_etb_auto_calibrate_2 = "Z\x00\x14\x00\x11" +cmd_wideband_firmare_update = "Z\x00\x14\x00\x12" +cmd_enable_ext_stim = "Z\x00\x14\x00\x13" +cmd_burn_without_flash = "Z\x00\x14\x00\x15" + +cmd_set_wideband_idx_0 = "Z\x00\x15\x00\x00" +cmd_set_wideband_idx_1 = "Z\x00\x15\x00\x01" + +cmd_stop_engine = "Z\x00\x79\x00\x00" + +; reboot ECU +cmd_reset_controller = "Z\x00\xbb\x00\x00" +; jump to DFU mode +cmd_dfu = "Z\x00\xba\x00\x00" +; jump to OpenBLT bootloader +cmd_openblt = "Z\x00\xbc\x00\x00" + +; See 'executeTSCommand' in firmware source code + +cmd_set_engine_type_HONDA_OBD1 = "Z\x00\x1e\x00\x42" + +cmd_set_engine_type_microRusEFI_VW_B6 = "Z\x00\x1e\x00\x3e" +cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "Z\x00\x1e\x00\x17" +cmd_set_engine_type_MRE_SECONDARY_CAN = "Z\x00\x1e\x00\x04" + +; cmd_set_engine_type_ = "Z\x00\x1e@@engine_type_e_ +cmd_set_engine_type_MITSUBISHI_3A92 = "Z\x00\x1e\x00\x0c" +cmd_set_engine_type_MITSUBISHI_4G93 = "Z\x00\x1e\x00\x10" +cmd_set_engine_type_TOYOTA_1NZ_FE = "Z\x00\x1e\x00\x0d" + +cmd_set_engine_type_MRE_M111 = "Z\x00\x1e\x00\x44" + +cmd_set_engine_type_MAZDA_MIATA_NA6 = "Z\x00\x1e\x00\x22" +cmd_set_engine_type_MAZDA_MIATA_NA94 = "Z\x00\x1e\x00\x50" + +cmd_set_engine_type_MAZDA_MIATA_NB2_36 = "Z\x00\x1e\x00\x56" + +cmd_set_engine_type_hellen_nissan_121_4 = "Z\x00\x1e\x00\x54" +cmd_set_engine_type_hellen_nissan_121_6 = "Z\x00\x1e\x00\x48" +cmd_set_engine_type_hellen_nissan_121_8 = "Z\x00\x1e\x00\x55" + +cmd_set_engine_type_hellen_121_vag_4 = "Z\x00\x1e\x00\x47" +cmd_set_engine_type_hellen_121_vag_5 = "Z\x00\x1e\x00\x4d" +cmd_set_engine_type_hellen_121_vag_v6 = "Z\x00\x1e\x00\x4e" +cmd_set_engine_type_hellen_121_vag_vr6 = "Z\x00\x1e\x00\x4f" +cmd_set_engine_type_hellen_121_vag_8 = "Z\x00\x1e\x00\x51" + +cmd_set_engine_type_hellen_128_merc_4 = "Z\x00\x1e\x00\x24" +cmd_set_engine_type_hellen_128_merc_6 = "Z\x00\x1e\x00\x58" +cmd_set_engine_type_hellen_128_merc_8 = "Z\x00\x1e\x00\x59" + +cmd_set_engine_type_hellen_coupe_bk1 = "Z\x00\x1e\x00\x52" +cmd_set_engine_type_hellen_coupe_bk2 = "Z\x00\x1e\x00\x5f" + +; MIATA_NA6_MAP = 41 +cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29" + +cmd_set_engine_type_FUEL_BENCH = "Z\x00\x1e\x00\x0f" + + + + + + + +; ETB_BENCH_ENGINE = 58 +cmd_set_engine_type_etb_test = "Z\x00\x1e\x00\x3A" +; ETB_BENCH_ENGINE = 59 +cmd_set_engine_type_8888_test = "Z\x00\x1e\x00\x3B" +cmd_set_engine_type_default = "Z\x00\x1f\x00\x00" + +[UserDefined] +indicatorPanel = fuel_computerIndicatorPanel, 2 + indicator = {injectorHwIssue}, "injectorHwIssue No", "injectorHwIssue Yes" + +dialog = fuel_computerDialog, "fuel_computer" + panel = fuel_computerIndicatorPanel + liveGraph = fuel_computer_1_Graph, "Graph", South + graphLine = totalFuelCorrection + graphLine = running_postCrankingFuelCorrection + graphLine = running_intakeTemperatureCoefficient + graphLine = running_coolantTemperatureCoefficient + liveGraph = fuel_computer_2_Graph, "Graph", South + graphLine = running_timeSinceCrankingInSecs + graphLine = running_baseFuel + graphLine = running_fuel + graphLine = afrTableYAxis + liveGraph = fuel_computer_3_Graph, "Graph", South + graphLine = targetLambda + graphLine = targetAFR + graphLine = stoichiometricRatio + graphLine = sdTcharge_coff + liveGraph = fuel_computer_4_Graph, "Graph", South + graphLine = sdAirMassInOneCylinder + graphLine = normalizedCylinderFilling + graphLine = brokenInjector + graphLine = unused88 + liveGraph = fuel_computer_5_Graph, "Graph", South + graphLine = idealEngineTorque + +indicatorPanel = ignition_stateIndicatorPanel, 2 + indicator = {luaIgnitionSkip}, "luaIgnitionSkip No", "luaIgnitionSkip Yes" + +dialog = ignition_stateDialog, "ignition_state" + panel = ignition_stateIndicatorPanel + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellDurationAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = baseIgnitionAdvance + graphLine = correctedIgnitionAdvance + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = tractionAdvanceDrop + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockLevel + graphLine = m_knockCyl1 + graphLine = m_knockCyl2 + graphLine = m_knockCyl3 + liveGraph = knock_controller_2_Graph, "Graph", South + graphLine = m_knockCyl4 + graphLine = m_knockCyl5 + graphLine = m_knockCyl6 + graphLine = m_knockCyl7 + liveGraph = knock_controller_3_Graph, "Graph", South + graphLine = m_knockCyl8 + graphLine = m_knockCyl9 + graphLine = m_knockCyl10 + graphLine = m_knockCyl11 + liveGraph = knock_controller_4_Graph, "Graph", South + graphLine = m_knockCyl12 + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + liveGraph = knock_controller_5_Graph, "Graph", South + graphLine = m_maximumRetard + + +dialog = tcu_controllerDialog, "tcu_controller" + liveGraph = tcu_controller_1_Graph, "Graph", South + graphLine = tcuCurrentGear + graphLine = tcRatio + graphLine = lastShiftTime + graphLine = tcu_currentRange + +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = m_pressureTarget_kPa + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = nextLobe + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchPreCondition}, "isLaunchPreCondition No", "isLaunchPreCondition Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + graphLine = timingALSSkip + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + indicator = {isPlantValid}, "isPlantValid No", "isPlantValid Yes" + indicator = {isBoostControlled}, "isBoostControlled No", "isBoostControlled Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = acButtonState + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_control0IndicatorPanel, 2 + indicator = {cranking0}, "cranking No", "cranking Yes" + indicator = {notRunning0}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped0}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt0}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc0}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot0}, "hot No", "hot Yes" + indicator = {cold0}, "cold No", "cold Yes" + indicator = {disabledBySpeed0}, "disabledBySpeed No", "disabledBySpeed Yes" + +dialog = fan_control0Dialog, "fan_control0" + panel = fan_control0IndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {startStopPhysicalState}, "startStopPhysicalState No", "startStopPhysicalState Yes" + indicator = {acrActive}, "acrActive No", "acrActive Yes" + indicator = {acrEngineMovedRecently}, "acrEngineMovedRecently No", "acrEngineMovedRecently Yes" + indicator = {heaterControlEnabled}, "heaterControlEnabled No", "heaterControlEnabled Yes" + indicator = {luaDigitalState0}, "luaDigitalState0 No", "luaDigitalState0 Yes" + indicator = {luaDigitalState1}, "luaDigitalState1 No", "luaDigitalState1 Yes" + indicator = {luaDigitalState2}, "luaDigitalState2 No", "luaDigitalState2 Yes" + indicator = {luaDigitalState3}, "luaDigitalState3 No", "luaDigitalState3 Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = baroCorrection + graphLine = hellenBoardId + graphLine = clutchUpState + graphLine = clutchDownState + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = brakePedalState + graphLine = startStopState + graphLine = smartChipState + graphLine = smartChipRestartCounter + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = smartChipAliveCounter + graphLine = startStopStateToggleCounter + graphLine = egtValue1 + graphLine = egtValue2 + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = luaSoftSparkSkip + graphLine = luaHardSparkSkip + graphLine = tractionControlSparkSkip + graphLine = desiredRpmLimit + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = fuelInjectionCounter + graphLine = globalSparkCounter + graphLine = fuelingLoad + graphLine = ignitionLoad + liveGraph = engine_state_8_Graph, "Graph", South + graphLine = veTableYAxis + +indicatorPanel = tps_accel_stateIndicatorPanel, 2 + indicator = {isAboveAccelThreshold}, "isAboveAccelThreshold No", "isAboveAccelThreshold Yes" + indicator = {isBelowDecelThreshold}, "isBelowDecelThreshold No", "isBelowDecelThreshold Yes" + indicator = {isTimeToResetAccumulator}, "isTimeToResetAccumulator No", "isTimeToResetAccumulator Yes" + indicator = {isFractionalEnrichment}, "isFractionalEnrichment No", "isFractionalEnrichment Yes" + indicator = {belowEpsilon}, "belowEpsilon No", "belowEpsilon Yes" + indicator = {tooShort}, "tooShort No", "tooShort Yes" + +dialog = tps_accel_stateDialog, "tps_accel_state" + panel = tps_accel_stateIndicatorPanel + liveGraph = tps_accel_state_1_Graph, "Graph", South + graphLine = tpsFrom + graphLine = tpsTo + graphLine = deltaTps + graphLine = extraFuel + liveGraph = tps_accel_state_2_Graph, "Graph", South + graphLine = valueFromTable + graphLine = fractionalInjFuel + graphLine = accumulatedValue + graphLine = maxExtraPerCycle + liveGraph = tps_accel_state_3_Graph, "Graph", South + graphLine = maxExtraPerPeriod + graphLine = maxInjectedPerPeriod + graphLine = cycleCnt + +indicatorPanel = trigger_centralIndicatorPanel, 2 + indicator = {isDecodingMapCam}, "isDecodingMapCam No", "isDecodingMapCam Yes" + +dialog = trigger_centralDialog, "trigger_central" + panel = trigger_centralIndicatorPanel + liveGraph = trigger_central_1_Graph, "Graph", South + graphLine = hwEventCounters1 + graphLine = hwEventCounters2 + graphLine = hwEventCounters3 + graphLine = hwEventCounters4 + liveGraph = trigger_central_2_Graph, "Graph", South + graphLine = hwEventCounters5 + graphLine = hwEventCounters6 + graphLine = vvtCamCounter + graphLine = mapVvt_MAP_AT_SPECIAL_POINT + liveGraph = trigger_central_3_Graph, "Graph", South + graphLine = mapVvt_MAP_AT_DIFF + graphLine = mapVvt_MAP_AT_CYCLE_COUNT + graphLine = mapVvt_map_peak + graphLine = currentEngineDecodedPhase + liveGraph = trigger_central_4_Graph, "Graph", South + graphLine = triggerToothAngleError + graphLine = triggerIgnoredToothCount + graphLine = mapCamPrevToothAngle + + +dialog = trigger_state0Dialog, "trigger_state0" + liveGraph = trigger_state0_1_Graph, "Graph", South + graphLine = crankSynchronizationCounter0 + graphLine = vvtSyncGapRatio0 + graphLine = vvtToothDurations00 + graphLine = vvtCurrentPosition0 + liveGraph = trigger_state0_2_Graph, "Graph", South + graphLine = vvtToothPosition10 + graphLine = vvtToothPosition20 + graphLine = vvtToothPosition30 + graphLine = vvtToothPosition40 + liveGraph = trigger_state0_3_Graph, "Graph", South + graphLine = triggerSyncGapRatio0 + graphLine = triggerStateIndex0 + graphLine = vvtStateIndex0 + +indicatorPanel = trigger_state_primaryIndicatorPanel, 2 + indicator = {m_hasSynchronizedPhase}, "m_hasSynchronizedPhase No", "m_hasSynchronizedPhase Yes" + +dialog = trigger_state_primaryDialog, "trigger_state_primary" + panel = trigger_state_primaryIndicatorPanel + liveGraph = trigger_state_primary_1_Graph, "Graph", South + graphLine = camResyncCounter + + +dialog = wall_fuel_stateDialog, "wall_fuel_state" + liveGraph = wall_fuel_state_1_Graph, "Graph", South + graphLine = wallFuelCorrection + graphLine = wallFuel + +indicatorPanel = idle_stateIndicatorPanel, 2 + indicator = {mightResetPid}, "mightResetPid No", "mightResetPid Yes" + indicator = {shouldResetPid}, "shouldResetPid No", "shouldResetPid Yes" + indicator = {wasResetPid}, "wasResetPid No", "wasResetPid Yes" + indicator = {mustResetPid}, "mustResetPid No", "mustResetPid Yes" + indicator = {isCranking}, "isCranking No", "isCranking Yes" + indicator = {isIacTableForCoasting}, "isIacTableForCoasting No", "isIacTableForCoasting Yes" + indicator = {notIdling}, "notIdling No", "notIdling Yes" + indicator = {needReset}, "needReset No", "needReset Yes" + indicator = {isInDeadZone}, "isInDeadZone No", "isInDeadZone Yes" + indicator = {isBlipping}, "isBlipping No", "isBlipping Yes" + indicator = {useClosedLoop}, "useClosedLoop No", "useClosedLoop Yes" + indicator = {badTps}, "badTps No", "badTps Yes" + indicator = {looksLikeRunning}, "looksLikeRunning No", "looksLikeRunning Yes" + indicator = {looksLikeCoasting}, "looksLikeCoasting No", "looksLikeCoasting Yes" + indicator = {looksLikeCrankToIdle}, "looksLikeCrankToIdle No", "looksLikeCrankToIdle Yes" + indicator = {isIdleCoasting}, "isIdleCoasting No", "isIdleCoasting Yes" + indicator = {isIdleClosedLoop}, "isIdleClosedLoop No", "isIdleClosedLoop Yes" + +dialog = idle_stateDialog, "idle_state" + panel = idle_stateIndicatorPanel + liveGraph = idle_state_1_Graph, "Graph", South + graphLine = idleState + graphLine = currentIdlePosition + graphLine = baseIdlePosition + graphLine = idleClosedLoop + liveGraph = idle_state_2_Graph, "Graph", South + graphLine = iacByTpsTaper + graphLine = throttlePedalUpState + graphLine = idleTarget + graphLine = targetRpmByClt + liveGraph = idle_state_3_Graph, "Graph", South + graphLine = targetRpmAc + graphLine = iacByRpmTaper + graphLine = luaAdd + +indicatorPanel = electronic_throttle0IndicatorPanel, 2 + indicator = {etbRevLimitActive0}, "etbRevLimitActive No", "etbRevLimitActive Yes" + indicator = {jamDetected0}, "jamDetected No", "jamDetected Yes" + +dialog = electronic_throttle0Dialog, "electronic_throttle0" + panel = electronic_throttle0IndicatorPanel + liveGraph = electronic_throttle0_1_Graph, "Graph", South + graphLine = idlePosition0 + graphLine = trim0 + graphLine = luaAdjustment0 + graphLine = m_wastegatePosition0 + liveGraph = electronic_throttle0_2_Graph, "Graph", South + graphLine = etbFeedForward0 + graphLine = etbIntegralError0 + graphLine = etbCurrentTarget0 + graphLine = etbCurrentAdjustedTarget0 + liveGraph = electronic_throttle0_3_Graph, "Graph", South + graphLine = etbDutyRateOfChange0 + graphLine = etbDutyAverage0 + graphLine = etbTpsErrorCounter0 + graphLine = etbPpsErrorCounter0 + liveGraph = electronic_throttle0_4_Graph, "Graph", South + graphLine = etbErrorCode0 + graphLine = tcEtbDrop0 + graphLine = jamTimer0 + + +dialog = wideband_state0Dialog, "wideband_state0" + liveGraph = wideband_state0_1_Graph, "Graph", South + graphLine = faultCode0 + graphLine = heaterDuty0 + graphLine = pumpDuty0 + graphLine = tempC0 + liveGraph = wideband_state0_2_Graph, "Graph", South + graphLine = nernstVoltage0 + graphLine = esr0 + +indicatorPanel = dc_motorsIndicatorPanel, 2 + indicator = {isEnabled0}, "isEnabled0 No", "isEnabled0 Yes" + +dialog = dc_motorsDialog, "dc_motors" + panel = dc_motorsIndicatorPanel + liveGraph = dc_motors_1_Graph, "Graph", South + graphLine = dcOutput0 + graphLine = isEnabled0_int + + +dialog = sent_stateDialog, "sent_state" + liveGraph = sent_state_1_Graph, "Graph", South + graphLine = value0 + graphLine = value1 + graphLine = errorRate + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + +indicatorPanel = lambda_monitorIndicatorPanel, 2 + indicator = {lambdaCurrentlyGood}, "lambdaCurrentlyGood No", "lambdaCurrentlyGood Yes" + indicator = {lambdaMonitorCut}, "lambdaMonitorCut No", "lambdaMonitorCut Yes" + +dialog = lambda_monitorDialog, "lambda_monitor" + panel = lambda_monitorIndicatorPanel + liveGraph = lambda_monitor_1_Graph, "Graph", South + graphLine = lambdaTimeSinceGood + + + + dialog = scriptTable1TblSettings, "", yAxis + field = "Name", scriptTableName1 + panel = scriptTable1Tbl + + dialog = scriptTable2TblSettings, "", yAxis + field = "Name", scriptTableName2 + panel = scriptTable2Tbl + + dialog = scriptTable3TblSettings, "", yAxis + field = "Name", scriptTableName3 + panel = scriptTable3Tbl + + dialog = scriptTable4TblSettings, "", yAxis + field = "Name", scriptTableName4 + panel = scriptTable4Tbl + + dialog = scriptCurve1Settings, "", yAxis + field = "Name", scriptCurveName1 + panel = scriptCurve1 + + dialog = scriptCurve2Settings, "", yAxis + field = "Name", scriptCurveName2 + panel = scriptCurve2 + + dialog = scriptCurve3Settings, "", yAxis + field = "Name", scriptCurveName3 + panel = scriptCurve3 + + dialog = scriptCurve4Settings, "", yAxis + field = "Name", scriptCurveName4 + panel = scriptCurve4 + + dialog = scriptCurve5Settings, "", yAxis + field = "Name", scriptCurveName5 + panel = scriptCurve5 + + dialog = scriptCurve6Settings, "", yAxis + field = "Name", scriptCurveName6 + panel = scriptCurve6 + + dialog = tChargeRpmTpsSettings, "RPM+TPS mode" + field = "We use these coefficients to approximate air/fuel charge" + field = "temperature based on CLT and IAT, depending on RPM and TPM" + field = "Low RPM/Low TPS", tChargeMinRpmMinTps + field = "Low RPM/High TPS", tChargeMinRpmMaxTps + field = "High RPM/Low TPS", tChargeMaxRpmMinTps + field = "High RPM/High TPS", tChargeMaxRpmMaxTps + + dialog = tChargeGeneralSettings, "" + field = "Mode", tChargeMode + field = "#These two parameters limit the estimate's rate of change" + field = "Increase rate limit", tChargeAirIncrLimit + field = "Decrease rate limit", tChargeAirDecrLimit + field = "" + + dialog = tChargeAirInterpSettings, "Airflow interpolation mode" + field = "Low flow coefficient", tChargeAirCoefMin + field = "High flow coefficient", tChargeAirCoefMax + field = "Max air flow", tChargeAirFlowMax + + dialog = tChargeSettings, "Charge temperature estimation" + panel = tChargeGeneralSettings + panel = tChargeRpmTpsSettings, { tChargeMode == 0} + panel = tChargeAirInterpSettings, { tChargeMode == 1} + panel = tchargeCurve, { tChargeMode == 2 } + + dialog = baseInjection, "Injection" + field = "Enabled", isInjectionEnabled + field = "Mode", injectionMode, {isInjectionEnabled == 1} + field = "#Batch injection with individual wiring" + field = "Alpha-N uses IAT density correction", alphaNUseIat, { fuelAlgorithm == 2 } + field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } + field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } + field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled } + + dialog = ignitionOutputs, "Ignition Outputs" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Ignition Output Mode", ignitionPinMode, {isIgnitionEnabled == 1} + field = "Ignition Output 1", ignitionPins1, {isIgnitionEnabled == 1} + ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says + ; this section is auto-generated by FiringOrderTSLogic.java + field = "Ignition Output 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 29)))} + field = "Ignition Output 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 27) || (firingOrder == 28)))} + field = "Ignition Output 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 26) || (firingOrder == 27) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 23) || (firingOrder == 26) || (firingOrder == 30) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 29) || (firingOrder == 30)))} + field = "Ignition Output 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 22) || (firingOrder == 28)))} + field = "Ignition Output 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19) || (firingOrder == 26) || (firingOrder == 28) || (firingOrder == 32)))} + field = "Ignition Output 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))} + field = "Ignition Output 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))} + field = "Ignition Output 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))} + field = "Ignition Output 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18) || (firingOrder == 22)))} + + + dialog = ignitionBasic, "" + field = "Enabled", isIgnitionEnabled + field = "Mode", ignitionMode, {isIgnitionEnabled} + field = "Maximum timing advance", maximumIgnitionTiming, {isIgnitionEnabled} + field = "Minimum timing advance", minimumIgnitionTiming, {isIgnitionEnabled} + field = "Individually wired Wasted Spark", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2 } + field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} + field = "#Use fixed timing while validating with a timing gun" + field = "Timing Mode", timingMode, {isIgnitionEnabled} + field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} + + dialog = ignitionSettings, "", xAxis + panel = ignitionBasic + panel = ignitionOutputs, { uiMode == 0 || uiMode == 1 } + + dialog = baseEngineConfig, "Engine Configuration" + field = "Number of cylinders", cylindersCount + field = "Displacement", displacement + field = "Firing order", firingOrder + field = "Vehicle weight", vehicleWeight + + dialog = engineMetadata, "Engine Metadata" + field = "#These metadata are used by rusEFI Online" + field = "Engine Make", engineMake + field = "Manufacturer Engine Code", engineCode + field = "Vehicle Name", vehicleName + field = "Compression Ratio", compressionRatio + field = "Forced Induction?", isForcedInduction + + dialog = trigger_primary, "Primary Trigger" + topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "What kind of engine", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Primary Edge", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Secondary Edge", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "2JZ Position", camDecoder2jzPosition, 1, {vvtMode1 == 2} + field = "2JZ Precision", camDecoder2jzPrecision, 1, {vvtMode1 == 2} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" + field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } + field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } + field = "Cam Edge Select", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" + field = "Override well known trigger gaps", overrideTriggerGaps + field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "First gap to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Override well known VVT gaps", overrideVvtTriggerGaps + field = gapVvtTrackingLengthOverride, gapVvtTrackingLengthOverride, { overrideVvtTriggerGaps == 1 } + field = "First VVT gap from", triggerVVTGapOverrideFrom1 + field = "First VVT gap to", triggerVVTGapOverrideTo1 + field = "Second VVT gap from", triggerVVTGapOverrideFrom2 + field = "Second VVT gap to", triggerVVTGapOverrideTo2 + field = "VVT gap #3 from", triggerVVTGapOverrideFrom3 + field = "VVT gap #3 to", triggerVVTGapOverrideTo3 + field = "VVT gap #4 from", triggerVVTGapOverrideFrom4 + field = "VVT gap #4 to", triggerVVTGapOverrideTo4 + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } + +; Engine->Injection Settings + dialog = injChars, "Injector Settings", yAxis + field = "Injector flow", injector_flow, {isInjectionEnabled == 1} + field = "Injector flow units", injectorFlowAsMassFlow, {isInjectionEnabled == 1} + field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } + field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } + field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } + + dialog = fuelParams, "Fuel characteristics", yAxis + field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} + field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } + + dialog = injectorOutputSettings, "Injector Outputs", yAxis + field = "Use only first half of outputs for batch mode" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Injection Output 1", injectionPins1, {isInjectionEnabled == 1} + field = "Injection Output 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Injection Output 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Injection Output 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Injection Output 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Injection Output 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Injection Output 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Injection Output 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Injection Output 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Injection Output 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Injection Output 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Injection Output 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = cylinderBankSelect, "Cylinder Banks", yAxis + field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} + field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinearFord, "Ford-model Small Pulse Correction", yAxis + field = "Small pulse slope (ALOSL)", fordInjectorSmallPulseSlope + field = "Set this to 'mass flow'", injectorFlowAsMassFlow + field = "Large pulse slope (AHISL)", injector_flow + field = "Small pulse breakpoint (FUEL_BKPT)", fordInjectorSmallPulseBreakPoint + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode == 1 } + panel = injectorNonlinearFord, {1}, { injectorNonlinearMode == 2 } + + dialog = testLuaOut, "Lua Out Test" + commandButton = "Lua Out #1", cmd_test_lua1 + commandButton = "Lua Out #2", cmd_test_lua2 + commandButton = "Lua Out #3", cmd_test_lua3 + commandButton = "Lua Out #4", cmd_test_lua4 + commandButton = "Lua Out #5", cmd_test_lua5 + commandButton = "Lua Out #6", cmd_test_lua6 + commandButton = "Lua Out #7", cmd_test_lua7 + commandButton = "Lua Out #8", cmd_test_lua8 + commandButton = "Abort test", cmd_test_cancel + + dialog = testInjectors, "Injector Test" + commandButton = "Injector #1", cmd_test_inj1 + commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } + commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } + commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } + commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } + commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } + commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } + commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } + commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } + commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } + commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } + commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testSolenoids, "TCU Solenoid Test" + commandButton = "Solenoid #1", cmd_test_sol1 + commandButton = "Solenoid #2", cmd_test_sol2 + commandButton = "Solenoid #3", cmd_test_sol3 + commandButton = "Solenoid #4", cmd_test_sol4 + commandButton = "Solenoid #5", cmd_test_sol5 + commandButton = "Solenoid #6", cmd_test_sol6 + commandButton = "Abort test", cmd_test_cancel + + dialog = testOther + field = "Count", benchTestCount + field = "On Time", benchTestOnTime + field = "Off Time", benchTestOffTime + panel = testSolenoids + + dialog = injectionSettingsEast, "", yAxis + panel = testInjectors + field = "" + + dialog = injectionSettingsWest, "", yAxis + panel = injectorOutputSettings + field = "" + + dialog = injectionSettings, "", xAxis + panel = injectionSettingsWest + panel = injectionSettingsEast + + dialog = injectorConfig, "", yAxis + topicHelp = "fuelHelp" + panel = baseInjection + panel = injChars + panel = fuelParams + panel = injectorsDeadTime, {isInjectionEnabled} + + dialog = ignitionCylExtra, "Cylinder offsets" + field = "Offset angle for each cylinder if you have an odd fire" + field = "engine, like a v-twin or some V6/V10 engines" + field = "Odd Fire Engine", oddFireEngine + field = "#Positive numbers retard, negative numbers advance" + field = "Offset cyl 1", timing_offset_cylinder1 + field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1} + field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2} + field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3} + field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4} + field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5} + field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6} + field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7} + field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8} + field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9} + field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} + field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} + + dialog = stagedInjectionOutputs, "", yAxis + field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} + field = "Injection Stage 2 Output 2", injectionPinsStage22, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 1} + field = "Injection Stage 2 Output 3", injectionPinsStage23, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 2} + field = "Injection Stage 2 Output 4", injectionPinsStage24, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 3} + field = "Injection Stage 2 Output 5 ", injectionPinsStage25, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 4} + field = "Injection Stage 2 Output 6 ", injectionPinsStage26, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 5} + field = "Injection Stage 2 Output 7 ", injectionPinsStage27, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 6} + field = "Injection Stage 2 Output 8 ", injectionPinsStage28, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 7} + field = "Injection Stage 2 Output 9 ", injectionPinsStage29, {isInjectionEnabled && enableStagedInjection && cylindersCount > 8} + field = "Injection Stage 2 Output 10 ", injectionPinsStage210, {isInjectionEnabled && enableStagedInjection && cylindersCount > 9} + field = "Injection Stage 2 Output 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10} + field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} + + dialog = stagedInjection, "", yAxis + field = "Enable", enableStagedInjection, {isInjectionEnabled} + field = "" + field = "Secondary injector flow", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection} + field = "" + panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection} + + dialog = multisparkDwellParams, "Delay & Dwell" + field = "Spark duration", multisparkSparkDuration, {multisparkEnable} + field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable} + + dialog = multisparkMain, "Configuration" + field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} + field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} + field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} + + dialog = multisparkSettings, "Multispark" + field = "#WARNING! These settings have the potential to overheat ignition components" + field = "#and cause other nasty misbehavior. Use with care, at your own risk!" + field = "#Not recommended for use on distributor or wasted spark ignition systems." + field = "Enable multiple sparks", multisparkEnable + panel = multisparkMain + panel = multisparkDwellParams + + dialog = ignAdder1Cfg, "Ignition adder 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends1_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends1_yAxisOverride, {ignBlends1_blendParameter} + panel = ignAdder1Bias, {ignBlends1_blendParameter} + + dialog = ignAdder2Cfg, "Ignition adder 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends2_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends2_yAxisOverride, {ignBlends2_blendParameter} + panel = ignAdder2Bias, {ignBlends2_blendParameter} + + dialog = ignAdder3Cfg, "Ignition adder 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends3_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends3_yAxisOverride, {ignBlends3_blendParameter} + panel = ignAdder3Bias, {ignBlends3_blendParameter} + + dialog = ignAdder4Cfg, "Ignition adder 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends4_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends4_yAxisOverride, {ignBlends4_blendParameter} + panel = ignAdder4Bias, {ignBlends4_blendParameter} + + dialog = veBlend1Cfg, "VE blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends1_blendParameter + field = "Y axis override (set Zero for no override)", veBlends1_yAxisOverride, {veBlends1_blendParameter} + panel = veBlend1Bias, {veBlends1_blendParameter} + + dialog = veBlend2Cfg, "VE blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends2_blendParameter + field = "Y axis override (set Zero for no override)", veBlends2_yAxisOverride, {veBlends2_blendParameter} + panel = veBlend2Bias, {veBlends2_blendParameter} + + dialog = veBlend3Cfg, "VE blend 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends3_blendParameter + field = "Y axis override (set Zero for no override)", veBlends3_yAxisOverride, {veBlends3_blendParameter} + panel = veBlend3Bias, {veBlends3_blendParameter} + + dialog = veBlend4Cfg, "VE blend 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends4_blendParameter + field = "Y axis override (set Zero for no override)", veBlends4_yAxisOverride, {veBlends4_blendParameter} + panel = veBlend4Bias, {veBlends4_blendParameter} + + indicatorPanel = isBoostControlledPanel, 1 + indicator = {isBoostControlled}, "No Boost Control", "Boost Control Active" + + dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends1_yAxisOverride, {boostOpenLoopBlends1_blendParameter} + panel = boostOpenLoopBlend1Bias, {boostOpenLoopBlends1_blendParameter} + + dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends2_yAxisOverride, {boostOpenLoopBlends2_blendParameter} + panel = boostOpenLoopBlend2Bias, {boostOpenLoopBlends2_blendParameter} + + dialog = boostClosedBlend1Cfg, "Boost closed loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends1_yAxisOverride, {boostClosedLoopBlends1_blendParameter} + panel = boostClosedLoopBlend1Bias, {boostClosedLoopBlends1_blendParameter} + + dialog = boostClosedBlend2Cfg, "Boost closed loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends2_yAxisOverride, {boostClosedLoopBlends2_blendParameter} + panel = boostClosedLoopBlend2Bias, {boostClosedLoopBlends2_blendParameter} + + dialog = dwellSettings, "", yAxis + panel = dwellCorrection + panel = dwellVoltageCorrection + + dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" + field = "Input channel", auxTempSensor1_adcChannel + field = "Pullup resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 0} + + dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" + field = "Input channel", auxTempSensor2_adcChannel + field = "Pullup resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 0} + + dialog = tpsSent1, "SENT TPS" + field = "Input #1", sentInputPins1 + field = "ETB type", sentEtbType, {sentInputPins1 != 0} + field = "Closed value", customSentTpsMin, {sentEtbType == 3 } + field = "Open value", customSentTpsMax, {sentEtbType == 3 } + + dialog = oilTempSensor, "Oil Temp Sensor Settings" + field = "Input channel", oilTempSensor_adcChannel + field = "Pullup resistor", oilTempSensor_bias_resistor, {oilTempSensor_adcChannel != 0} + + field = "Lowest temperature", oilTempSensor_tempC_1, {oilTempSensor_adcChannel != 0} + field = "Resistance @ LT", oilTempSensor_resistance_1, {oilTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", oilTempSensor_tempC_2, {oilTempSensor_adcChannel != 0} + field = "Resistance @ MT", oilTempSensor_resistance_2, {oilTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", oilTempSensor_tempC_3, {oilTempSensor_adcChannel != 0} + field = "Resistance @ HT", oilTempSensor_resistance_3, {oilTempSensor_adcChannel != 0} + + dialog = fuelTempSensor, "Fuel Temp Sensor Settings" + field = "Input channel", fuelTempSensor_adcChannel + field = "Pullup resistor", fuelTempSensor_bias_resistor, {fuelTempSensor_adcChannel != 0} + + field = "Lowest temperature", fuelTempSensor_tempC_1, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ LT", fuelTempSensor_resistance_1, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", fuelTempSensor_tempC_2, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ MT", fuelTempSensor_resistance_2, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", fuelTempSensor_tempC_3, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ HT", fuelTempSensor_resistance_3, {fuelTempSensor_adcChannel != 0} + + dialog = ambientTempSensor, "Ambient Temp Sensor Settings" + field = "!Put this sensor before any turbocharger/supercharger" + field = "!near the air filter." + field = "Input channel", ambientTempSensor_adcChannel + field = "Pullup resistor", ambientTempSensor_bias_resistor, {ambientTempSensor_adcChannel != 0} + + field = "Lowest temperature", ambientTempSensor_tempC_1, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ LT", ambientTempSensor_resistance_1, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", ambientTempSensor_tempC_2, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ MT", ambientTempSensor_resistance_2, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", ambientTempSensor_tempC_3, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ HT", ambientTempSensor_resistance_3, {ambientTempSensor_adcChannel != 0} + + dialog = compressorDischargeTemperature, "Compressor Discharge Temp Settings" + field = "!Put this sensor after the turbocharger/supercharger" + field = "!but before the intercooler." + field = "Input channel", compressorDischargeTemperature_adcChannel + field = "Pullup resistor", compressorDischargeTemperature_bias_resistor, {compressorDischargeTemperature_adcChannel != 0} + + field = "Lowest temperature", compressorDischargeTemperature_tempC_1, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ LT", compressorDischargeTemperature_resistance_1, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Middle temperature", compressorDischargeTemperature_tempC_2, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ MT", compressorDischargeTemperature_resistance_2, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Highest temperature", compressorDischargeTemperature_tempC_3, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ HT", compressorDischargeTemperature_resistance_3, {compressorDischargeTemperature_adcChannel != 0} + + dialog = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + field = "Error Detection Threshold", etbSplit + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = idlePosConfig, "Idle position sensor" + field = "Input", idlePositionChannel + field = "Min (valve closed, low idle)", idlePositionMin + field = "Max (valve open, high idle)", idlePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + panel = idlePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + gauge = rawIdlePositionSensorGauge + gauge = idlePosSensGauge + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = tractionIgnitionSkipDialog, "Traction Ignition Skip" + field = useHardSkipInTraction, useHardSkipInTraction + panel = tractionIgnitionSkipTableTbl + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + field = "MC33816 Driven", mc33816_driven + + field = "Boost voltage", mc33_hvolt + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake Pedal", brakePedalPin + field = "Brake Pedal Mode", brakePedalPinMode + field = "Flex fuel sensor", flexSensorPin + field = flexSensorInverted, flexSensorInverted + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + field = "Throttle inlet pressure sensor", throttleInletPressureChannel + field = "Compressor discharge pressure sensor", compressorDischargePressureChannel + + dialog = fuelLevelDialog, "Fuel Level Sensor" + field = "Input channel", fuelLevelSensor + panel = fuelLevelCurve + +; +; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to +; configure the features. +; + dialog = allPinsSensors, "Sensors" + field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel + field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel + field = "Primary input channel", triggerInputPins1 + field = "Secondary channel", triggerInputPins2 + field = "Cam Sync/VVT input", camInputs1 + field = "CLT ADC input", clt_adcChannel + field = "IAT ADC input", iat_adcChannel + field = "vBatt ADC input", vbattAdcChannel + field = "TPS1 ADC input", tps1_1AdcChannel + field = "TPS2 ADC input", tps2_1AdcChannel + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + field = "AFR ADC input", afr_hwChannel + field = "AFR 2 ADC input", afr_hwChannel2 + field = "Baro ADC input", baroSensor_hwChannel + field = "MAP ADC input", map_sensor_hwChannel + field = "Fuel Level input", fuelLevelSensor + field = "Vehicle Speed input", vehicleSpeedSensorInputPin + field = "Clutch Down input", clutchDownPin + field = "Clutch Up input", clutchUpPin + field = "Brake pedal input", brakePedalPin + field = "A/C Switch", acSwitch + field = "Aux Temperature #1", auxTempSensor1_adcChannel + field = "Aux Temperature #2", auxTempSensor2_adcChannel + field = "Aux Fast Analog", auxFastSensor1_adcChannel + + dialog = allTriggerDebug, "Trigger Debug" + field = "trigger 1 debug", triggerInputDebugPins1 + field = "trigger 2 debug", triggerInputDebugPins2 + field = "cam 1 debug", camInputsDebug1 + field = "cam 2 debug", camInputsDebug2 + field = "cam 3 debug", camInputsDebug3 + field = "cam 4 debug", camInputsDebug4 + + dialog = allPinsMC33, "MC33816" + field = "Chip Select", mc33816_cs + field = rstb, mc33816_rstb + field = flag0, mc33816_flag0 + field = mc33816_driven, mc33816_driven + field = mc33816spiDevice, mc33816spiDevice + field = hpfpValvePin, hpfpValvePin + + dialog = allPins1_1 + field = "trigger stimulator output #1", triggerSimulatorPins1 + field = "trigger stimulator output #2", triggerSimulatorPins2 + field = "tle6240_cs", tle6240_cs + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "Narrowband O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "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 = "SPI4 MOSI", spi4mosiPin, {is_enabled_spi_4 == 1} + field = "SPI4 MISO", spi4misoPin, {is_enabled_spi_4 == 1} + field = "SPI4 SCK", spi4sckPin, {is_enabled_spi_4 == 1} + field = "SPI5 MOSI", spi5mosiPin, {is_enabled_spi_5 == 1} + field = "SPI5 MISO", spi5misoPin, {is_enabled_spi_5 == 1} + field = "SPI5 SCK", spi5sckPin, {is_enabled_spi_5 == 1} + field = "SPI6 MOSI", spi6mosiPin, {is_enabled_spi_6 == 1} + field = "SPI6 MISO", spi6misoPin, {is_enabled_spi_6 == 1} + field = "SPI6 SCK", spi6sckPin, {is_enabled_spi_6 == 1} + field = "hip9011CsPin", hip9011CsPin + field = "Saab CDM knock", cdmInputPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + + dialog = allPins3_1 + panel = allPinsSensors + + dialog = allPins3_2 + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "Aux Valve #1", auxValves1 + field = "Aux Valve #2", auxValves2 + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE 8888 spi", tle8888spiDevice + field = "L9779 Chip Select", l9779_cs + field = "AUX Serial TX", auxSerialTxPin + field = "AUX Serial RX", auxSerialRxPin + field = "Start/Stop Button", startStopButtonPin + field = "Upshift Pin", tcuUpshiftButtonPin + field = "Downshift Pin", tcuDownshiftButtonPin + + dialog = allPins3_1_and_2, "All IO 3/3", xAxis + panel = allPins3_1 + panel = allPins3_2 + + dialog = allPins1_1_and_2, "", xAxis + panel = allPins1_1 + panel = allPins1_2 + + dialog = allPins1, "All IO 1/3", xAxis + panel = allPins1_1_and_2 + panel = allPins1_3 + + dialog = allPins2_1_and_2, "", xAxis + panel = allPins2_1 + panel = allPins2_2 + + dialog = allPins2, "All IO 2/3", xAxis + panel = allPins2_1_and_2 + panel = allPins2_3 + + dialog = clt_thermistor, "CLT sensor" + field = "Input channel", clt_adcChannel + field = "Pullup resistor", clt_bias_resistor, {clt_adcChannel != 0} + + settingSelector = "Common CLT Sensors" + settingOption = "GM CLT", clt_tempC_1=-40,clt_resistance_1=100000,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=130,clt_resistance_3=70,useLinearCltSensor=0 + settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 + settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 + settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 0} + field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 0} + field = "" + field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 0} + field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 0} + field = "" + field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 0} + field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 0} + + dialog = cltGauges + gauge = CLTGauge + gauge = rawCltGauge + + dialog = cltSensor, "CLT Sensor", border + panel = clt_thermistor, West + panel = cltGauges, East + + dialog = iat_thermistor, "IAT sensor" + field = "Input channel", iat_adcChannel + field = "Pullup resistor", iat_bias_resistor, {iat_adcChannel != 0} + + settingSelector = "Common IAT Sensors", {iat_adcChannel != 0} + settingOption = "GM IAT", iat_tempC_1=8.9,iat_resistance_1=7000,iat_tempC_2=30.6,iat_resistance_2=1930,iat_tempC_3=63.3,iat_resistance_3=560,useLinearIatSensor=0 + settingOption = "Miata NA/NB", iat_tempC_1=-20,iat_resistance_1=16150,iat_tempC_2=40,iat_resistance_2=1150,iat_tempC_3=80,iat_resistance_3=330,useLinearIatSensor=0 + settingOption = "Miata MSM IAT2", iat_tempC_1=0,iat_resistance_1=112000,iat_tempC_2=40,iat_resistance_2=17000,iat_tempC_3=60,iat_resistance_3=8000,useLinearIatSensor=0 + settingOption = "Bosch Various", iat_tempC_1=-10,iat_resistance_1=9397,iat_tempC_2=30,iat_resistance_2=1707,iat_tempC_3=70,iat_resistance_3=436,useLinearIatSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 0} + field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 0} + field = "" + field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 0} + field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 0} + field = "" + field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 0} + field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 0} + + dialog = iatGauges + gauge = IATGauge + gauge = rawIatGauge + + dialog = iatSensor, "IAT Sensor", border + panel = iat_thermistor, West + panel = iatGauges, East + + dialog = oilp_settings, "Oil Pressure Sensor" + field = "Oil Pressure input", oilPressure_hwChannel + field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0} + field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0} + field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0} + field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0} + + dialog = oilPressureGauges + gauge = OilPressGauge + gauge = rawOilPressureGauge + + dialog = oilPressureSensor, "", border + panel = oilp_settings, West + panel = oilPressureGauges, East + + dialog = fuelp_settings, "Fuel Pressure Sensor" + field = "Fuel low pressure input", lowPressureFuel_hwChannel + field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0} + field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0} + field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0} + field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0} + field = "sensor type", fuelPressureSensorMode, {lowPressureFuel_hwChannel != 0} + + field = "Fuel high pressure input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "Input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "Input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0} + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0} + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0} + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + dialog = mapCurves, "MAP sampling", yAxis + field = "isMapAveragingEnabled", isMapAveragingEnabled + panel = map_samplingAngleCurve + panel = map_samplingWindowCurve + + dialog = mafSettings, "MAF sensor", yAxis + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + +; Sensors->EGO sensor + dialog = egoSettings_sensor, "EGO sensor" + settingSelector = "EGO Type" + settingOption = "BPSX", afr_v1=0,afr_value1=9,afr_v2=5,afr_value2=19 + settingOption = "Innovate", afr_v1=0,afr_value1=7.35,afr_v2=5,afr_value2=22.39 + settingOption = "14Point7", afr_v1=0,afr_value1=9.996,afr_v2=5,afr_value2=19.992 + settingOption = "PLX", afr_v1=0,afr_value1=10,afr_v2=5,afr_value2=20 + settingOption = "Narrow Band", afr_v1=0.1,afr_value1=15,afr_v2=0.9,afr_value2=14 + settingOption = "AEM", afr_v1=0.5,afr_value1=8.5,afr_v2=4.5,afr_value2=18 + + field = "Type", afr_type +; todo: only use these values for custom! + field = "low voltage", afr_v1 + field = "low value", afr_value1 + field = "high voltage", afr_v2 + field = "high value", afr_value2 + field = "Correction", egoValueShift + + dialog = egoSettings_IO1, "EGO Sensor 1 I/O" + field = "Input channel", afr_hwChannel,{afr_hwChannel != 0 || enableAemXSeries == 0 } + field = "Narrowband Heater output", o2heaterPin, { o2heaterPin != 0 || enableAemXSeries == 0 } + + dialog = egoSettings_IO2, "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 + panel = etbHbridgeHardwareNo2 + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Control", stepperDcIo1_controlPin + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Control", stepperDcIo2_controlPin + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = idleIncrementalPidCic, idleIncrementalPidCic + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C RPM target", acIdleRpmTarget + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Dashpot/Taper Initial IAC Adder", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Override Idle VE table load axis", idleVeOverrideMode, { useSeparateVeForIdle == 1 } + field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper + field = "Use coasting idle table", useIacTableForCoasting + field = "Dashpot coasting-to-idle Hold time", iacByTpsHoldTime + field = "Dashpot coasting-to-idle Decay time", iacByTpsDecayTime + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control is disabled at zero RPM" + +; gating applies both to open loop and closed loop! + panel = idleGating +; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected + panel = idleOpenLoop + panel = idlePidSettings, { idleMode == 0 } + panel = idleExtra + + dialog = idleTimingPidCorrDialog, "", yAxis + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Integral gain", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "Soft entry time", idleTimingSoftEntryTime, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" + +; Engine->Fan Settings + dialog = fan1Settings, "Fan 1" + field = "Output", fanPin, 1, { uiMode == 0 || uiMode == 1 } + field = "Output mode", fanPinMode, { uiMode == 0 || uiMode == 1 } + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Disable above vehicle speed", disableFan1AtSpeed + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Disable above vehicle speed", disableFan2AtSpeed + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C Idle RPM", acIdleRpmTarget + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + commandButton = "Test Fuel Pump", cmd_test_fuel_pump + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + commandButton = "Test Main Relay", cmd_test_main_relay + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + commandButton = "Test Starter Disable", cmd_test_starter_disable_relay + + dialog = startStopDialog, "Starter Control" + field = "Require Foot On Brake To Crank", requireFootOnBrakeToCrank + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + field = "Suppress On Start Up (Ms)", startButtonSuppressOnStartUpMs, {startStopButtonPin != 0} + commandButton = "Test Starter Relay", cmd_test_starter_relay + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + commandButton = "Test Check Engine", cmd_test_check_engine_light + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = speedoSettings, "Speedometer output" + field = "Output", speedometerOutputPin + field = "Pulse per km", speedometerPulsePerKm, { speedometerOutputPin } + + dialog = outputsDialogLeft + panel = mainRelayDialog + panel = fuelPumpDialog + panel = tachSettings + + dialog = outputsDialogRight + panel = startStopDialog + panel = starterRelayDialog + panel = speedoSettings + panel = malfunctionDialog + + dialog = outputsDialog, "Outputs", border + panel = outputsDialogLeft, West + panel = fanSetting, Center + panel = outputsDialogRight, East + + dialog = statusLeds, "Status LEDs" + field = "Trigger error LED", triggerErrorPin + field = "Debug Trigger Sync", debugTriggerSync + + dialog = softwareKnockCfg, "Sense" + field = "Enable", enableSoftwareKnock + field = "Cylinder Bore", cylinderBore + field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} + field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} + field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} + + field = "" + field = "Select the nearest sensor for each cylinder" + field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} + field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} + field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} + field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} + field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} + field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} + field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} + field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} + field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} + field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} + field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} + field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} + + dialog = softwareKnockResponseCfg, "Response" + field = knockRetardAggression, knockRetardAggression + field = knockRetardReapplyRate, knockRetardReapplyRate + + dialog = softwareKnockLeft, "" + panel = softwareKnockCfg + panel = softwareKnockResponseCfg + + dialog = softwareKnock, "Software Knock", border + panel = softwareKnockLeft, West + panel = knockThresholdCurve, Center + +; Engine->hip9011 Settings + dialog = hipFunction, "HIP9011 Settings (knock decoder)" + field = "Enabled", isHip9011Enabled + field = "!ECU reboot needed to apply these settings" + field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} + field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} + field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} + field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} + field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} + field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} + field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} + field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} + field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} + field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} + field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} + panel = knockThresholdCurve + + dialog = spiBuses, "SPI buses settings" + field = "!ECU reboot needed to apply these settings" + field = "SPI1 enable", is_enabled_spi_1 + field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} + field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} + field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} + + field = "SPI2 enable", is_enabled_spi_2 + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} + + field = "SPI3 enable", is_enabled_spi_3 + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} + + field = "SPI4 enable", is_enabled_spi_4 + + field = "SPI5 enable", is_enabled_spi_5 + + field = "SPI6 enable", is_enabled_spi_6 + + dialog = spiDevices, "SPI devices settings" + field = "Use SPI accelerometer", useSpiImu + + dialog = stftPartitioning, "Region Configuration" + field = "Idle region RPM", stft_maxIdleRegionRpm + field = "Overrun region load", stft_maxOverrunLoad + field = "Power region load", stft_minPowerLoad + + dialog = stftPartitionSettingsMain, "Main Region", xAxis + field = "Time const", stft_cellCfgs4_timeConstant + field = "Max add", stft_cellCfgs4_maxAdd + field = "Max remove", stft_cellCfgs4_maxRemove + + dialog = stftPartitionSettingsIdle, "Idle Region", xAxis + field = "Time const", stft_cellCfgs1_timeConstant + field = "Max add", stft_cellCfgs1_maxAdd + field = "Max remove", stft_cellCfgs1_maxRemove + + dialog = stftPartitionSettingsPower, "Power Region", xAxis + field = "Time const", stft_cellCfgs3_timeConstant + field = "Max add", stft_cellCfgs3_maxAdd + field = "Max remove", stft_cellCfgs3_maxRemove + + dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis + field = "Time const", stft_cellCfgs2_timeConstant + field = "Max add", stft_cellCfgs2_maxAdd + field = "Max remove", stft_cellCfgs2_maxRemove + + dialog = fuelClosedLoopDialog, "Closed loop fuel correction" + field = "Enabled", fuelClosedLoopCorrectionEnabled + + field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} + field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} + + panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} + + dialog = lambdaProtectionLeft, "" + field = "Enable lambda protection", lambdaProtectionEnable + field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" + panel = lambdaMaxDeviationTableTbl + + dialog = lambdaProtection, "Lambda Protection", border + panel = lambdaProtectionLeft, West + panel = lambdaProtectionRight, East + + dialog = vvtPidDialog0, "Configuration" + field = "Activation Delay", vvtActivationDelayMs + field = "Do not control below RPM", vvtControlMinRpm + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "PWM frequency", vvtOutputFrequency, {vvtPins1 != 0 || vvtPins2 != 0} + field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 } + field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 } + + dialog = vvtPidDialog1, "Intake PID" + field = "offset", auxPid1_offset, {vvtPins1 != 0} + field = "P factor", auxPid1_pFactor, {vvtPins1 != 0} + field = "I factor", auxPid1_iFactor, {vvtPins1 != 0} + field = "D factor", auxPid1_dFactor, {vvtPins1 != 0} + field = "Min", auxPid1_minValue, {vvtPins1 != 0} + field = "Max", auxPid1_maxValue, {vvtPins1 != 0} + commandButton = "Bench bank 1", cmd_test_vvt0_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt2_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog2, "Exhaust PID" + field = "offset", auxPid2_offset, {vvtPins2 != 0} + field = "P factor", auxPid2_pFactor, {vvtPins2 != 0} + field = "I factor", auxPid2_iFactor, {vvtPins2 != 0} + field = "D factor", auxPid2_dFactor, {vvtPins2 != 0} + field = "Min", auxPid2_minValue, {vvtPins2 != 0} + field = "Max", auxPid2_maxValue, {vvtPins2 != 0} + commandButton = "Bench bank 1", cmd_test_vvt1_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt3_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog, "VVT Configuration & PID", border + panel = vvtPidDialog0, West + panel = vvtPidDialog1, Center + panel = vvtPidDialog2, East + +; Engine->Battery & Alternator + dialog = batteryDialog, "Battery Settings", yAxis + field = "vBatt ADC input", vbattAdcChannel + field = "Battery Input Divider Coefficient", vbattDividerCoeff + dialog = alternator, "Alternator Settings", yAxis + field = "Enabled", isAlternatorControlEnabled + field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} + field = "Control output", alternatorControlPin, {isAlternatorControlEnabled == 1} + field = "Control output mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} + field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1} + field = "A/C duty adder", acRelayAlternatorDutyAdder, {isAlternatorControlEnabled == 1} + field = "#PID control" + field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1} + field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1} + field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1} + field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1} + field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1} + field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1} + field = "#% duty = Pterm + Iterm + Dterm + offset%" + + dialog = energySystems, "Battery and Alternator Settings", yAxis + panel = batteryDialog + panel = alternator + + dialog = speedSensorAnalog, "Speed sensor" + field = "Input", vehicleSpeedSensorInputPin + field = "Filter parameter", vssFilterReciprocal, { vehicleSpeedSensorInputPin != 0 } + +; +; We prefer quantities that users can actually measure or inspect without math, so we have +; two separate natural settings here without one 'sensor tooth to wheel revolution' ratio +; + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Speed sensor gear ratio", vssGearRatio, { vehicleSpeedSensorInputPin != 0 } + field = "Speed sensor tooth count", vssToothCount, { vehicleSpeedSensorInputPin != 0 } + + dialog = speedSensorCan, "CAN Vehicle Speed" + field = "Enable CAN VSS", enableCanVss, { canReadEnabled } + field = "CAN VSS type", canVssNbcType, { enableCanVss } + field = "CAN VSS scaling", canVssScaling, { canReadEnabled } + + dialog = speedSensorLeft, "", yAxis + panel = speedSensorAnalog, { enableCanVss == 0 } + panel = speedSensorCan + + dialog = gearDetection, "Gear Detection" + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Final drive ratio", finalGearRatio + field = "" + field = "Forward gear count", totalGearsCount + field = "" + field = "1st gear", gearRatio1, { totalGearsCount >= 1 } + field = "2nd gear", gearRatio2, { totalGearsCount >= 2 } + field = "3rd gear", gearRatio3, { totalGearsCount >= 3 } + field = "4th gear", gearRatio4, { totalGearsCount >= 4 } + field = "5th gear", gearRatio5, { totalGearsCount >= 5 } + field = "6th gear", gearRatio6, { totalGearsCount >= 6 } + field = "7th gear", gearRatio7, { totalGearsCount >= 7 } + field = "8th gear", gearRatio8, { totalGearsCount >= 8 } + + dialog = speedSensor, "Speed sensor", xAxis + panel = speedSensorLeft + gauge = VSSGauge + panel = gearDetection + +; Engine->Other inputs + dialog = analogInputSettings, "Analog Input Settings" + field = "!ECU reboot needed to apply these settings" + field = "ADC vRef voltage", adcVcc + field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap + + +; 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 = "Enable extended rusEFI CAN broadcast", enableExtendedCanBroadcast + field = "rusEFI CAN data bus", canBroadcastUseChannelTwo + field = "rusEFI CAN data base address", verboseCanBaseAddress + field = "rusEFI CAN data address type", rusefiVerbose29b + field = "rusEFI CAN data period", canSleepPeriodMs + + dialog = canBus2, "Secondary CAN Bus" + + dialog = canBusMain, "CAN Bus Communication", yAxis + panel = canBus + + panel = canHw1 + + 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 = tle8888Dialog, "TLE8888", yAxis + field = "TLE8888 SPI", tle8888spiDevice + field = "TLE8888 Chip Select", tle8888_cs + field = "Trigger Input Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinitialize", cmd_tle8888_init + + dialog = l9779Dialog, "L9779", yAxis + field = "L9779 SPI", l9779spiDevice + field = "L9779 Chip Select", l9779_cs + + dialog = connection, "", yAxis + panel = tsPort + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + field = enableKline, enableKline + + dialog = monitoringSettings, "rusEFI Console Settings" + field = "Sensor Sniffer", sensorChartMode + field = " Threshold", sensorSnifferRpmThreshold + field = "Engine Sniffer Threshold", engineSnifferRpmThreshold + + dialog = 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 = dutyCycleLimiting, "Injector Duty Cycle Limiter" + field = "Instantaneous injector duty cycle limit", maxInjectorDutyInstant, {isInjectionEnabled} + field = "Sustained injector duty cycle limit", maxInjectorDutySustained, {isInjectionEnabled} + field = "Sustained injector duty cycle delay", maxInjectorDutySustainedTimeout, {isInjectionEnabled} + + dialog = limitsSettings, "Limits" + field = "Cut fuel on RPM limit", cutFuelOnHardLimit + field = "Cut spark on RPM limit", cutSparkOnHardLimit + field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit } + field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + field = "RPM limit hysteresis", rpmHardLimitHyst + field = "Boost cut pressure", boostCutPressure + field = "Boost cut pressure hysteresis", boostCutPressureHyst + field = "Minimum oil pressure after start", minOilPressureAfterStart + panel = dutyCycleLimiting + + dialog = softRpmLimitSettings, "Soft RPM Limit" + field = "Window size", rpmSoftLimitWindowSize + field = "Timing retard", rpmSoftLimitTimingRetard, { cutSparkOnHardLimit } + field = "Fuel added", rpmSoftLimitFuelAdded, { cutFuelOnHardLimit } + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = softRpmLimitSettings, West, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + panel = etbLimits + + dialog = limitsAndFallbackCenter, "CLT-based RPM Limit" + panel = cltRevLimitCurve + + dialog = limitsAndFallback, "Limits and fallbacks", border + panel = limitsAndFallbackLeft, West + panel = limitsAndFallbackCenter, Center, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && useCltBasedRpmLimit } + +; Engine->Base Engine Settings + dialog = engineChars, "Base Engine Settings" + topicHelp = "baseHelp" + panel = baseEngineConfig + panel = engineMetadata + panel = 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 = primingFuelPulsePanel, "Priming fuel pulse" + field = "Priming delay", primingDelay + panel = primingPulse + + dialog = crankingAdv, "Advanced" + field = "Enable flood clear", isCylinderCleanupEnabled + field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled + field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking + field = "Use Flex Fuel cranking table", flexCranking + +; Cranking->Cranking Settings + dialog = crankingDialog, "Cranking Settings" + field = "Cranking RPM limit", cranking_rpm + panel = crankingFuel + panel = crankingIgnition + panel = crankingIAC + panel = crankingAdv + + dialog = TpsAccelPanel, "TPS" + field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" + field = "Length", tpsAccelLookback + field = "Accel Threshold", tpsAccelEnrichmentThreshold + field = "Decel Threshold", tpsDecelEnleanmentThreshold +; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier + field = "#Accelerator Pump model:" + field = "Fraction Period", tpsAccelFractionPeriod + field = "Fraction Divisor", tpsAccelFractionDivisor + + dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" + field = "Wall fueling model type", complexWallModel + field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } + field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } + + +; Tuning->AccelEnrichment + dialog = AccelEnrich, "Accel/Decel Enrichment" + panel = TpsAccelPanel + panel = WallWettingAccelPanel + field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs + + + dialog = wwTauCurves, "Wall wetting AE evaporation time" + field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." + panel = wwTauCltCurve + panel = wwTauMapCurve + + dialog = wwBetaCurves, "Wall wetting AE impact fraction" + field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." + panel = wwBetaCltCurve + panel = wwBetaMapCurve + + dialog = auxValvesIO, "Outputs" + field = "aux valve #1", auxValves1 + field = "aux valve #2", auxValves2 + + dialog = scriptSetting, "Setting" + field = "!Use rusEFI console for Lua script editing" + field = "Set number is not associated with the output number." + field = "Set number, only the cell number with some numbers." + field = "Name #1", scriptSettingName1 + field = "Setting #1", scriptSetting1 + field = "Name #2", scriptSettingName2 + field = "Setting #2", scriptSetting2 + field = "Name #3", scriptSettingName3 + field = "Setting #3", scriptSetting3 + field = "Name #4", scriptSettingName4 + field = "Setting #4", scriptSetting4 + field = "Name #5", scriptSettingName5 + field = "Setting #5", scriptSetting5 + field = "Name #6", scriptSettingName6 + field = "Setting #6", scriptSetting6 + + dialog = scriptSettingDialog, "Script Settings", border + panel = scriptSetting, East + + dialog = luaDigitalInputsLeftDialog + field = "Digital #1", luaDigitalInputPins1 + field = "Digital #2", luaDigitalInputPins2 + field = "Digital #3", luaDigitalInputPins3 + field = "Digital #4", luaDigitalInputPins4 + field = "Digital #5", luaDigitalInputPins5 + field = "Digital #6", luaDigitalInputPins6 + field = "Digital #7", luaDigitalInputPins7 + field = "Digital #8", luaDigitalInputPins8 + + dialog = luaDigitalInputsRightDialog + field = "Mode #1", luaDigitalInputPinModes1 + field = "Mode #2", luaDigitalInputPinModes2 + field = "Mode #3", luaDigitalInputPinModes3 + field = "Mode #4", luaDigitalInputPinModes4 + field = "Mode #5", luaDigitalInputPinModes5 + field = "Mode #6", luaDigitalInputPinModes6 + field = "Mode #7", luaDigitalInputPinModes7 + field = "Mode #8", luaDigitalInputPinModes8 + + dialog = luaDigitalInputsDialog, "Lua Digital Aux Inputs", border + panel = luaDigitalInputsLeftDialog, West + panel = luaDigitalInputsRightDialog, East + + dialog = auxInputsDialog, "Lua Analog Inputs" + field = "ADC #1", auxAnalogInputs1 + field = "ADC #2", auxAnalogInputs2 + field = "ADC #3", auxAnalogInputs3 + field = "ADC #4", auxAnalogInputs4 + field = "ADC #5", auxAnalogInputs5 + field = "ADC #6", auxAnalogInputs6 + field = "ADC #7", auxAnalogInputs7 + field = "ADC #8", auxAnalogInputs8 + + dialog = luaOutputs, "Lua Outputs" + field = "!Use rusEFI console for Lua script editing" + field = "#Call startPwm to initialize, then call" + field = "#setPwmDuty and setPwmFreq to vary duty/freq" + field = "#See rusefi.com/s/lua for more info" + field = "output #0", luaOutputPins1 + field = "output #1", luaOutputPins2 + field = "output #2", luaOutputPins3 + field = "output #3", luaOutputPins4 + field = "output #4", luaOutputPins5 + field = "output #5", luaOutputPins6 + field = "output #6", luaOutputPins7 + field = "output #7", luaOutputPins8 + + dialog = transmissionPanel + field = "TCU Enabled" tcuEnabled + field = "Gear Controller" gearControllerMode, { tcuEnabled } + field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } + + dialog = shiftSolenoidPanel, "Shift Solenoids" + field = "Solenoid 1 output" tcu_solenoid1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 1 output Mode" tcu_solenoid_mode1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output" tcu_solenoid2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output Mode" tcu_solenoid_mode2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output" tcu_solenoid3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output Mode" tcu_solenoid_mode3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output" tcu_solenoid4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output Mode" tcu_solenoid_mode4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output" tcu_solenoid5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output Mode" tcu_solenoid_mode5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output" tcu_solenoid6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output Mode" tcu_solenoid_mode6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "3-2 Solenoid output" tcu_32_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid output mode" tcu_32_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid Frequency" tcu_32_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = otherSolenoidPanel, "Other Solenoids" + field = "TCC On/Off Solenoid Pin" tcu_tcc_onoff_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC On/Off Solenoid Pin Mode" tcu_tcc_onoff_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin" tcu_tcc_pwm_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin Mode" tcu_tcc_pwm_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Frequency" tcu_tcc_pwm_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin" tcu_pc_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin Mode" tcu_pc_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Frequency" tcu_pc_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = buttonShiftInputPanel, "Switch/Button Shift" + field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + + dialog = inputSpeedSensorPanel, "Input Speed Sensor" + field = "Input Pin", tcuInputSpeedSensorPin + field = "Filter parameter", issFilterReciprocal, { tcuInputSpeedSensorPin != 0 } + field = "Tooth Count", tcuInputSpeedSensorTeeth + +dialog = rangeMatrixInputPanel, "Range Selector Inputs" + field = "Input 1 Pin", tcu_rangeInput1, { tcuEnabled } + field = "Input 1 Pin Mode", tcu_rangeInputMode1, { tcuEnabled } + field = "Input 2 Pin", tcu_rangeInput2, { tcuEnabled } + field = "Input 2 Pin Mode", tcu_rangeInputMode2, { tcuEnabled } + field = "Input 3 Pin", tcu_rangeInput3, { tcuEnabled } + field = "Input 3 Pin Mode", tcu_rangeInputMode3, { tcuEnabled } + field = "Input 4 Pin", tcu_rangeInput4, { tcuEnabled } + field = "Input 4 Pin Mode", tcu_rangeInputMode4, { tcuEnabled } + +dialog = tcuControls, "Transmission Settings" + panel = transmissionPanel + panel = shiftSolenoidPanel + panel = otherSolenoidPanel + + dialog = gearControls, "Gear Selection Settings" + panel = buttonShiftInputPanel + panel = rangeMatrixInputPanel + + dialog = inputSpeedSensor, "Input Speed Sensor" + panel = inputSpeedSensorPanel + + dialog = tccCurves, "TCC Lock/Unlock Speed" + panel = tccLockCurve + + dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State" + panel = pcPerGearCurve + + dialog = pcPerShiftDialog, "Line Pressure Per Shift" + panel = pcPerShiftCurve + + dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed" + panel = 32Curve + + dialog = rangeMatrixDocumentation, "Cell Values" + field = "0 = this pin must be low to reach this state" + field = "1 = this pin must be high to reach this state" + field = "2 = this pin is ignored for reaching this state" + field = "3 = this state is unreachable" + + dialog = rangeMatrixDialog, "Range Selector Input Matrix", border + panel = rangeMatrix, Center + panel = rangeMatrixDocumentation, South + +;Boost Open Loop + + dialog = boostDialog, "" + field = "Enable", isBoostControlEnabled + field = "Control Mode", boostType, { isBoostControlEnabled } + field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled } + field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } + field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } + field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled } + field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled } + field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled } + field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled } + + dialog = boostOpenLoopDialog, "", border + panel = boostTableTbl, Center + + dialog = boostOpenLoopGearAdderDialog, "", border + panel = boostOpenLoopGearAdderCurve, Center + +;Boost Closed Loop + + dialog = boostPidDialog, "" + topicHelp = "boostPidHelp" + field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 } + field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } + field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } + field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } + field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } + field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } + + dialog = boostTargetDialog, "", card + panel = boostTable2Tbl + + dialog = boostEtbPid, "" + field = "This PID is controlling how DC motor reaches desired position" + field = "" + field = "!This section is for advanced users only!" + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } + field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } + field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } + field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } + field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } + + help = boostPidHelp, "Boost Control PID" + text = "P = % per kPa error" + text = "I = % per kPa-seconds" + text = "D = % per kPa/sec" + text = "" + text = "If the boost error is 5kpa, and your P is set to 2, it will make a correction of 10%." + text = "If the boost error has been 5kPa for 2 second (10 kPa-seconds) and I is set to 0.1, it will make a correction of 1%" + text = "If the boost is changing at 10kPa/s and D is set to 0.5, it will make a correction of 5%." + text = "Those three terms are then added together, and limited by the PID min/max settings." + text = "" + text = "That is then added to the value from the open loop table, and sent to PWM the valve." + + help = veTableDialogHelp, "Volumetric Efficiency" + text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode. VE incorporates pressure ratio as measured by MAP sensor in boost (no VE ever above 105%ish)" + webHelp = "https://rusefi.com/s/fuel" + + help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" + text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." + + help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" + text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" + + help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" + text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." + + help = iatFuelCorrCurveHelp, "IAT Fuel Correction" + text = "Charge temperature estimation coefficient is the more proper way to handle IAT for fuel purposes" + text = "Open question who if anyone needs IAT Fuel Correction when" + + help = fuelHelp, "Fuel Control" + text = "More about fuel control on the web" + webHelp = "https://rusefi.com/s/fuel" + + help = triggerHelp, "Trigger Settings" + text = "More about Trigger Settings on the web" + webHelp = "https://rusefi.com/s/trigger" + + help = etbHelp, "ETB Control" + text = "More about electronic throttle body on the web" + webHelp = "https://rusefi.com/s/etb" + + help = vrThresholdHelp, "VR Sensor Threshold" + text = "This is about rusEFI VR Discrete decoder" + webHelp = "https://rusefi.com/" + + help = tpsTpsHelp, "Acceleration Enrichment" + text = "More about Tps To Tps acceleration on the web" + webHelp = "https://rusefi.com/s/tpstps" + + help = baseHelp, "Base Settings Control" + text = "More about rusefi on the web" + webHelp = "https://rusefi.com/" + + dialog = veTableDialog + topicHelp = "veTableDialogHelp" + panel = veTableTbl, South + + dialog = veTableDialog3D, "VE Table" + topicHelp = "veTableDialogHelp" + panel = veTableMap, South + + dialog = etbPidDialog, "PID settings" + field = "pFactor", etb_pFactor + field = "iFactor", etb_iFactor + field = "dFactor", etb_dFactor + field = "pid min", etb_minValue + field = "pid max", etb_maxValue + field = "iTermMin", etb_iTermMin + field = "iTermMax", etb_iTermMax + + dialog = etbIdleDialog, "ETB Idle" + field = "ETB idle maximum angle", etbIdleThrottleRange + + dialog = etbDialogLeft + field = "https://rusefi.com/s/etb" + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped + field = "Disable ETB Motor", pauseEtbControl + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "PWM Frequency", etbFreq + field = "Minimum ETB position", etbMinimumPosition + field = "Maximum ETB position", etbMaximumPosition + field = "Jam detection integrator max", etbJamIntegratorLimit + field = "Jam detection timeout period", etbJamTimeout + field = "Duty Averaging Length", etbExpAverageLength + field = "Rate of change Averaging Length", etbRocExpAverageLength + ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility + ; criteria for the same panel when used in multiple places + ; todo: report bug to TS? + ; another todo: split panel into two panels so that we can enable/disable h-bridge #1 separately from h-bridge #2 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + commandButton = "Reset ETB", cmd_etb_reset + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = testSpark, "Spark" + commandButton = "Spark #1", cmd_test_spk1 + commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } + commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } + commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } + commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } + commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } + commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } + commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } + commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } + commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } + commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } + commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testMisc, "Misc" + commandButton = "A/C Relay", cmd_test_ac_relay + commandButton = "Idle Air Valve", cmd_test_idle_valve + commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve + commandButton = "Stop Engine", cmd_stop_engine + commandButton = "Write Config", cmd_write_config + commandButton = "Reset ECU", cmd_reset_controller + commandButton = "Reset to DFU", cmd_dfu + commandButton = "Reset to OpenBLT", cmd_openblt + commandButton = "No flash Burn mode", cmd_burn_without_flash + + ; bench test + dialog = ioTest, "Bench Test & Commands", xAxis + panel = testSpark + panel = testInjectors + panel = testOther + panel = testLuaOut + panel = testMisc + + ; Injectors test + dialog = injTest_l, "Output test modes", yAxis + field = "Iterations", benchTestCount + field = "ON time", benchTestOffTime + field = "OFF time", benchTestOnTime + + dialog = injTest_r, "Reference gauges", yAxis + gauge = VBattGauge,North + gauge = testBenchIterGauge,South + + dialog = injTest, "", xAxis + panel = injTest_l + panel = injTest_r + + dialog = widebandConfig, "rusEFI Wideband Config" + field = "!Please connect exactly one wideband controller before pressing these buttons!" + commandButton = "Update Firmware", cmd_wideband_firmare_update + field = "!These buttons will set ALL connected controllers to the specified index." + field = "!Disconnect all controllers you don't want to set!" + commandButton = "Set Index 0", cmd_set_wideband_idx_0 + commandButton = "Set Index 1", cmd_set_wideband_idx_1 + field = "Wideband CAN bus", widebandOnSecondBus + field = "Force O2 sensor heating", forceO2Heating + + dialog = engineTypeDialog, "Popular vehicles" + field = "!These buttons send a command to rusEFI controller to apply preset values" + field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" + + commandButton = "Honda OBD1", cmd_set_engine_type_HONDA_OBD1 + +; commandButton = "Mitsubishi 3A92", cmd_set_engine_type_MITSUBISHI_3A92 +; commandButton = "Mitsubishi 4G93", cmd_set_engine_type_MITSUBISHI_4G93 + + + + commandButton = "Fuel Bench", cmd_set_engine_type_FUEL_BENCH + + + + + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorRpm + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim +; field = "" +; field = "digipot spi", digitalPotentiometerSpiDevice +; field = "digipot CS #0", digitalPotentiometerChipSelect1 +; field = "digipot CS #1", digitalPotentiometerChipSelect2 +; field = "digipot CS #2", digitalPotentiometerChipSelect3 +; field = "digipot CS #3", digitalPotentiometerChipSelect4 + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + panel = IgnSkipTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot2, "Experimental 2" + field = dacOutputPins1, dacOutputPins1 + field = dacOutputPins2, dacOutputPins2 + field = luaCanRxWorkaround, luaCanRxWorkaround + field = "Read RPM matching VSS profile", canInputBCM + field = auxSpeed1Multiplier, auxSpeed1Multiplier + field = useAuxSpeedForSlipRatio, useAuxSpeedForSlipRatio + field = useVssAsSecondWheelSpeed, useVssAsSecondWheelSpeed + field = brakeMeanEffectivePressureDifferential, brakeMeanEffectivePressureDifferential + + dialog = mc33810Dialog, "MC33810 IGN/INJ driver" + field = "SPI settings" + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "Chip configuration" + field = "Maximum dwell (IGN pins mode only)", mc33810maxDwellTimer + field = "Disable auto recovery from OV/UV", mc33810DisableRecoveryMode + field = "Disable ING mode if you have no IGBT/MOSFETs on board and no feedback routed to IC" + field = "GD0 output disable IGN mode", mc33810Gpgd0Mode + field = "GD1 output disable IGN mode", mc33810Gpgd1Mode + field = "GD2 output disable IGN mode", mc33810Gpgd2Mode + field = "GD3 output disable IGN mode", mc33810Gpgd3Mode + commandButton = "Reinitialize", cmd_mc33810_init + + indicatorPanel = acrActiveDiagPanel, 1, { 1 } + indicator = { acrActive }, "ACR off", "ACR on", white, black, green, black + + dialog = harleyAcr, "Harley Automatic Compression Release" + field = "Pin", acrPin + field = "Pin 2", acrPin2 + field = "cutFuelInAcr", cutFuelInAcr + field = "#ACR is disabled after the specified number" + field = "#of revolutions, plus degrees of engine phase" + field = "Disable after revolutions", acrRevolutions + field = "Disable after engine phase", acrDisablePhase + commandButton = "ACR #1", cmd_test_acr_valve + commandButton = "ACR #2", cmd_test_acr2_valve + panel = acrActiveDiagPanel + + dialog = kLineDialog, "K Line" + field = kLineBaudRate, kLineBaudRate + field = verboseKLine, verboseKLine + field = hondaK, hondaK + field = kLineDoHondaSend, kLineDoHondaSend + field = kLinePeriodUs, kLinePeriodUs + + dialog = parkingLot, "Experimental/Broken" +; field = uiMode, uiMode + field = auxiliarySetting1, auxiliarySetting1 + field = can1ListenMode, can1ListenMode + field = can2ListenMode, can2ListenMode + field = rethrowHardFault, rethrowHardFault + field = canGpioType, canGpioType + field = "I understand ECU Locking", yesUnderstandLocking + field = "! Use console for unlocking" + field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } + field = verboseQuad, verboseQuad +; field = useEeprom, useEeprom + field = "#System hacks" + field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases + field = watchOutForLinearTime, watchOutForLinearTime + field = "TS over CAN debug", verboseIsoTp + field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex + field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning + field = "Warning Message", warning_message + field = "Ford/Toyota redundant TPS mode", useFordRedundantTps + field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps} + field = "Ford/Toyota redundant PPS mode", useFordRedundantPps + field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps} + + field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} + field = "BRZ/FRS/GT86 pedal", allowIdenticalPps + field = "Artificial Misfire", artificialTestMisfire + field = "Always use instant RPM", alwaysInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "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 + + 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} + commandButton = "HPFP Valve", cmd_test_hpfp_valve + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + + indicatorPanel = IgnitionDiagPanel, 1, { 1 } + indicator = { ignitorDiagnostic1 > 1 }, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, green, black, red, black + indicator = { ignitorDiagnostic2 > 1 }, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, green, black, red, black + indicator = { ignitorDiagnostic3 > 1 }, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, green, black, red, black + indicator = { ignitorDiagnostic4 > 1 }, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, green, black, red, black + indicator = { ignitorDiagnostic5 > 1 }, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, green, black, red, black + indicator = { ignitorDiagnostic6 > 1 }, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, green, black, red, black + indicator = { ignitorDiagnostic7 > 1 }, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, green, black, red, black + indicator = { ignitorDiagnostic8 > 1 }, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, green, black, red, black + indicator = { ignitorDiagnostic9 > 1 }, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, green, black, red, black + indicator = { ignitorDiagnostic10 > 1 }, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, green, black, red, black + indicator = { ignitorDiagnostic11 > 1 }, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, green, black, red, black + indicator = { ignitorDiagnostic12 > 1 }, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, green, black, red, black + + indicatorPanel = InjectionDiagPanel, 1, { 1 } + indicator = { injectorDiagnostic1 > 1 }, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, green, black, red, black + indicator = { injectorDiagnostic2 > 1 }, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, green, black, red, black + indicator = { injectorDiagnostic3 > 1 }, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, green, black, red, black + indicator = { injectorDiagnostic4 > 1 }, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, green, black, red, black + indicator = { injectorDiagnostic5 > 1 }, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, green, black, red, black + indicator = { injectorDiagnostic6 > 1 }, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, green, black, red, black + indicator = { injectorDiagnostic7 > 1 }, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, green, black, red, black + indicator = { injectorDiagnostic8 > 1 }, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, green, black, red, black + indicator = { injectorDiagnostic9 > 1 }, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, green, black, red, black + indicator = { injectorDiagnostic10 > 1 }, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, green, black, red, black + indicator = { injectorDiagnostic11 > 1 }, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, green, black, red, black + indicator = { injectorDiagnostic12 > 1 }, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, green, black, red, black + + dialog = OutputDiagDialog, "Output diagnostic", xAxis + panel = IgnitionDiagPanel + panel = InjectionDiagPanel + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/rusefi_hellenMiataNB2.ini b/firmware/tunerstudio/generated/rusefi_hellenMiataNB2.ini new file mode 100644 index 0000000000..0d53fc6c17 --- /dev/null +++ b/firmware/tunerstudio/generated/rusefi_hellenMiataNB2.ini @@ -0,0 +1,9213 @@ +; This is a TunerStudio project for the rusEFI.com engine management system +; +; This file has been generated by invoking gen_config.bat. +; The input files are +; rusefi.input the common template +; rusefi_config.txt the project specific file +; +; In TunerStudio some fields have little question mark on the left of the name for additional field tips. +; Those tips are defined in ../integration/rusefi_config.txt +; +; For example +; +; float bias_resistor;Pull-up resistor value on your board;"Ohm" +; here 'bias_resistor' is internal field name and the text between semicolons is what produces the tooltip +; Note that '+' sign is required after first semicolon for tooltop to appear in TunerStudio +; +; +; field = "# blue text" +; field = "! red text" +; field = "normal text" +; +; pok +; + +; this should stop TS from looking for the CAN ID in the 2nd byte location and allow the page reads to work correctly. +enable2ndByteCanID = false + +[SettingGroups] + ; the referenceName will over-ride previous, so if you are creating a + ; settingGroup with a reference name of lambdaSensor, it will replace the + ; setting group defined in the settingGroups.xml of the TunerStudio config + ; folder. If is is an undefined referenceName, it will be added. + ; keyword = referenceName, DisplayName + settingGroup = connectivityProfile, "Protocol Profile" + settingOption = CONN_SLOW, "Slower / Wireless" + settingOption = CONN_FAST, "High Speed / USB" + +[MegaTune] + ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 + signature = "rusEFI master.2024.03.06.hellenMiataNB2.945630656" + +[TunerStudio] + queryCommand = "S" + versionInfo = "V" ; firmware version for title bar. + signature= "rusEFI master.2024.03.06.hellenMiataNB2.945630656" ; signature is expected to be 7 or more characters. + + ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C + useLegacyFTempUnits = false + ignoreMissingBitOptions = true + + ; Optimize comms for fast rusEFI ECUs + noCommReadDelay = true; + defaultRuntimeRecordPerSec = 100; +#if CONN_SLOW +#else + maxUnusedRuntimeRange = 1000; +#endif + + ; Set default IP/port to our IP/port + defaultIpAddress = localhost + defaultIpPort = 29000; + +[Constants] +; new packet serial format with CRC + messageEnvelopeFormat = msEnvelope_1.0 + + endianness = little + nPages = 1 + + pageIdentifier = "\x00\x00" + pageReadCommand = "R%2o%2c" + burnCommand = "B" + pageActivate = "P" + pageValueWrite = "W%2o%v" + pageChunkWrite = "C%2o%2c%v" + crc32CheckCommand = "k%2o%2c" + retrieveConfigError = "e" + +;communication settings + 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 +#define gpio_list="NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" +#define switch_input_pin_e_list="NONE","INVALID","5N - TPS2","INVALID","INVALID","5P - PPS1","INVALID","INVALID","INVALID","4J - VTCS/AUX4 (A20)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4F - AC_PRES/AUX1 (A23)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","5A - Pressure Input","INVALID","INVALID","INVALID","5M - PPS2 OR TEMPERATURE SENSOR","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","4I - Clutch rev E/F","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","5D - SENSOR INPUT","INVALID","INVALID","4I - Clutch rev D","4B - Brake/RES1 (A7)" +#define output_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3P - O2H2 (O7)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","ETB EN","ETB +","ETB -","5E - SOLENOID OUTPUT","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2C - AC Fan / INJ_5","2J - INJ_4","2G - INJ_3","2B - ECF (PWM8)","3O - TACH (PWM7)","2Q - IDLE (PWM5)","3M - ALTERN (PWM6)","INVALID","INVALID","3Z - IGN_5 / GNDA","3N - IGN_4","2O - IGN_3","3I - IGN_2 (2&3)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","2N - VTSC / INJ_6","3C - Purge Solenoid / INJ_7","3D - EGR Solenoid / INJ_8","INVALID","INVALID","INVALID","2M - FPUMP (O9)","3E - CANIST (O10)","2R - CE (O11)","INVALID","INVALID","2A - INJ_1","2D - INJ_2","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3U - AWARN (O2)","3J - O2H (O3)","2K - AC (O4)","4R - VVT (O5)","INVALID","3H - MAIN (O1)","INVALID","INVALID","4K - IGN_6 / +5V_MAP","3L - IGN_7 / AFR","4U - MAP2/Ign8 (A10)","3F - IGN_1 (1&4)" +#define brain_input_pin_e_list="NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3V - CAM (A19)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3Y - CRANK (A24)","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","5I - Digital Input","INVALID","4H - Neutral","5C - Digital Input","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","3T - VSS (D5)" +#define adc_channel_e_list="NONE","5N - TPS2","3L - IGN_7 / AFR","intMAP (A15)","5P - PPS1","4V - TPS (A17)","4S/4T - Alternator voltage","3V - CAM (A19)","4J - VTCS/AUX4 (A20)","4F - AC_PRES/AUX1 (A23)","3Y - CRANK (A24)","4X - MAF (A9)","4U - MAP2/Ign8 (A10)","4P - CLT (A11)","4N - IAT (A14)","5M - PPS2 OR TEMPERATURE SENSOR","4AE - EGR/MAP4 (A22)" + +; CONFIG_DEFINITION_START +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:35 UTC 2024 + +pageSize = 22236 +page = 1 +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 +sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 +launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 +rpmHardLimit = scalar, U16, 8, "rpm", 1, 0, 0, 20000, 0 +engineSnifferRpmThreshold = scalar, U16, 10, "RPM", 1, 0, 0, 30000, 0 +multisparkMaxRpm = scalar, U08, 12, "rpm", 50.0, 0, 0, 3000, 0 +maxAcRpm = scalar, U08, 13, "rpm", 50.0, 0, 0, 10000, 0 +maxAcTps = scalar, U08, 14, "%", 1, 0, 0, 100, 0 +maxAcClt = scalar, U08, 15, "deg C", 1, 0, 0, 150, 0 +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 +injectorSecondary_flow = scalar, F32, 120, "cm3/min", 1, 0, 0, 99999, 2 +injectorSecondary_battLagCorrBins = array, F32, 124, [8], "volts", 1, 0, 0, 20, 2 +injectorSecondary_battLagCorr = array, F32, 156, [8], "ms", 1, 0, 0, 50, 2 +isForcedInduction = bits, U32, 188, [0:0], "false", "true" +useFordRedundantTps = bits, U32, 188, [1:1], "false", "true" +enableKline = bits, U32, 188, [2:2], "false", "true" +overrideTriggerGaps = bits, U32, 188, [3:3], "false", "true" +enableFan1WithAc = bits, U32, 188, [4:4], "false", "true" +enableFan2WithAc = bits, U32, 188, [5:5], "false", "true" +disableFan1WhenStopped = bits, U32, 188, [6:6], "false", "true" +disableFan2WhenStopped = bits, U32, 188, [7:7], "false", "true" +enableTrailingSparks = bits, U32, 188, [8:8], "false", "true" +etb_use_two_wires = bits, U32, 188, [9:9], "false", "true" +isDoubleSolenoidIdle = bits, U32, 188, [10:10], "false", "true" +useEeprom = bits, U32, 188, [11:11], "false", "true" +useCicPidForIdle = bits, U32, 188, [12:12], "false", "true" +useTLE8888_cranking_hack = bits, U32, 188, [13:13], "false", "true" +kickStartCranking = bits, U32, 188, [14:14], "false", "true" +useSeparateIdleTablesForCrankingTaper = bits, U32, 188, [15:15], "false", "true" +launchControlEnabled = bits, U32, 188, [16:16], "false", "true" +doNotFilterTriggerEdgeNoise = bits, U32, 188, [17:17], "with filter", "without filter" +antiLagEnabled = bits, U32, 188, [18:18], "false", "true" +useRunningMathForCranking = bits, U32, 188, [19:19], "Fixed", "Fuel Map" +displayLogicLevelsInEngineSniffer = bits, U32, 188, [20:20], "false", "true" +useTLE8888_stepper = bits, U32, 188, [21:21], "false", "true" +usescriptTableForCanSniffingFiltering = bits, U32, 188, [22:22], "false", "true" +verboseCan = bits, U32, 188, [23:23], "Do not print", "Print all" +artificialTestMisfire = bits, U32, 188, [24:24], "No thank you", "Danger Mode" +useFordRedundantPps = bits, U32, 188, [25:25], "false", "true" +cltSensorPulldown = bits, U32, 188, [26:26], "false", "true" +iatSensorPulldown = bits, U32, 188, [27:27], "false", "true" +allowIdenticalPps = bits, U32, 188, [28:28], "false", "true" +overrideVvtTriggerGaps = bits, U32, 188, [29:29], "false", "true" +useSpiImu = bits, U32, 188, [30:30], "false", "true" +enableStagedInjection = bits, U32, 188, [31:31], "false", "true" +tpsMin = scalar, S16, 192, "ADC", 1, 0, 0, 1023, 0 +tpsMax = scalar, S16, 194, "ADC", 1, 0, 0, 1023, 0 +tpsErrorDetectionTooLow = scalar, S16, 196, "%", 1, 0, -10, 0, 0 +tpsErrorDetectionTooHigh = scalar, S16, 198, "%", 1, 0, 100, 110, 0 +cranking_baseFuel = scalar, F32, 200, "mg", 1, 0, 0, 500, 1 +cranking_rpm = scalar, S16, 204, "RPM", 1, 0, 0, 12000, 0 +ignitionDwellForCrankingMs = scalar, F32, 208, "ms", 1, 0, 0, 200, 1 +etbRevLimitStart = scalar, U16, 212, "rpm", 1, 0, 0, 15000, 0 +etbRevLimitRange = scalar, U16, 214, "rpm", 1, 0, 0, 2000, 0 +map_samplingAngleBins = array, F32, 216, [8], "", 1, 0, 0, 18000, 2 +map_samplingAngle = array, F32, 248, [8], "deg", 1, 0, -720, 720, 2 +map_samplingWindowBins = array, F32, 280, [8], "", 1, 0, 0, 18000, 2 +map_samplingWindow = array, F32, 312, [8], "deg", 1, 0, -720, 720, 2 +map_sensor_lowValue = scalar, F32, 344, "kpa", 1, 0, -400, 800, 2 +map_sensor_highValue = scalar, F32, 348, "kpa", 1, 0, -400, 800, 2 +map_sensor_type = bits, U08, 352, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +map_sensor_hwChannel = bits, U08, 353, [0:5], $adc_channel_e_list +clt_tempC_1 = scalar, F32, 356, "*C", 1, 0, -55, 200, 1 +clt_tempC_2 = scalar, F32, 360, "*C", 1, 0, -55, 200, 1 +clt_tempC_3 = scalar, F32, 364, "*C", 1, 0, -55, 200, 1 +clt_resistance_1 = scalar, F32, 368, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_2 = scalar, F32, 372, "Ohm", 1, 0, 0, 1000000, 1 +clt_resistance_3 = scalar, F32, 376, "Ohm", 1, 0, 0, 1000000, 1 +clt_bias_resistor = scalar, F32, 380, "Ohm", 1, 0, 0, 200000, 1 +clt_adcChannel = bits, U08, 384, [0:5], $adc_channel_e_list +iat_tempC_1 = scalar, F32, 388, "*C", 1, 0, -55, 200, 1 +iat_tempC_2 = scalar, F32, 392, "*C", 1, 0, -55, 200, 1 +iat_tempC_3 = scalar, F32, 396, "*C", 1, 0, -55, 200, 1 +iat_resistance_1 = scalar, F32, 400, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_2 = scalar, F32, 404, "Ohm", 1, 0, 0, 1000000, 1 +iat_resistance_3 = scalar, F32, 408, "Ohm", 1, 0, 0, 1000000, 1 +iat_bias_resistor = scalar, F32, 412, "Ohm", 1, 0, 0, 200000, 1 +iat_adcChannel = bits, U08, 416, [0:5], $adc_channel_e_list +launchTimingRetard = scalar, S32, 420, "deg", 1, 0, -180, 180, 2 +hip9011PrescalerAndSDO = scalar, S32, 424, "integer", 1, 0, 0, 32, 0 +knockBandCustom = scalar, F32, 428, "kHz", 1, 0, 0, 20, 2 +displacement = scalar, U16, 432, "L", 0.001, 0, 0, 65, 3 +triggerSimulatorRpm = scalar, U16, 434, "RPM", 1, 0, 0, 30000, 0 +cylindersCount = scalar, U32, 436, "", 1, 0, 1, 12, 0 +firingOrder = bits, U08, 440, [0:6], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2", "1-4-3-6-2-5", "1-8-7-3-6-5-4-2", "1-6-2-4-3-5", "1-6-5-4-3-2", "1-4-5-2-3-6", "1-5-4-8-3-7-2-6", "fo33", "fo34", "fo35", "fo36", "fo37", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +communityCommsLedPid = bits, U16, 442, [0:7], $gpio_list +cylinderBore = scalar, F32, 444, "mm", 1, 0, 0, 20000, 2 +fuelAlgorithm = bits, U08, 448, [0:2], "Speed Density", "MAF Air Charge", "Alpha-N", "Lua", "INVALID", "INVALID", "INVALID", "INVALID" +ALSMaxTPS = scalar, U08, 449, "%", 1, 0, 0, 10, 0 +crankingInjectionMode = bits, U08, 450, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +injectionMode = bits, U08, 451, [0:1], "Simultaneous", "Sequential", "Batch", "Single Point" +boostControlMinRpm = scalar, U16, 452, "", 1, 0, 0, 25000, 0 +boostControlMinTps = scalar, U08, 454, "", 1, 0, 0, 100, 0 +boostControlMinMap = scalar, U08, 455, "", 1, 0, 0, 250, 0 +crankingTimingAngle = scalar, F32, 456, "deg", 1, 0, -30, 30, 0 +ignitionMode = bits, U08, 460, [0:1], "Single Coil", "Individual Coils", "Wasted Spark", "Two Distributors" +gapTrackingLengthOverride = scalar, S08, 461, "count", 1, 0, 1, 18, 0 +maxIdleVss = scalar, U08, 462, "kph", 1, 0, 0, 100, 0 +minOilPressureAfterStart = scalar, U16, 464, "kPa", 1, 0, 0, 1000, 0 +timingMode = bits, U08, 466, [0:0], "dynamic", "fixed" +fixedModeTiming = scalar, F32, 468, "RPM", 1, 0, 0, 3000, 0 +globalTriggerAngleOffset = scalar, F32, 472, "deg btdc", 1, 0, -720, 720, 0 +analogInputDividerCoefficient = scalar, F32, 476, "coef", 1, 0, 0.01, 10, 2 +vbattDividerCoeff = scalar, F32, 480, "coef", 1, 0, 0.01, 99, 2 +fanOnTemperature = scalar, F32, 484, "deg C", 1, 0, 0, 150, 0 +fanOffTemperature = scalar, F32, 488, "deg C", 1, 0, 0, 150, 0 +acrPin = bits, U16, 492, [0:8], $output_pin_e_list +driveWheelRevPerKm = scalar, F32, 496, "revs/km", 1, 0, 100, 1000, 1 +canNbcType = bits, U08, 500, [0:4], "None", "FIAT", "VAG", "MAZDA RX8", "BMW E46", "W202", "BMW E90", "Haltech", "VAG MQB", "Nissan VQ35", "Genesis Coupe", "Honda K", "AiM", "MS Simplified Broadcast", "type 14", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +canSleepPeriodMs = scalar, S32, 504, "ms", 1, 0, 0, 1000, 2 +camDecoder2jzPrecision = scalar, U08, 508, "", 1, 0, 0, 100, 0 +justATempTest = scalar, U08, 509, "", 1, 0, 0, 100, 0 +unusedHere333 = scalar, U08, 510, "", 1, 0, 0, 100, 0 +unusedHere334 = scalar, U08, 511, "", 1, 0, 0, 100, 0 +byFirmwareVersion = scalar, S32, 512, "index", 1, 0, 0, 300, 0 +tps1_1AdcChannel = bits, U08, 516, [0:5], $adc_channel_e_list +vbattAdcChannel = bits, U08, 517, [0:5], $adc_channel_e_list +fuelLevelSensor = bits, U08, 518, [0:5], $adc_channel_e_list +tps2_1AdcChannel = bits, U08, 519, [0:5], $adc_channel_e_list +idle_derivativeFilterLoss = scalar, F32, 520, "x", 1, 0, -1000000, 1000000, 4 +trailingSparkAngle = scalar, S32, 524, "angle", 1, 0, 0, 720, 0 +trigger_type = bits, U32, 528, [0:6], "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "INVALID", "GM_7X", "Daihatsu 3 cylinder", "Mazda SOHC 4", "60/2", "36/1", "Mercedes Two Segment", "Single Tooth", "EZ30", "INVALID", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Half Moon", "Dodge Ram 1+16", "60/2 VW", "Benelli Tre", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM 24x 5 degree", "Honda CBR 600 Cam", "Mitsubishi 4G92/93/94 Cam 29", "Honda CBR 600 custom", "3/1 skipped", "Dodge Neon 2003 crank", "Miata NB", "Mitsubishi 4G63 Cam 34", "INVALID", "Subaru 7+6", "Jeep 18-2-2-2", "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", "INVALID", "Subaru SVX Crank 1", "Subaru SVX Cam VVT", "Ford PIP", "Suzuki G13B", "Honda K 4+1", "Nissan MR18 Crank", "32/2", "36-2-1", "36-2-1-1", "3/0", "INVALID", "GM 24x 3 degree", "60-2-2 F3R", "Mitsu 4G63 Crank", "x2 30 Deg camshaft BTDC", "INVALID", "Mitsu 6G72 Cam", "6/0", "Daihatsu 4 cylinder", "trg82", "trg83", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +trigger_customTotalToothCount = scalar, S32, 532, "number", 1, 0, 1, 300, 0 +trigger_customSkippedToothCount = scalar, S32, 536, "number", 1, 0, 0, 300, 0 +airByRpmTaper = scalar, F32, 540, "%", 1, 0, 0, 50, 1 +hip9011SpiDevice = bits, U08, 544, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +boostControlSafeDutyCycle = scalar, U08, 545, "%", 1, 0, 0, 100, 0 +mafAdcChannel = bits, U08, 546, [0:5], $adc_channel_e_list +acrRevolutions = scalar, U08, 547, "", 1, 0, 0, 100, 0 +unused4bytesHere = scalar, F32, 548, "", 1, 0, 0, 100, 0 +adcVcc = scalar, F32, 552, "volts", 1, 0, 0, 6, 3 +mapCamDetectionAnglePosition = scalar, F32, 556, "Deg", 1, 0, 0, 360, 0 +camInputs1 = bits, U16, 560, [0:7], $brain_input_pin_e_list +camInputs2 = bits, U16, 562, [0:7], $brain_input_pin_e_list +camInputs3 = bits, U16, 564, [0:7], $brain_input_pin_e_list +camInputs4 = bits, U16, 566, [0:7], $brain_input_pin_e_list +afr_hwChannel = bits, U08, 568, [0:5], $adc_channel_e_list +afr_hwChannel2 = bits, U08, 569, [0:5], $adc_channel_e_list +afr_v1 = scalar, F32, 572, "volts", 1, 0, 0, 10, 2 +afr_value1 = scalar, F32, 576, "AFR", 1, 0, 0, 1000, 2 +afr_v2 = scalar, F32, 580, "volts", 1, 0, 0, 10, 2 +afr_value2 = scalar, F32, 584, "AFR", 1, 0, 0, 1000, 2 +throttlePedalPositionAdcChannel = bits, U08, 588, [0:5], $adc_channel_e_list +etbSplit = scalar, U08, 589, "%", 0.1, 0, 0, 20, 1 +tle6240_cs = bits, U16, 590, [0:7], $gpio_list +tle6240_csPinMode = bits, U08, 592, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33810_csPinMode = bits, U08, 593, [0:1], "default", "default inverted", "open collector", "open collector inverted" +throttlePedalUpPin = bits, U16, 594, [0:7], $switch_input_pin_e_list +baroSensor_lowValue = scalar, F32, 596, "kpa", 1, 0, -400, 800, 2 +baroSensor_highValue = scalar, F32, 600, "kpa", 1, 0, -400, 800, 2 +baroSensor_type = bits, U08, 604, [0:4], "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "GM 3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "GM 2 Bar", "GM 1 Bar", "MPXH6400", "MPXH6300", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +baroSensor_hwChannel = bits, U08, 605, [0:5], $adc_channel_e_list +idle_solenoidFrequency = scalar, S32, 608, "Hz", 1, 0, 0, 3000, 0 +idle_solenoidPin = bits, U16, 612, [0:8], $output_pin_e_list +idle_stepperDirectionPin = bits, U16, 614, [0:7], $gpio_list +idle_stepperStepPin = bits, U16, 616, [0:7], $gpio_list +idle_solenoidPinMode = bits, U08, 618, [0:1], "default", "default inverted", "open collector", "open collector inverted" +manIdlePosition = scalar, F32, 620, "%", 1, 0, 0, 100, 0 +knockRetardAggression = scalar, U08, 624, "%", 0.1, 0, 0, 20, 1 +knockRetardReapplyRate = scalar, U08, 625, "deg/s", 0.1, 0, 0, 10, 1 +engineSyncCam = bits, S08, 626, [0:1], "Intake First Bank", "Exhaust First Bank", "Intake Second Bank", "Exhaust Second Bank" +vssFilterReciprocal = scalar, U08, 627, "", 1, 0, 3, 200 0 +vssGearRatio = scalar, U16, 628, "ratio", 0.001, 0, 0, 60, 3 +vssToothCount = scalar, U08, 630, "count", 1, 0, 1, 100, 0 +idleVeOverrideMode = bits, U08, 631, [0:1], "None", "MAP", "TPS", "INVALID" +l9779_cs = bits, U16, 632, [0:7], $gpio_list +injectionPins1 = bits, U16, 634, [0:8], $output_pin_e_list +injectionPins2 = bits, U16, 636, [0:8], $output_pin_e_list +injectionPins3 = bits, U16, 638, [0:8], $output_pin_e_list +injectionPins4 = bits, U16, 640, [0:8], $output_pin_e_list +injectionPins5 = bits, U16, 642, [0:8], $output_pin_e_list +injectionPins6 = bits, U16, 644, [0:8], $output_pin_e_list +injectionPins7 = bits, U16, 646, [0:8], $output_pin_e_list +injectionPins8 = bits, U16, 648, [0:8], $output_pin_e_list +injectionPins9 = bits, U16, 650, [0:8], $output_pin_e_list +injectionPins10 = bits, U16, 652, [0:8], $output_pin_e_list +injectionPins11 = bits, U16, 654, [0:8], $output_pin_e_list +injectionPins12 = bits, U16, 656, [0:8], $output_pin_e_list +ignitionPins1 = bits, U16, 658, [0:8], $output_pin_e_list +ignitionPins2 = bits, U16, 660, [0:8], $output_pin_e_list +ignitionPins3 = bits, U16, 662, [0:8], $output_pin_e_list +ignitionPins4 = bits, U16, 664, [0:8], $output_pin_e_list +ignitionPins5 = bits, U16, 666, [0:8], $output_pin_e_list +ignitionPins6 = bits, U16, 668, [0:8], $output_pin_e_list +ignitionPins7 = bits, U16, 670, [0:8], $output_pin_e_list +ignitionPins8 = bits, U16, 672, [0:8], $output_pin_e_list +ignitionPins9 = bits, U16, 674, [0:8], $output_pin_e_list +ignitionPins10 = bits, U16, 676, [0:8], $output_pin_e_list +ignitionPins11 = bits, U16, 678, [0:8], $output_pin_e_list +ignitionPins12 = bits, U16, 680, [0:8], $output_pin_e_list +injectionPinMode = bits, U08, 682, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ignitionPinMode = bits, U08, 683, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelPumpPin = bits, U16, 684, [0:8], $output_pin_e_list +fuelPumpPinMode = bits, U08, 686, [0:1], "default", "default inverted", "open collector", "open collector inverted" +gapVvtTrackingLengthOverride = scalar, S08, 687, "count", 1, 0, 1, 4, 0 +malfunctionIndicatorPin = bits, U16, 688, [0:8], $output_pin_e_list +malfunctionIndicatorPinMode = bits, U08, 690, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPinMode = bits, U08, 691, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fanPin = bits, U16, 692, [0:8], $output_pin_e_list +clutchDownPin = bits, U16, 694, [0:7], $switch_input_pin_e_list +alternatorControlPin = bits, U16, 696, [0:8], $output_pin_e_list +alternatorControlPinMode = bits, U08, 698, [0:1], "default", "default inverted", "open collector", "open collector inverted" +clutchDownPinMode = bits, U08, 699, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +digitalPotentiometerChipSelect1 = bits, U16, 700, [0:7], $gpio_list +digitalPotentiometerChipSelect2 = bits, U16, 702, [0:7], $gpio_list +digitalPotentiometerChipSelect3 = bits, U16, 704, [0:7], $gpio_list +digitalPotentiometerChipSelect4 = bits, U16, 706, [0:7], $gpio_list +electronicThrottlePin1Mode = bits, U08, 708, [0:1], "default", "default inverted", "open collector", "open collector inverted" +max31855spiDevice = bits, U08, 709, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +debugTriggerSync = bits, U16, 710, [0:7], $gpio_list +digitalPotentiometerSpiDevice = bits, U08, 712, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33972_cs = bits, U16, 714, [0:7], $gpio_list +mc33972_csPinMode = bits, U08, 716, [0:1], "default", "default inverted", "open collector", "open collector inverted" +auxFastSensor1_adcChannel = bits, U08, 717, [0:5], $adc_channel_e_list +tps1_2AdcChannel = bits, U08, 718, [0:5], $adc_channel_e_list +tps2_2AdcChannel = bits, U08, 719, [0:5], $adc_channel_e_list +throttlePedalPositionSecondAdcChannel = bits, U08, 720, [0:5], $adc_channel_e_list +fuelLevelValues = array, U08, 721, [8], "%", 1, 0, 0, 100, 0 +afr_type = bits, S08, 729, [0:2], "BPSX", "Innovate", "14Point7", "INVALID", "PLX", "Custom", "AEM", "INVALID" +mc33810_cs1 = bits, U16, 730, [0:7], $gpio_list +idle_antiwindupFreq = scalar, F32, 732, "x", 1, 0, -1000000, 1000000, 4 +triggerInputPins1 = bits, U16, 736, [0:7], $brain_input_pin_e_list +triggerInputPins2 = bits, U16, 738, [0:7], $brain_input_pin_e_list +mc33_t_min_boost = scalar, U16, 740, "us", 1, 0, 0, 10000, 0 +hip9011CsPinMode = bits, U08, 742, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tachOutputPin = bits, U16, 744, [0:8], $output_pin_e_list +tachOutputPinMode = bits, U08, 746, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mainRelayPin = bits, U16, 748, [0:8], $output_pin_e_list +sdCardCsPin = bits, U16, 750, [0:7], $gpio_list +canTxPin = bits, U16, 752, [0:7], $gpio_list +canRxPin = bits, U16, 754, [0:7], $gpio_list +throttlePedalUpPinMode = bits, U08, 756, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acIdleExtraOffset = scalar, U08, 757, "%", 1, 0, 0, 100, 0 +finalGearRatio = scalar, U16, 758, "ratio", 0.01, 0, 0, 10, 2 +tcuInputSpeedSensorPin = bits, U16, 760, [0:7], $brain_input_pin_e_list +tcuInputSpeedSensorTeeth = scalar, U08, 762, "", 1, 0, 0, 100, 0 +wastegatePositionMin = scalar, U16, 764, "mv", 1, 0, 0, 5000, 0 +wastegatePositionMax = scalar, U16, 766, "mv", 1, 0, 0, 5000, 0 +idlePositionMin = scalar, U16, 768, "mv", 1, 0, 0, 5000, 0 +idlePositionMax = scalar, U16, 770, "mv", 1, 0, 0, 5000, 0 +tunerStudioSerialSpeed = scalar, U32, 772, "BPs", 1, 0, 0, 1000000, 0 +compressionRatio = scalar, F32, 776, "CR", 1, 0, 0, 300, 1 +triggerSimulatorPins1 = bits, U16, 780, [0:7], $gpio_list +triggerSimulatorPins2 = bits, U16, 782, [0:7], $gpio_list +fordInjectorSmallPulseSlope = scalar, U16, 784, "g/s", 0.001, 0, 0, 65, 3 +triggerSimulatorPinModes1 = bits, U08, 786, [0:1], "default", "default inverted", "open collector", "open collector inverted" +triggerSimulatorPinModes2 = bits, U08, 787, [0:1], "default", "default inverted", "open collector", "open collector inverted" +maf2AdcChannel = bits, U08, 788, [0:5], $adc_channel_e_list +o2heaterPin = bits, U16, 790, [0:8], $output_pin_e_list +o2heaterPinModeTodO = bits, U08, 792, [0:1], "default", "default inverted", "open collector", "open collector inverted" +lambdaProtectionMinRpm = scalar, U08, 793, "RPM", 100.0, 0, 0, 25000, 0 +lambdaProtectionMinLoad = scalar, U08, 794, "%", 10.0, 0, 0, 1000, 0 +is_enabled_spi_1 = bits, U32, 796, [0:0], "false", "true" +is_enabled_spi_2 = bits, U32, 796, [1:1], "false", "true" +is_enabled_spi_3 = bits, U32, 796, [2:2], "false", "true" +isSdCardEnabled = bits, U32, 796, [3:3], "false", "true" +rusefiVerbose29b = bits, U32, 796, [4:4], "11 bit", "29 bit" +rethrowHardFault = bits, U32, 796, [5:5], "false", "true" +isHip9011Enabled = bits, U32, 796, [6:6], "false", "true" +requireFootOnBrakeToCrank = bits, U32, 796, [7:7], "false", "true" +verboseQuad = bits, U32, 796, [8:8], "false", "true" +useStepperIdle = bits, U32, 796, [9:9], "false", "true" +enabledStep1Limiter = bits, U32, 796, [10:10], "false", "true" +useTpicAdvancedMode = bits, U32, 796, [11:11], "false", "true" +lambdaProtectionEnable = bits, U32, 796, [12:12], "false", "true" +verboseTLE8888 = bits, U32, 796, [13:13], "false", "true" +enableVerboseCanTx = bits, U32, 796, [14:14], "false", "true" +etb1configured = bits, U32, 796, [15:15], "false", "true" +etb2configured = bits, U32, 796, [16:16], "false", "true" +measureMapOnlyInOneCylinder = bits, U32, 796, [17:17], "false", "true" +stepperForceParkingEveryRestart = bits, U32, 796, [18:18], "false", "true" +isFasterEngineSpinUpEnabled = bits, U32, 796, [19:19], "false", "true" +coastingFuelCutEnabled = bits, U32, 796, [20:20], "false", "true" +useIacTableForCoasting = bits, U32, 796, [21:21], "false", "true" +useNoiselessTriggerDecoder = bits, U32, 796, [22:22], "false", "true" +useIdleTimingPidControl = bits, U32, 796, [23:23], "false", "true" +disableEtbWhenEngineStopped = bits, U32, 796, [24:24], "false", "true" +is_enabled_spi_4 = bits, U32, 796, [25:25], "false", "true" +pauseEtbControl = bits, U32, 796, [26:26], "false", "true" +alignEngineSnifferAtTDC = bits, U32, 796, [27:27], "false", "true" +verboseKLine = bits, U32, 796, [28:28], "false", "true" +idleIncrementalPidCic = bits, U32, 796, [29:29], "false", "true" +enableAemXSeries = bits, U32, 796, [30:30], "false", "true" +logicAnalyzerPins1 = bits, U16, 800, [0:7], $brain_input_pin_e_list +logicAnalyzerPins2 = bits, U16, 802, [0:7], $brain_input_pin_e_list +logicAnalyzerPins3 = bits, U16, 804, [0:7], $brain_input_pin_e_list +logicAnalyzerPins4 = bits, U16, 806, [0:7], $brain_input_pin_e_list +mainRelayPinMode = bits, U08, 808, [0:1], "default", "default inverted", "open collector", "open collector inverted" +hip9011CsPin = bits, U16, 810, [0:7], $gpio_list +hip9011IntHoldPin = bits, U16, 812, [0:7], $gpio_list +hip9011IntHoldPinMode = bits, U08, 814, [0:1], "default", "default inverted", "open collector", "open collector inverted" +verboseCanBaseAddress = scalar, U32, 816, "", 1, 0, 0, 536870911, 0 +mc33_hvolt = scalar, U08, 820, "v", 1, 0, 40, 70, 0 +minimumBoostClosedLoopMap = scalar, U08, 821, "kPa", 1, 0, 0, 255, 0 +acFanPin = bits, U16, 822, [0:8], $output_pin_e_list +acFanPinMode = bits, U08, 824, [0:1], "default", "default inverted", "open collector", "open collector inverted" +l9779spiDevice = bits, U08, 825, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +dwellVoltageCorrVoltBins = array, U08, 826, [8], "volts", 0.1, 0, 0, 20, 1 +imuType = bits, U08, 834, [0:4], "None", "VAG", "MM5.10", "type 3", "type 4", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +dwellVoltageCorrValues = array, U08, 835, [8], "multiplier", 0.02, 0, 0, 5, 2 +vehicleWeight = scalar, U16, 844, "kg", 1, 0, 0, 10000, 0 +idlePidRpmUpperLimit = scalar, S16, 846, "RPM", 1, 0, 0, 500, 0 +applyNonlinearBelowPulse = scalar, U16, 848, "ms", 0.001, 0, 0, 30, 3 +lps25BaroSensorScl = bits, U16, 850, [0:7], $gpio_list +lps25BaroSensorSda = bits, U16, 852, [0:7], $gpio_list +vehicleSpeedSensorInputPin = bits, U16, 854, [0:7], $brain_input_pin_e_list +clutchUpPin = bits, U16, 856, [0:7], $switch_input_pin_e_list +injectorNonlinearMode = bits, U08, 858, [0:1], "None", "Polynomial", "Ford (dual slope)", "INVALID" +clutchUpPinMode = bits, U08, 859, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +max31855_cs1 = bits, U16, 860, [0:7], $gpio_list +max31855_cs2 = bits, U16, 862, [0:7], $gpio_list +max31855_cs3 = bits, U16, 864, [0:7], $gpio_list +max31855_cs4 = bits, U16, 866, [0:7], $gpio_list +max31855_cs5 = bits, U16, 868, [0:7], $gpio_list +max31855_cs6 = bits, U16, 870, [0:7], $gpio_list +max31855_cs7 = bits, U16, 872, [0:7], $gpio_list +max31855_cs8 = bits, U16, 874, [0:7], $gpio_list +flexSensorPin = bits, U16, 876, [0:7], $brain_input_pin_e_list +test557pin = bits, U16, 878, [0:7], $gpio_list +stepperDirectionPinMode = bits, U08, 880, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33972spiDevice = bits, U08, 881, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioSecondary = scalar, U08, 882, ":1", 0.1, 0, 5, 25, 1 +etbMaximumPosition = scalar, U08, 883, "%", 1, 0, 70, 100, 0 +sdCardLogFrequency = scalar, U16, 884, "hz", 1, 0, 1, 250, 0 +idlePositionChannel = bits, U08, 886, [0:5], $adc_channel_e_list +debugMapAveraging = bits, U16, 888, [0:7], $gpio_list +starterRelayDisablePin = bits, U16, 890, [0:8], $output_pin_e_list +starterRelayDisablePinMode = bits, U08, 892, [0:1], "default", "default inverted", "open collector", "open collector inverted" +secondSolenoidPin = bits, U16, 894, [0:8], $output_pin_e_list +startStopButtonPin = bits, U16, 896, [0:7], $switch_input_pin_e_list +mapMinBufferLength = scalar, S32, 900, "count", 1, 0, 1, 24, 0 +idlePidDeactivationTpsThreshold = scalar, S16, 904, "%", 1, 0, 0, 50, 0 +stepperParkingExtraSteps = scalar, S16, 906, "%", 1, 0, 0, 3000, 0 +tps1SecondaryMin = scalar, U16, 908, "ADC", 1, 0, 0, 1000, 0 +tps1SecondaryMax = scalar, U16, 910, "ADC", 1, 0, 0, 1000, 0 +antiLagRpmTreshold = scalar, S16, 912, "rpm", 1, 0, 0, 20000, 0 +startCrankingDuration = scalar, U16, 914, "Seconds", 1, 0, 0, 30, 0 +triggerErrorPin = bits, U16, 916, [0:7], $gpio_list +triggerErrorPinMode = bits, U08, 918, [0:1], "default", "default inverted", "open collector", "open collector inverted" +acRelayPin = bits, U16, 920, [0:8], $output_pin_e_list +lambdaProtectionMinTps = scalar, U08, 922, "%", 1, 0, 0, 100, 0 +lambdaProtectionTimeout = scalar, U08, 923, "s", 0.1, 0, 0, 10, 1 +lambdaProtectionRestoreRpm = scalar, U08, 924, "RPM", 100.0, 0, 0, 25000, 0 +acRelayPinMode = bits, U08, 925, [0:1], "default", "default inverted", "open collector", "open collector inverted" +scriptSetting1 = scalar, F32, 928, "", 1, 0, 0, 18000, 2 +scriptSetting2 = scalar, F32, 932, "", 1, 0, 0, 18000, 2 +scriptSetting3 = scalar, F32, 936, "", 1, 0, 0, 18000, 2 +scriptSetting4 = scalar, F32, 940, "", 1, 0, 0, 18000, 2 +scriptSetting5 = scalar, F32, 944, "", 1, 0, 0, 18000, 2 +scriptSetting6 = scalar, F32, 948, "", 1, 0, 0, 18000, 2 +scriptSetting7 = scalar, F32, 952, "", 1, 0, 0, 18000, 2 +scriptSetting8 = scalar, F32, 956, "", 1, 0, 0, 18000, 2 +spi1mosiPin = bits, U16, 960, [0:7], $gpio_list +spi1misoPin = bits, U16, 962, [0:7], $gpio_list +spi1sckPin = bits, U16, 964, [0:7], $gpio_list +spi2mosiPin = bits, U16, 966, [0:7], $gpio_list +spi2misoPin = bits, U16, 968, [0:7], $gpio_list +spi2sckPin = bits, U16, 970, [0:7], $gpio_list +spi3mosiPin = bits, U16, 972, [0:7], $gpio_list +spi3misoPin = bits, U16, 974, [0:7], $gpio_list +spi3sckPin = bits, U16, 976, [0:7], $gpio_list +cdmInputPin = bits, U16, 978, [0:7], $gpio_list +consoleUartDevice = bits, U08, 980, [0:1], "Off", "UART1", "UART2", "UART3" +sensorChartMode = bits, S08, 981, [0:2], "none", "trigger", "INVALID", "RPM ACCEL", "DETAILED RPM", "Fast Aux1", "INVALID", "INVALID" +mafSensorType = bits, S08, 982, [0:1], "v0", "v1", "v2", "v3" +clutchUpPinInverted = bits, U32, 984, [0:0], "false", "true" +clutchDownPinInverted = bits, U32, 984, [1:1], "false", "true" +useHbridgesToDriveIdleStepper = bits, U32, 984, [2:2], "false", "true" +multisparkEnable = bits, U32, 984, [3:3], "false", "true" +enableLaunchRetard = bits, U32, 984, [4:4], "false", "true" +canInputBCM = bits, U32, 984, [5:5], "false", "true" +consumeObdSensors = bits, U32, 984, [6:6], "false", "true" +enableCanVss = bits, U32, 984, [7:7], "false", "true" +enableInnovateLC2 = bits, U32, 984, [8:8], "false", "true" +showHumanReadableWarning = bits, U32, 984, [9:9], "false", "true" +stftIgnoreErrorMagnitude = bits, U32, 984, [10:10], "false", "true" +vvtBooleanForVerySpecialCases = bits, U32, 984, [11:11], "false", "true" +enableSoftwareKnock = bits, U32, 984, [12:12], "false", "true" +verboseVVTDecoding = bits, U32, 984, [13:13], "false", "true" +invertCamVVTSignal = bits, U32, 984, [14:14], "Rising", "Falling" +alphaNUseIat = bits, U32, 984, [15:15], "false", "true" +knockBankCyl1 = bits, U32, 984, [16:16], "Channel 1", "Channel 2" +knockBankCyl2 = bits, U32, 984, [17:17], "Channel 1", "Channel 2" +knockBankCyl3 = bits, U32, 984, [18:18], "Channel 1", "Channel 2" +knockBankCyl4 = bits, U32, 984, [19:19], "Channel 1", "Channel 2" +knockBankCyl5 = bits, U32, 984, [20:20], "Channel 1", "Channel 2" +knockBankCyl6 = bits, U32, 984, [21:21], "Channel 1", "Channel 2" +knockBankCyl7 = bits, U32, 984, [22:22], "Channel 1", "Channel 2" +knockBankCyl8 = bits, U32, 984, [23:23], "Channel 1", "Channel 2" +knockBankCyl9 = bits, U32, 984, [24:24], "Channel 1", "Channel 2" +knockBankCyl10 = bits, U32, 984, [25:25], "Channel 1", "Channel 2" +knockBankCyl11 = bits, U32, 984, [26:26], "Channel 1", "Channel 2" +knockBankCyl12 = bits, U32, 984, [27:27], "Channel 1", "Channel 2" +tcuEnabled = bits, U32, 984, [28:28], "false", "true" +canBroadcastUseChannelTwo = bits, U32, 984, [29:29], "first", "second" +useRawOutputToDriveIdleStepper = bits, U32, 984, [30:30], "false", "true" +verboseCan2 = bits, U32, 984, [31:31], "Do not print", "Print all" +etbIo1_directionPin1 = bits, U16, 988, [0:7], $gpio_list +etbIo1_directionPin2 = bits, U16, 990, [0:7], $gpio_list +etbIo1_controlPin = bits, U16, 992, [0:7], $gpio_list +etbIo1_disablePin = bits, U16, 994, [0:7], $gpio_list +etbIo2_directionPin1 = bits, U16, 996, [0:7], $gpio_list +etbIo2_directionPin2 = bits, U16, 998, [0:7], $gpio_list +etbIo2_controlPin = bits, U16, 1000, [0:7], $gpio_list +etbIo2_disablePin = bits, U16, 1002, [0:7], $gpio_list +boostControlPin = bits, U16, 1004, [0:8], $output_pin_e_list +boostControlPinMode = bits, U08, 1006, [0:1], "default", "default inverted", "open collector", "open collector inverted" +ALSActivatePin = bits, U16, 1008, [0:7], $switch_input_pin_e_list +launchActivatePin = bits, U16, 1010, [0:7], $switch_input_pin_e_list +boostPid_pFactor = scalar, F32, 1012, "", 1, 0, -10000, 10000, 4 +boostPid_iFactor = scalar, F32, 1016, "", 1, 0, -10000, 10000, 4 +boostPid_dFactor = scalar, F32, 1020, "", 1, 0, -10000, 10000, 4 +boostPid_offset = scalar, S16, 1024, "", 1, 0, -1000, 1000, 0 +boostPid_periodMs = scalar, S16, 1026, "ms", 1, 0, 0, 3000, 0 +boostPid_minValue = scalar, S16, 1028, "", 1, 0, -30000, 30000, 0 +boostPid_maxValue = scalar, S16, 1030, "", 1, 0, -30000, 30000, 0 +boostType = bits, U08, 1032, [0:0], "Open Loop", "Open + Closed Loop" +ignitionKeyDigitalPinMode = bits, U08, 1033, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +ignitionKeyDigitalPin = bits, U16, 1034, [0:7], $gpio_list +boostPwmFrequency = scalar, S32, 1036, "Hz", 1, 0, 0, 3000, 0 +launchActivationMode = bits, S08, 1040, [0:1], "Launch Button", "Clutch Down Switch", "Always Active(Disabled By Speed)", "INVALID" +antiLagActivationMode = bits, S08, 1041, [0:0], "Switch Input", "Always Active" +launchSpeedThreshold = scalar, S32, 1044, "Kph", 1, 0, 0, 300, 0 +launchTimingRpmRange = scalar, S32, 1048, "RPM", 1, 0, 0, 8000, 0 +launchSparkSkipPercent = scalar, S32, 1052, "%", 1, 0, 0, 100, 0 +launchBoostDuty = scalar, S32, 1056, "%", 1, 0, 0, 100, 0 +hardCutRpmRange = scalar, S32, 1060, "RPM", 1, 0, 0, 3000, 0 +turbochargerFilter = scalar, F32, 1064, "", 1, 0, 0, 100, 0 +launchTpsThreshold = scalar, S32, 1068, "", 1, 0, 0, 20000, 0 +launchActivateDelay = scalar, F32, 1072, "", 1, 0, 0, 20000, 0 +stft_maxIdleRegionRpm = scalar, U08, 1076, "RPM", 50.0, 0, 0, 12000, 0 +stft_maxOverrunLoad = scalar, U08, 1077, "load", 1, 0, 0, 250, 0 +stft_minPowerLoad = scalar, U08, 1078, "load", 1, 0, 0, 250, 0 +stft_deadband = scalar, U08, 1079, "%", 0.1, 0, 0, 3, 1 +stft_minClt = scalar, S08, 1080, "C", 1, 0, -20, 100, 0 +stft_minAfr = scalar, U08, 1081, "afr", 0.1, 0, 10, 20, 1 +stft_maxAfr = scalar, U08, 1082, "afr", 0.1, 0, 10, 20, 1 +stft_startupDelay = scalar, U08, 1083, "seconds", 1, 0, 0, 250, 0 +stft_cellCfgs1_maxAdd = scalar, S08, 1084, "%", 1, 0, 0, 25, 0 +stft_cellCfgs1_maxRemove = scalar, S08, 1085, "%", 1, 0, -25, 0, 0 +stft_cellCfgs1_timeConstant = scalar, U16, 1086, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs2_maxAdd = scalar, S08, 1088, "%", 1, 0, 0, 25, 0 +stft_cellCfgs2_maxRemove = scalar, S08, 1089, "%", 1, 0, -25, 0, 0 +stft_cellCfgs2_timeConstant = scalar, U16, 1090, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs3_maxAdd = scalar, S08, 1092, "%", 1, 0, 0, 25, 0 +stft_cellCfgs3_maxRemove = scalar, S08, 1093, "%", 1, 0, -25, 0, 0 +stft_cellCfgs3_timeConstant = scalar, U16, 1094, "sec", 0.1, 0, 0.1, 100, 2 +stft_cellCfgs4_maxAdd = scalar, S08, 1096, "%", 1, 0, 0, 25, 0 +stft_cellCfgs4_maxRemove = scalar, S08, 1097, "%", 1, 0, -25, 0, 0 +stft_cellCfgs4_timeConstant = scalar, U16, 1098, "sec", 0.1, 0, 0.1, 100, 2 +stepperDcIo1_directionPin1 = bits, U16, 1100, [0:7], $gpio_list +stepperDcIo1_directionPin2 = bits, U16, 1102, [0:7], $gpio_list +stepperDcIo1_controlPin = bits, U16, 1104, [0:7], $gpio_list +stepperDcIo1_disablePin = bits, U16, 1106, [0:7], $gpio_list +stepperDcIo2_directionPin1 = bits, U16, 1108, [0:7], $gpio_list +stepperDcIo2_directionPin2 = bits, U16, 1110, [0:7], $gpio_list +stepperDcIo2_controlPin = bits, U16, 1112, [0:7], $gpio_list +stepperDcIo2_disablePin = bits, U16, 1114, [0:7], $gpio_list +engineMake = string, ASCII, 1116, 32 +engineCode = string, ASCII, 1148, 32 +vehicleName = string, ASCII, 1180, 32 +tcu_solenoid1 = bits, U16, 1212, [0:8], $output_pin_e_list +tcu_solenoid2 = bits, U16, 1214, [0:8], $output_pin_e_list +tcu_solenoid3 = bits, U16, 1216, [0:8], $output_pin_e_list +tcu_solenoid4 = bits, U16, 1218, [0:8], $output_pin_e_list +tcu_solenoid5 = bits, U16, 1220, [0:8], $output_pin_e_list +tcu_solenoid6 = bits, U16, 1222, [0:8], $output_pin_e_list +etbFunctions1 = bits, U08, 1224, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +etbFunctions2 = bits, U08, 1225, [0:2], "None", "Throttle 1", "Throttle 2", "Idle Valve", "Wastegate", "INVALID", "INVALID", "INVALID" +drv8860spiDevice = bits, U08, 1226, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +drv8860_cs = bits, U16, 1228, [0:7], $gpio_list +drv8860_csPinMode = bits, U08, 1230, [0:1], "default", "default inverted", "open collector", "open collector inverted" +drv8860_miso = bits, U16, 1232, [0:7], $gpio_list +fuelLevelBins = array, U16, 1234, [8], "volt", 0.001, 0, 0, 5, 3 +luaOutputPins1 = bits, U16, 1250, [0:8], $output_pin_e_list +luaOutputPins2 = bits, U16, 1252, [0:8], $output_pin_e_list +luaOutputPins3 = bits, U16, 1254, [0:8], $output_pin_e_list +luaOutputPins4 = bits, U16, 1256, [0:8], $output_pin_e_list +luaOutputPins5 = bits, U16, 1258, [0:8], $output_pin_e_list +luaOutputPins6 = bits, U16, 1260, [0:8], $output_pin_e_list +luaOutputPins7 = bits, U16, 1262, [0:8], $output_pin_e_list +luaOutputPins8 = bits, U16, 1264, [0:8], $output_pin_e_list +vvtOffsets1 = scalar, F32, 1268, "value", 1, 0, -720, 1000, 1 +vvtOffsets2 = scalar, F32, 1272, "value", 1, 0, -720, 1000, 1 +vvtOffsets3 = scalar, F32, 1276, "value", 1, 0, -720, 1000, 1 +vvtOffsets4 = scalar, F32, 1280, "value", 1, 0, -720, 1000, 1 +vrThreshold1_rpmBins = array, U08, 1284, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold1_values = array, U08, 1290, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold1_pin = bits, U16, 1296, [0:7], $gpio_list +vrThreshold2_rpmBins = array, U08, 1300, [6], "rpm", 50.0, 0, 0, 12000, 0 +vrThreshold2_values = array, U08, 1306, [6], "volts", 0.01, 0, 0, 2.5, 2 +vrThreshold2_pin = bits, U16, 1312, [0:7], $gpio_list +gpPwmNote1 = string, ASCII, 1316, 16 +gpPwmNote2 = string, ASCII, 1332, 16 +gpPwmNote3 = string, ASCII, 1348, 16 +gpPwmNote4 = string, ASCII, 1364, 16 +tps2SecondaryMin = scalar, U16, 1380, "ADC", 1, 0, 0, 1000, 0 +tps2SecondaryMax = scalar, U16, 1382, "ADC", 1, 0, 0, 1000, 0 +widebandOnSecondBus = bits, U32, 1384, [0:0], "1", "2" +fuelClosedLoopCorrectionEnabled = bits, U32, 1384, [1:1], "false", "true" +oddFireEngine = bits, U32, 1384, [2:2], "false", "true" +boardUseTachPullUp = bits, U32, 1384, [3:3], "5v", "12v" +boardUseTempPullUp = bits, U32, 1384, [4:4], "Piggyback Mode", "With Pull Ups" +yesUnderstandLocking = bits, U32, 1384, [5:5], "no", "yes" +silentTriggerError = bits, U32, 1384, [6:6], "false", "true" +useLinearCltSensor = bits, U32, 1384, [7:7], "false", "true" +canReadEnabled = bits, U32, 1384, [8:8], "false", "true" +canWriteEnabled = bits, U32, 1384, [9:9], "false", "true" +useLinearIatSensor = bits, U32, 1384, [10:10], "false", "true" +boardUse2stepPullDown = bits, U32, 1384, [11:11], "With Pull Up", "With Pull Down" +tachPulseDurationAsDutyCycle = bits, U32, 1384, [12:12], "Constant time", "Duty cycle" +isAlternatorControlEnabled = bits, U32, 1384, [13:13], "false", "true" +invertPrimaryTriggerSignal = bits, U32, 1384, [14:14], "Rising", "Falling" +invertSecondaryTriggerSignal = bits, U32, 1384, [15:15], "Rising", "Falling" +cutFuelOnHardLimit = bits, U32, 1384, [16:16], "no", "yes" +cutSparkOnHardLimit = bits, U32, 1384, [17:17], "no", "yes" +launchFuelCutEnable = bits, U32, 1384, [18:18], "false", "true" +launchSparkCutEnable = bits, U32, 1384, [19:19], "false", "true" +boardUseCrankPullUp = bits, U32, 1384, [20:20], "VR", "Hall" +boardUseCamPullDown = bits, U32, 1384, [21:21], "With Pull Up", "With Pull Down" +boardUseCamVrPullUp = bits, U32, 1384, [22:22], "VR", "Hall" +boardUseD2PullDown = bits, U32, 1384, [23:23], "With Pull Up", "With Pull Down" +boardUseD3PullDown = bits, U32, 1384, [24:24], "With Pull Up", "With Pull Down" +boardUseD4PullDown = bits, U32, 1384, [25:25], "With Pull Up", "With Pull Down" +boardUseD5PullDown = bits, U32, 1384, [26:26], "With Pull Up", "With Pull Down" +verboseIsoTp = bits, U32, 1384, [27:27], "false", "true" +engineSnifferFocusOnInputs = bits, U32, 1384, [28:28], "false", "true" +launchActivateInverted = bits, U32, 1384, [29:29], "false", "true" +twoStroke = bits, U32, 1384, [30:30], "Four Stroke", "Two Stroke" +skippedWheelOnCam = bits, U32, 1384, [31:31], "On crankshaft", "On camshaft" +hipOutputChannel = bits, U08, 1388, [0:5], $adc_channel_e_list +acSwitch = bits, U16, 1390, [0:7], $switch_input_pin_e_list +vRefAdcChannel = bits, U08, 1392, [0:5], $adc_channel_e_list +etbNeutralPosition = scalar, U08, 1393, "%", 1, 0, 0, 100, 0 +idleMode = bits, U08, 1394, [0:0], "Open Loop + Closed Loop", "Open Loop" +isInjectionEnabled = bits, U32, 1396, [0:0], "false", "true" +isIgnitionEnabled = bits, U32, 1396, [1:1], "false", "true" +isCylinderCleanupEnabled = bits, U32, 1396, [2:2], "false", "true" +complexWallModel = bits, U32, 1396, [3:3], "Basic (constants)", "Advanced (tables)" +alwaysInstantRpm = bits, U32, 1396, [4:4], "false", "true" +isMapAveragingEnabled = bits, U32, 1396, [5:5], "false", "true" +overrideCrankingIacSetting = bits, U32, 1396, [6:6], "false", "true" +useSeparateAdvanceForIdle = bits, U32, 1396, [7:7], "false", "true" +isWaveAnalyzerEnabled = bits, U32, 1396, [8:8], "false", "true" +useSeparateVeForIdle = bits, U32, 1396, [9:9], "false", "true" +verboseTriggerSynchDetails = bits, U32, 1396, [10:10], "false", "true" +isManualSpinningMode = bits, U32, 1396, [11:11], "false", "true" +cutFuelInAcr = bits, U32, 1396, [12:12], "false", "true" +hondaK = bits, U32, 1396, [13:13], "false", "true" +twoWireBatchIgnition = bits, U32, 1396, [14:14], "false", "true" +useFixedBaroCorrFromMap = bits, U32, 1396, [15:15], "false", "true" +useSeparateAdvanceForCranking = bits, U32, 1396, [16:16], "Fixed (auto taper)", "Table" +useAdvanceCorrectionsForCranking = bits, U32, 1396, [17:17], "false", "true" +flexCranking = bits, U32, 1396, [18:18], "false", "true" +useIacPidMultTable = bits, U32, 1396, [19:19], "false", "true" +isBoostControlEnabled = bits, U32, 1396, [20:20], "false", "true" +launchSmoothRetard = bits, U32, 1396, [21:21], "false", "true" +isPhaseSyncRequiredForIgnition = bits, U32, 1396, [22:22], "false", "true" +useCltBasedRpmLimit = bits, U32, 1396, [23:23], "no", "yes" +forceO2Heating = bits, U32, 1396, [24:24], "no", "yes" +invertVvtControlIntake = bits, U32, 1396, [25:25], "advance", "retard" +invertVvtControlExhaust = bits, U32, 1396, [26:26], "advance", "retard" +useBiQuadOnAuxSpeedSensors = bits, U32, 1396, [27:27], "false", "true" +sdTriggerLog = bits, U32, 1396, [28:28], "normal", "trigger" +ALSActivateInverted = bits, U32, 1396, [29:29], "false", "true" +stepper_dc_use_two_wires = bits, U32, 1396, [30:30], "false", "true" +watchOutForLinearTime = bits, U32, 1396, [31:31], "false", "true" +engineChartSize = scalar, U32, 1400, "count", 1, 0, 0, 300, 0 +turboSpeedSensorMultiplier = scalar, F32, 1404, "mult", 1, 0, 0, 7000, 3 +camInputsDebug1 = bits, U16, 1408, [0:7], $gpio_list +camInputsDebug2 = bits, U16, 1410, [0:7], $gpio_list +camInputsDebug3 = bits, U16, 1412, [0:7], $gpio_list +camInputsDebug4 = bits, U16, 1414, [0:7], $gpio_list +acIdleRpmTarget = scalar, S16, 1416, "RPM", 1, 0, 0, 2000, 0 +warningPeriod = scalar, S16, 1418, "seconds", 1, 0, 0, 60, 0 +knockDetectionWindowStart = scalar, F32, 1420, "angle", 1, 0, -1000, 1000, 2 +knockDetectionWindowEnd = scalar, F32, 1424, "angle", 1, 0, -1000, 1000, 2 +idleStepperReactionTime = scalar, F32, 1428, "ms", 1, 0, 1, 300, 0 +idleStepperTotalSteps = scalar, S32, 1432, "count", 1, 0, 5, 3000, 0 +noAccelAfterHardLimitPeriodSecs = scalar, F32, 1436, "sec", 1, 0, 0, 60, 0 +mapAveragingSchedulingAtIndex = scalar, S32, 1440, "index", 1, 0, 0, 7000, 0 +tachPulseDuractionMs = scalar, F32, 1444, "", 1, 0, 0, 100, 2 +wwaeTau = scalar, F32, 1448, "Seconds", 1, 0, 0, 3, 2 +alternatorControl_pFactor = scalar, F32, 1452, "", 1, 0, -10000, 10000, 4 +alternatorControl_iFactor = scalar, F32, 1456, "", 1, 0, -10000, 10000, 4 +alternatorControl_dFactor = scalar, F32, 1460, "", 1, 0, -10000, 10000, 4 +alternatorControl_offset = scalar, S16, 1464, "", 1, 0, -1000, 1000, 0 +alternatorControl_periodMs = scalar, S16, 1466, "ms", 1, 0, 0, 3000, 0 +alternatorControl_minValue = scalar, S16, 1468, "", 1, 0, -30000, 30000, 0 +alternatorControl_maxValue = scalar, S16, 1470, "", 1, 0, -30000, 30000, 0 +etb_pFactor = scalar, F32, 1472, "", 1, 0, -10000, 10000, 4 +etb_iFactor = scalar, F32, 1476, "", 1, 0, -10000, 10000, 4 +etb_dFactor = scalar, F32, 1480, "", 1, 0, -10000, 10000, 4 +etb_offset = scalar, S16, 1484, "", 1, 0, -1000, 1000, 0 +etb_periodMs = scalar, S16, 1486, "ms", 1, 0, 0, 3000, 0 +etb_minValue = scalar, S16, 1488, "", 1, 0, -30000, 30000, 0 +etb_maxValue = scalar, S16, 1490, "", 1, 0, -30000, 30000, 0 +triggerInputDebugPins1 = bits, U16, 1492, [0:7], $gpio_list +triggerInputDebugPins2 = bits, U16, 1494, [0:7], $gpio_list +airTaperRpmRange = scalar, S16, 1496, "RPM", 1, 0, 0, 1500, 0 +turboSpeedSensorInputPin = bits, U16, 1498, [0:7], $brain_input_pin_e_list +tps2Min = scalar, S16, 1500, "ADC", 1, 0, 0, 1023, 0 +tps2Max = scalar, S16, 1502, "ADC", 1, 0, 0, 1023, 0 +starterControlPin = bits, U16, 1504, [0:8], $output_pin_e_list +startStopButtonMode = bits, U08, 1506, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +mc33816_flag0 = bits, U16, 1508, [0:7], $gpio_list +tachPulsePerRev = scalar, U08, 1510, "Pulse", 1, 0, 1, 255, 0 +mapErrorDetectionTooLow = scalar, F32, 1512, "kPa", 1, 0, -100, 100, 2 +mapErrorDetectionTooHigh = scalar, F32, 1516, "kPa", 1, 0, -100, 800, 2 +multisparkSparkDuration = scalar, U16, 1520, "ms", 0.001, 0, 0, 3, 2 +multisparkDwell = scalar, U16, 1522, "ms", 0.001, 0, 0, 3, 2 +idleRpmPid_pFactor = scalar, F32, 1524, "", 1, 0, -10000, 10000, 4 +idleRpmPid_iFactor = scalar, F32, 1528, "", 1, 0, -10000, 10000, 4 +idleRpmPid_dFactor = scalar, F32, 1532, "", 1, 0, -10000, 10000, 4 +idleRpmPid_offset = scalar, S16, 1536, "", 1, 0, -1000, 1000, 0 +idleRpmPid_periodMs = scalar, S16, 1538, "ms", 1, 0, 0, 3000, 0 +idleRpmPid_minValue = scalar, S16, 1540, "", 1, 0, -30000, 30000, 0 +idleRpmPid_maxValue = scalar, S16, 1542, "", 1, 0, -30000, 30000, 0 +wwaeBeta = scalar, F32, 1544, "Fraction", 1, 0, 0, 1, 2 +binarySerialTxPin = bits, U16, 1548, [0:7], $gpio_list +binarySerialRxPin = bits, U16, 1550, [0:7], $gpio_list +auxValves1 = bits, U16, 1552, [0:7], $gpio_list +auxValves2 = bits, U16, 1554, [0:7], $gpio_list +tcuUpshiftButtonPin = bits, U16, 1556, [0:7], $switch_input_pin_e_list +tcuDownshiftButtonPin = bits, U16, 1558, [0:7], $switch_input_pin_e_list +throttlePedalUpVoltage = scalar, F32, 1560, "voltage", 1, 0, -6, 6, 2 +throttlePedalWOTVoltage = scalar, F32, 1564, "voltage", 1, 0, -6, 6, 2 +startUpFuelPumpDuration = scalar, S16, 1568, "seconds", 1, 0, 0, 6000, 0 +idlePidRpmDeadZone = scalar, S16, 1570, "RPM", 1, 0, 0, 800, 0 +targetVBatt = scalar, F32, 1572, "Volts", 1, 0, 0, 30, 1 +mc33810DisableRecoveryMode = bits, U32, 1576, [0:0], "false", "true" +mc33810Gpgd0Mode = bits, U32, 1576, [1:1], "false", "true" +mc33810Gpgd1Mode = bits, U32, 1576, [2:2], "false", "true" +mc33810Gpgd2Mode = bits, U32, 1576, [3:3], "false", "true" +mc33810Gpgd3Mode = bits, U32, 1576, [4:4], "false", "true" +enableExtendedCanBroadcast = bits, U32, 1576, [5:5], "false", "true" +luaCanRxWorkaround = bits, U32, 1576, [6:6], "false", "true" +flexSensorInverted = bits, U32, 1576, [7:7], "false", "true" +useHardSkipInTraction = bits, U32, 1576, [8:8], "false", "true" +useAuxSpeedForSlipRatio = bits, U32, 1576, [11:11], "false", "true" +useVssAsSecondWheelSpeed = bits, U32, 1576, [12:12], "false", "true" +is_enabled_spi_5 = bits, U32, 1576, [13:13], "false", "true" +is_enabled_spi_6 = bits, U32, 1576, [14:14], "false", "true" +afterCrankingIACtaperDuration = scalar, S16, 1580, "cycles", 1, 0, 0, 5000, 0 +iacByTpsTaper = scalar, S16, 1582, "percent", 1, 0, 0, 500, 0 +auxSerialTxPin = bits, U16, 1584, [0:7], $gpio_list +auxSerialRxPin = bits, U16, 1586, [0:7], $gpio_list +accelerometerCsPin = bits, U16, 1588, [0:7], $gpio_list +tpsAccelLookback = scalar, U08, 1590, "sec", 0.05, 0, 0, 5, 2 +coastingFuelCutVssLow = scalar, U08, 1591, "kph", 1, 0, 0, 255, 0 +coastingFuelCutVssHigh = scalar, U08, 1592, "kph", 1, 0, 0, 255, 0 +noFuelTrimAfterDfcoTime = scalar, U08, 1593, "sec", 0.1, 0, 0, 10, 1 +tpsAccelEnrichmentThreshold = scalar, F32, 1596, "roc", 1, 0, 0, 200, 1 +auxSpeedSensorInputPin1 = bits, U16, 1600, [0:7], $brain_input_pin_e_list +auxSpeedSensorInputPin2 = bits, U16, 1602, [0:7], $brain_input_pin_e_list +totalGearsCount = scalar, U08, 1604, "", 1, 0, 1, 10, 0 +injectionTimingMode = bits, U08, 1605, [0:1], "End of injection", "Start of injection", "Center of injection", "INVALID" +debugMode = bits, U08, 1606, [0:5], "INVALID", "TPS acceleration enrichment", "INVALID", "Stepper Idle Control", "Engine Load accl enrich", "Trigger Counters", "Soft Spark Cut", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "SD card", "sr5", "Knock", "INVALID", "Electronic Throttle", "Executor", "Bench Test / TS commands", "INVALID", "Analog inputs #1", "INSTANT_RPM", "INVALID", "Status", "INVALID", "INVALID", "MAP", "Metrics", "INVALID", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "INVALID", "Boost Control", "INVALID", "INVALID", "ETB Autotune", "Composite Log", "INVALID", "INVALID", "INVALID", "Dyno_View", "Logic_Analyzer", "INVALID", "TCU", "Lua", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan1ExtraIdle = scalar, U08, 1607, "%", 1, 0, 0, 100, 0 +uartConsoleSerialSpeed = scalar, U32, 1608, "BPs", 1, 0, 0, 1000000, 0 +tpsDecelEnleanmentThreshold = scalar, F32, 1612, "roc", 1, 0, 0, 200, 1 +tpsDecelEnleanmentMultiplier = scalar, F32, 1616, "coeff", 1, 0, 0, 200, 2 +auxSerialSpeed = scalar, U32, 1620, "BPs", 1, 0, 0, 1000000, 0 +throttlePedalSecondaryUpVoltage = scalar, F32, 1624, "voltage", 1, 0, -6, 6, 2 +throttlePedalSecondaryWOTVoltage = scalar, F32, 1628, "voltage", 1, 0, -6, 6, 2 +canBaudRate = bits, U08, 1632, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +veOverrideMode = bits, U08, 1633, [0:1], "None", "MAP", "TPS", "INVALID" +can2BaudRate = bits, U08, 1634, [0:2], "50kbps", "83.33kbps", "100kbps", "125kbps", "250kbps", "500kbps", "1Mbps", "INVALID" +afrOverrideMode = bits, U08, 1635, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +mc33_hpfp_i_peak = scalar, U08, 1636, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold = scalar, U08, 1637, "A", 0.1, 0, 0, 25, 1 +mc33_hpfp_i_hold_off = scalar, U08, 1638, "us", 1, 0, 0, 255, 0 +mc33_hpfp_max_hold = scalar, U08, 1639, "ms", 1, 0, 0, 255, 0 +stepperDcInvertedPins = bits, U32, 1640, [0:0], "false", "true" +canOpenBLT = bits, U32, 1640, [1:1], "false", "true" +can2OpenBLT = bits, U32, 1640, [2:2], "false", "true" +injectorFlowAsMassFlow = bits, U32, 1640, [3:3], "volumetric flow", "mass flow" +boardUseCanTerminator = bits, U32, 1640, [4:4], "false", "true" +kLineDoHondaSend = bits, U32, 1640, [5:5], "false", "true" +can1ListenMode = bits, U32, 1640, [6:6], "false", "true" +can2ListenMode = bits, U32, 1640, [7:7], "false", "true" +camDecoder2jzPosition = scalar, U08, 1644, "", 1, 0, 0, 100, 0 +mc33810maxDwellTimer = bits, U08, 1645, [0:2], "2 mS", "4 mS", "8 mS", "16 mS", "32 mS", "64 mS", "INVALID", "INVALID" +benchTestOnTime = scalar, U16, 1646, "ms", 0.01, 0, 0, 500, 2 +lambdaProtectionRestoreTps = scalar, U08, 1648, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1649, "%", 10.0, 0, 0, 1000, 0 +launchActivatePinMode = bits, U08, 1650, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +can2TxPin = bits, U16, 1652, [0:7], $gpio_list +can2RxPin = bits, U16, 1654, [0:7], $gpio_list +starterControlPinMode = bits, U08, 1656, [0:1], "default", "default inverted", "open collector", "open collector inverted" +wastegatePositionSensor = bits, U08, 1657, [0:5], $adc_channel_e_list +ignOverrideMode = bits, U08, 1658, [0:2], "None", "MAP", "TPS", "Acc Pedal", "Cyl Filling %", "INVALID", "INVALID", "INVALID" +injectorPressureType = bits, U08, 1659, [0:0], "Low", "High" +hpfpValvePin = bits, U16, 1660, [0:8], $output_pin_e_list +hpfpValvePinMode = bits, U08, 1662, [0:1], "default", "default inverted", "open collector", "open collector inverted" +boostCutPressure = scalar, F32, 1664, "kPa (absolute)", 1, 0, 0, 1000, 0 +tchargeBins = array, U08, 1668, [16], "kg/h", 5.0, 0, 0, 1200, 0 +tchargeValues = array, U08, 1684, [16], "ratio", 0.01, 0, 0, 1, 2 +fixedTiming = scalar, F32, 1700, "deg", 1, 0, -720, 720, 2 +mapLowValueVoltage = scalar, F32, 1704, "v", 1, 0, 0, 10, 2 +mapHighValueVoltage = scalar, F32, 1708, "v", 1, 0, 0, 10, 2 +egoValueShift = scalar, F32, 1712, "value", 1, 0, -10, 10, 2 +vvtPins1 = bits, U16, 1716, [0:8], $output_pin_e_list +vvtPins2 = bits, U16, 1718, [0:8], $output_pin_e_list +vvtPins3 = bits, U16, 1720, [0:8], $output_pin_e_list +vvtPins4 = bits, U16, 1722, [0:8], $output_pin_e_list +sdCardCsPinMode = bits, U08, 1724, [0:1], "default", "default inverted", "open collector", "open collector inverted" +crankingIACposition = scalar, S32, 1728, "percent", 1, 0, -100, 100, 0 +tChargeMinRpmMinTps = scalar, F32, 1732, "", 1, 0, 0, 3, 4 +tChargeMinRpmMaxTps = scalar, F32, 1736, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMinTps = scalar, F32, 1740, "", 1, 0, 0, 3, 4 +tChargeMaxRpmMaxTps = scalar, F32, 1744, "", 1, 0, 0, 3, 4 +vvtOutputFrequency = scalar, U16, 1748, "Hz", 1, 0, 0, 3000, 0 +minimumIgnitionTiming = scalar, S08, 1750, "deg BTDC", 1, 0, -90, 90, 0 +maximumIgnitionTiming = scalar, S08, 1751, "deg BTDC", 1, 0, -90, 90, 0 +alternatorPwmFrequency = scalar, S32, 1752, "Hz", 1, 0, 0, 3000, 0 +vvtMode1 = bits, U08, 1756, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +vvtMode2 = bits, U08, 1757, [0:5], "Inactive", "Single Tooth", "Toyota 3 Tooth", "Miata NB2", "Mitsu 4G69", "Bosch Quick Start", "4/1", "ST 170", "Ford Barra 3+1", "Nissan VQ", "Honda K Intake", "Nissan MR18", "Mitsu 3A92", "VTwin by MAP", "Mitsu 6G75", "Mazda Skyactiv", "Honda K Exhaust", "Mitsubishi 4G92/93/94", "Mitsubishi 4G63", "Ford Coyote", "Mitsu 6G72", "Honda 600", "vvt22", "vvt23", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +fan2ExtraIdle = scalar, U08, 1758, "%", 1, 0, 0, 100, 0 +primingDelay = scalar, U08, 1759, "sec", 0.01, 0, 0, 1, 2 +auxAnalogInputs1 = bits, U08, 1760, [0:5], $adc_channel_e_list +auxAnalogInputs2 = bits, U08, 1761, [0:5], $adc_channel_e_list +auxAnalogInputs3 = bits, U08, 1762, [0:5], $adc_channel_e_list +auxAnalogInputs4 = bits, U08, 1763, [0:5], $adc_channel_e_list +auxAnalogInputs5 = bits, U08, 1764, [0:5], $adc_channel_e_list +auxAnalogInputs6 = bits, U08, 1765, [0:5], $adc_channel_e_list +auxAnalogInputs7 = bits, U08, 1766, [0:5], $adc_channel_e_list +auxAnalogInputs8 = bits, U08, 1767, [0:5], $adc_channel_e_list +trailingCoilPins1 = bits, U16, 1768, [0:8], $output_pin_e_list +trailingCoilPins2 = bits, U16, 1770, [0:8], $output_pin_e_list +trailingCoilPins3 = bits, U16, 1772, [0:8], $output_pin_e_list +trailingCoilPins4 = bits, U16, 1774, [0:8], $output_pin_e_list +trailingCoilPins5 = bits, U16, 1776, [0:8], $output_pin_e_list +trailingCoilPins6 = bits, U16, 1778, [0:8], $output_pin_e_list +trailingCoilPins7 = bits, U16, 1780, [0:8], $output_pin_e_list +trailingCoilPins8 = bits, U16, 1782, [0:8], $output_pin_e_list +trailingCoilPins9 = bits, U16, 1784, [0:8], $output_pin_e_list +trailingCoilPins10 = bits, U16, 1786, [0:8], $output_pin_e_list +trailingCoilPins11 = bits, U16, 1788, [0:8], $output_pin_e_list +trailingCoilPins12 = bits, U16, 1790, [0:8], $output_pin_e_list +tle8888mode = bits, U08, 1792, [0:1], "Auto", "SemiAuto", "Manual", "Hall" +accelerometerCsPinMode = bits, U08, 1793, [0:1], "default", "default inverted", "open collector", "open collector inverted" +injectorCompensationMode = bits, U08, 1794, [0:1], "None", "Fixed rail pressure", "Sensed Rail Pressure", "INVALID" +fan2PinMode = bits, U08, 1795, [0:1], "default", "default inverted", "open collector", "open collector inverted" +fuelReferencePressure = scalar, F32, 1796, "kPa", 1, 0, 50, 700000, 0 +postCrankingFactor = array, F32, 1800, [6x6], "mult", 1, 0, 1, 3, 2 +postCrankingDurationBins = array, F32, 1944, [6], "count", 1, 0, 0, 1000, 0 +postCrankingCLTBins = array, F32, 1968, [6], "C", 1, 0, -100, 100, 0 +auxTempSensor1_tempC_1 = scalar, F32, 1992, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_2 = scalar, F32, 1996, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_tempC_3 = scalar, F32, 2000, "*C", 1, 0, -55, 200, 1 +auxTempSensor1_resistance_1 = scalar, F32, 2004, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_2 = scalar, F32, 2008, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_resistance_3 = scalar, F32, 2012, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor1_bias_resistor = scalar, F32, 2016, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor1_adcChannel = bits, U08, 2020, [0:5], $adc_channel_e_list +auxTempSensor2_tempC_1 = scalar, F32, 2024, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_2 = scalar, F32, 2028, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_tempC_3 = scalar, F32, 2032, "*C", 1, 0, -55, 200, 1 +auxTempSensor2_resistance_1 = scalar, F32, 2036, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_2 = scalar, F32, 2040, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_resistance_3 = scalar, F32, 2044, "Ohm", 1, 0, 0, 1000000, 1 +auxTempSensor2_bias_resistor = scalar, F32, 2048, "Ohm", 1, 0, 0, 200000, 1 +auxTempSensor2_adcChannel = bits, U08, 2052, [0:5], $adc_channel_e_list +knockSamplingDuration = scalar, S16, 2056, "Deg", 1, 0, 0, 720, 0 +etbFreq = scalar, S16, 2058, "Hz", 1, 0, 0, 3000, 0 +etbWastegatePid_pFactor = scalar, F32, 2060, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_iFactor = scalar, F32, 2064, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_dFactor = scalar, F32, 2068, "", 1, 0, -10000, 10000, 4 +etbWastegatePid_offset = scalar, S16, 2072, "", 1, 0, -1000, 1000, 0 +etbWastegatePid_periodMs = scalar, S16, 2074, "ms", 1, 0, 0, 3000, 0 +etbWastegatePid_minValue = scalar, S16, 2076, "", 1, 0, -30000, 30000, 0 +etbWastegatePid_maxValue = scalar, S16, 2078, "", 1, 0, -30000, 30000, 0 +stepperNumMicroSteps = bits, U08, 2080, [0:3], "Full-Step (Default)", "INVALID", "Half-Step", "INVALID", "1/4 Micro-Step", "INVALID", "INVALID", "INVALID", "1/8 Micro-Step", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperMinDutyCycle = scalar, U08, 2081, "%", 1, 0, 0, 100, 0 +stepperMaxDutyCycle = scalar, U08, 2082, "%", 1, 0, 0, 100, 0 +sdCardSpiDevice = bits, U08, 2083, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +timing_offset_cylinder1 = scalar, F32, 2084, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder2 = scalar, F32, 2088, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder3 = scalar, F32, 2092, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder4 = scalar, F32, 2096, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder5 = scalar, F32, 2100, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder6 = scalar, F32, 2104, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder7 = scalar, F32, 2108, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder8 = scalar, F32, 2112, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder9 = scalar, F32, 2116, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder10 = scalar, F32, 2120, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder11 = scalar, F32, 2124, "deg", 1, 0, -720, 720, 1 +timing_offset_cylinder12 = scalar, F32, 2128, "deg", 1, 0, -720, 720, 1 +idlePidActivationTime = scalar, F32, 2132, "seconds", 1, 0, 0, 60, 1 +spi1SckMode = bits, U08, 2136, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MosiMode = bits, U08, 2137, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi1MisoMode = bits, U08, 2138, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2SckMode = bits, U08, 2139, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MosiMode = bits, U08, 2140, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi2MisoMode = bits, U08, 2141, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3SckMode = bits, U08, 2142, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MosiMode = bits, U08, 2143, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi3MisoMode = bits, U08, 2144, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +stepperEnablePinMode = bits, U08, 2145, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_rstb = bits, U16, 2146, [0:7], $gpio_list +mc33816_driven = bits, U16, 2148, [0:7], $gpio_list +brakePedalPin = bits, U16, 2150, [0:7], $switch_input_pin_e_list +brakePedalPinMode = bits, U08, 2152, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +auxPid1_pFactor = scalar, F32, 2156, "", 1, 0, -10000, 10000, 4 +auxPid1_iFactor = scalar, F32, 2160, "", 1, 0, -10000, 10000, 4 +auxPid1_dFactor = scalar, F32, 2164, "", 1, 0, -10000, 10000, 4 +auxPid1_offset = scalar, S16, 2168, "", 1, 0, -1000, 1000, 0 +auxPid1_periodMs = scalar, S16, 2170, "ms", 1, 0, 0, 3000, 0 +auxPid1_minValue = scalar, S16, 2172, "", 1, 0, -30000, 30000, 0 +auxPid1_maxValue = scalar, S16, 2174, "", 1, 0, -30000, 30000, 0 +auxPid2_pFactor = scalar, F32, 2176, "", 1, 0, -10000, 10000, 4 +auxPid2_iFactor = scalar, F32, 2180, "", 1, 0, -10000, 10000, 4 +auxPid2_dFactor = scalar, F32, 2184, "", 1, 0, -10000, 10000, 4 +auxPid2_offset = scalar, S16, 2188, "", 1, 0, -1000, 1000, 0 +auxPid2_periodMs = scalar, S16, 2190, "ms", 1, 0, 0, 3000, 0 +auxPid2_minValue = scalar, S16, 2192, "", 1, 0, -30000, 30000, 0 +auxPid2_maxValue = scalar, S16, 2194, "", 1, 0, -30000, 30000, 0 +injectorCorrectionPolynomial1 = scalar, F32, 2196, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial2 = scalar, F32, 2200, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial3 = scalar, F32, 2204, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial4 = scalar, F32, 2208, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial5 = scalar, F32, 2212, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial6 = scalar, F32, 2216, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial7 = scalar, F32, 2220, "", 1, 0, -1000, 1000, 4 +injectorCorrectionPolynomial8 = scalar, F32, 2224, "", 1, 0, -1000, 1000, 4 +primeBins = array, S08, 2228, [8], "C", 1, 0, -40, 120, 0 +oilPressure_hwChannel = bits, U08, 2236, [0:5], $adc_channel_e_list +oilPressure_v1 = scalar, F32, 2240, "volts", 1, 0, 0, 10, 2 +oilPressure_value1 = scalar, F32, 2244, "", 1, 0, 0, 1000000, 2 +oilPressure_v2 = scalar, F32, 2248, "volts", 1, 0, 0, 10, 2 +oilPressure_value2 = scalar, F32, 2252, "", 1, 0, 0, 1000000, 2 +accelerometerSpiDevice = bits, U08, 2256, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +fan2Pin = bits, U16, 2258, [0:8], $output_pin_e_list +fan2OnTemperature = scalar, U08, 2260, "deg C", 1, 0, 0, 150, 0 +fan2OffTemperature = scalar, U08, 2261, "deg C", 1, 0, 0, 150, 0 +stepperEnablePin = bits, U16, 2262, [0:7], $gpio_list +tle8888_cs = bits, U16, 2264, [0:7], $gpio_list +tle8888_csPinMode = bits, U08, 2266, [0:1], "default", "default inverted", "open collector", "open collector inverted" +mc33816_cs = bits, U16, 2268, [0:7], $gpio_list +auxFrequencyFilter = scalar, F32, 2272, "hz", 1, 0, 0, 100, 1 +vvtControlMinRpm = scalar, S16, 2276, "RPM", 1, 0, 0, 3000, 0 +sentInputPins1 = bits, U16, 2278, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PF0", "PF1", "PF2", "PF3", "PF4", "PF5", "PF6", "PF7", "PF8", "PF9", "PF10", "PF11", "PF12", "PF13", "PF14", "PF15", "PG0", "PG1", "PG2", "PG3", "PG4", "PG5", "PG6", "PG7", "PG8", "PG9", "PG10", "PG11", "PG12", "PG13", "PG14", "PG15", "PH0", "PH1", "PH2", "PH3", "PH4", "PH5", "PH6", "PH7", "PH8", "PH9", "PH10", "PH11", "PH12", "PH13", "PH14", "PH15", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +launchFuelAdderPercent = scalar, S08, 2280, "%", 1, 0, 0, 100, 0 +etbJamTimeout = scalar, U08, 2281, "sec", 0.02, 0, 0, 5, 2 +etbExpAverageLength = scalar, U16, 2282, "", 1, 0, 0, 32000, 0 +etbDutyThreshold = scalar, F32, 2284, "", 1, 0, 0, 100, 0 +coastingFuelCutRpmHigh = scalar, S16, 2288, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutRpmLow = scalar, S16, 2290, "rpm", 1, 0, 0, 5000, 0 +coastingFuelCutTps = scalar, S16, 2292, "%", 1, 0, 0, 20, 0 +coastingFuelCutClt = scalar, S16, 2294, "C", 1, 0, -100, 100, 0 +pidExtraForLowRpm = scalar, S16, 2296, "%", 1, 0, 0, 100, 0 +coastingFuelCutMap = scalar, S16, 2298, "kPa", 1, 0, 0, 250, 0 +highPressureFuel_hwChannel = bits, U08, 2300, [0:5], $adc_channel_e_list +highPressureFuel_v1 = scalar, F32, 2304, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value1 = scalar, F32, 2308, "", 1, 0, 0, 1000000, 2 +highPressureFuel_v2 = scalar, F32, 2312, "volts", 1, 0, 0, 10, 2 +highPressureFuel_value2 = scalar, F32, 2316, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_hwChannel = bits, U08, 2320, [0:5], $adc_channel_e_list +lowPressureFuel_v1 = scalar, F32, 2324, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value1 = scalar, F32, 2328, "", 1, 0, 0, 1000000, 2 +lowPressureFuel_v2 = scalar, F32, 2332, "volts", 1, 0, 0, 10, 2 +lowPressureFuel_value2 = scalar, F32, 2336, "", 1, 0, 0, 1000000, 2 +cltRevLimitRpmBins = array, S08, 2340, [4], "C", 1, 0, -40, 120, 0 +cltRevLimitRpm = array, U16, 2344, [4], "RPM", 1, 0, 0, 20000, 0 +scriptCurveName1 = string, ASCII, 2352, 16 +scriptCurveName2 = string, ASCII, 2368, 16 +scriptCurveName3 = string, ASCII, 2384, 16 +scriptCurveName4 = string, ASCII, 2400, 16 +scriptCurveName5 = string, ASCII, 2416, 16 +scriptCurveName6 = string, ASCII, 2432, 16 +scriptTableName1 = string, ASCII, 2448, 16 +scriptTableName2 = string, ASCII, 2464, 16 +scriptTableName3 = string, ASCII, 2480, 16 +scriptTableName4 = string, ASCII, 2496, 16 +scriptSettingName1 = string, ASCII, 2512, 16 +scriptSettingName2 = string, ASCII, 2528, 16 +scriptSettingName3 = string, ASCII, 2544, 16 +scriptSettingName4 = string, ASCII, 2560, 16 +scriptSettingName5 = string, ASCII, 2576, 16 +scriptSettingName6 = string, ASCII, 2592, 16 +scriptSettingName7 = string, ASCII, 2608, 16 +scriptSettingName8 = string, ASCII, 2624, 16 +tChargeAirCoefMin = scalar, F32, 2640, "", 1, 0, 0, 1, 3 +tChargeAirCoefMax = scalar, F32, 2644, "", 1, 0, 0, 1, 3 +tChargeAirFlowMax = scalar, F32, 2648, "kg/h", 1, 0, 0, 1000, 1 +tChargeAirIncrLimit = scalar, F32, 2652, "deg/sec", 1, 0, 0, 100, 1 +tChargeAirDecrLimit = scalar, F32, 2656, "deg/sec", 1, 0, 0, 100, 1 +tChargeMode = bits, U08, 2660, [0:1], "RPM+TPS (Default)", "Air Mass Interpolation", "Table", "INVALID" +hip9011Gain = scalar, F32, 2664, "", 1, 0, 0, 100, 2 +etb_iTermMin = scalar, S16, 2668, "", 1, 0, -30000, 30000, 0 +etb_iTermMax = scalar, S16, 2670, "", 1, 0, -30000, 30000, 0 +idleTimingPid_pFactor = scalar, F32, 2672, "", 1, 0, -10000, 10000, 4 +idleTimingPid_iFactor = scalar, F32, 2676, "", 1, 0, -10000, 10000, 4 +idleTimingPid_dFactor = scalar, F32, 2680, "", 1, 0, -10000, 10000, 4 +idleTimingPid_offset = scalar, S16, 2684, "", 1, 0, -1000, 1000, 0 +idleTimingPid_periodMs = scalar, S16, 2686, "ms", 1, 0, 0, 3000, 0 +idleTimingPid_minValue = scalar, S16, 2688, "", 1, 0, -30000, 30000, 0 +idleTimingPid_maxValue = scalar, S16, 2690, "", 1, 0, -30000, 30000, 0 +idleTimingSoftEntryTime = scalar, F32, 2692, "", 1, 0, 0, 100, 1 +etbRocExpAverageLength = scalar, S16, 2696, "", 1, 0, 0, 32000, 0 +tpsAccelFractionPeriod = scalar, S16, 2698, "cycles", 1, 0, 0, 500, 0 +tpsAccelFractionDivisor = scalar, F32, 2700, "coef", 1, 0, 0, 100, 2 +tle8888spiDevice = bits, U08, 2704, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +mc33816spiDevice = bits, U08, 2705, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +idlerpmpid_iTermMin = scalar, S16, 2706, "", 1, 0, -30000, 30000, 0 +tle6240spiDevice = bits, U08, 2708, [0:2], "Off", "SPI1", "SPI2", "SPI3", "SPI4", "SPI5", "SPI6", "INVALID" +stoichRatioPrimary = scalar, U08, 2709, ":1", 0.1, 0, 5, 25, 1 +idlerpmpid_iTermMax = scalar, S16, 2710, "", 1, 0, -30000, 30000, 0 +etbIdleThrottleRange = scalar, F32, 2712, "%", 1, 0, 0, 15, 0 +cylinderBankSelect1 = scalar, U08, 2716, "", 1, 1, 1, 2, 0 +cylinderBankSelect2 = scalar, U08, 2717, "", 1, 1, 1, 2, 0 +cylinderBankSelect3 = scalar, U08, 2718, "", 1, 1, 1, 2, 0 +cylinderBankSelect4 = scalar, U08, 2719, "", 1, 1, 1, 2, 0 +cylinderBankSelect5 = scalar, U08, 2720, "", 1, 1, 1, 2, 0 +cylinderBankSelect6 = scalar, U08, 2721, "", 1, 1, 1, 2, 0 +cylinderBankSelect7 = scalar, U08, 2722, "", 1, 1, 1, 2, 0 +cylinderBankSelect8 = scalar, U08, 2723, "", 1, 1, 1, 2, 0 +cylinderBankSelect9 = scalar, U08, 2724, "", 1, 1, 1, 2, 0 +cylinderBankSelect10 = scalar, U08, 2725, "", 1, 1, 1, 2, 0 +cylinderBankSelect11 = scalar, U08, 2726, "", 1, 1, 1, 2, 0 +cylinderBankSelect12 = scalar, U08, 2727, "", 1, 1, 1, 2, 0 +primeValues = array, U08, 2728, [8], "mg", 5.0, 0, 0, 1250, 0 +triggerCompCenterVolt = scalar, U08, 2736, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMin = scalar, U08, 2737, "V", 0.02, 0, 0, 5.1, 2 +triggerCompHystMax = scalar, U08, 2738, "V", 0.02, 0, 0, 5.1, 2 +triggerCompSensorSatRpm = scalar, U08, 2739, "RPM", 50.0, 0, 0, 12000, 0 +tractionControlSlipBins = array, U16, 2740, [6], "ratio", 0.01, 0, 0, 999, 2 +tractionControlSpeedBins = array, U08, 2752, [6], "RPM", 1, 0, 0, 250, 0 +disableFan1AtSpeed = scalar, S08, 2758, "", 1, 0, 0, 100, 0 +disableFan2AtSpeed = scalar, S08, 2759, "", 1, 0, 0, 100, 0 +canVssNbcType = bits, U08, 2760, [0:2], "BMW_e46", "W202", "BMW E8x/E9x MK60e5", "Nissan 350", "Hyundai PB", "Honda Civic9", "INVALID", "INVALID" +gppwm1_pin = bits, U16, 2764, [0:8], $output_pin_e_list +gppwm1_dutyIfError = scalar, U08, 2766, "%", 1, 0, 0, 100, 0 +gppwm1_pwmFrequency = scalar, U16, 2768, "hz", 1, 0, 0, 500, 0 +gppwm1_onAboveDuty = scalar, U08, 2770, "%", 1, 0, 0, 100, 0 +gppwm1_offBelowDuty = scalar, U08, 2771, "%", 1, 0, 0, 100, 0 +gppwm1_loadAxis = bits, U08, 2772, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_rpmAxis = bits, U08, 2773, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadBins = array, S16, 2774, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm1_rpmBins = array, S16, 2790, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm1_table = array, U08, 2806, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm2_pin = bits, U16, 2872, [0:8], $output_pin_e_list +gppwm2_dutyIfError = scalar, U08, 2874, "%", 1, 0, 0, 100, 0 +gppwm2_pwmFrequency = scalar, U16, 2876, "hz", 1, 0, 0, 500, 0 +gppwm2_onAboveDuty = scalar, U08, 2878, "%", 1, 0, 0, 100, 0 +gppwm2_offBelowDuty = scalar, U08, 2879, "%", 1, 0, 0, 100, 0 +gppwm2_loadAxis = bits, U08, 2880, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_rpmAxis = bits, U08, 2881, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadBins = array, S16, 2882, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm2_rpmBins = array, S16, 2898, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm2_table = array, U08, 2914, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm3_pin = bits, U16, 2980, [0:8], $output_pin_e_list +gppwm3_dutyIfError = scalar, U08, 2982, "%", 1, 0, 0, 100, 0 +gppwm3_pwmFrequency = scalar, U16, 2984, "hz", 1, 0, 0, 500, 0 +gppwm3_onAboveDuty = scalar, U08, 2986, "%", 1, 0, 0, 100, 0 +gppwm3_offBelowDuty = scalar, U08, 2987, "%", 1, 0, 0, 100, 0 +gppwm3_loadAxis = bits, U08, 2988, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_rpmAxis = bits, U08, 2989, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadBins = array, S16, 2990, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm3_rpmBins = array, S16, 3006, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm3_table = array, U08, 3022, [8x8], "duty", 0.5, 0, 0, 100, 1 +gppwm4_pin = bits, U16, 3088, [0:8], $output_pin_e_list +gppwm4_dutyIfError = scalar, U08, 3090, "%", 1, 0, 0, 100, 0 +gppwm4_pwmFrequency = scalar, U16, 3092, "hz", 1, 0, 0, 500, 0 +gppwm4_onAboveDuty = scalar, U08, 3094, "%", 1, 0, 0, 100, 0 +gppwm4_offBelowDuty = scalar, U08, 3095, "%", 1, 0, 0, 100, 0 +gppwm4_loadAxis = bits, U08, 3096, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_rpmAxis = bits, U08, 3097, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadBins = array, S16, 3098, [8], "load", 0.5, 0, -1000, 10000, 1 +gppwm4_rpmBins = array, S16, 3114, [8], "RPM", 1, 0, -30000, 30000, 0 +gppwm4_table = array, U08, 3130, [8x8], "duty", 0.5, 0, 0, 100, 1 +mc33_i_boost = scalar, U16, 3196, "mA", 1, 0, 1000, 25000, 0 +mc33_i_peak = scalar, U16, 3198, "mA", 1, 0, 1000, 20000, 0 +mc33_i_hold = scalar, U16, 3200, "mA", 1, 0, 1000, 20000, 0 +mc33_t_max_boost = scalar, U16, 3202, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_off = scalar, U16, 3204, "us", 1, 0, 0, 10000, 0 +mc33_t_peak_tot = scalar, U16, 3206, "us", 1, 0, 0, 10000, 0 +mc33_t_bypass = scalar, U16, 3208, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_off = scalar, U16, 3210, "us", 1, 0, 0, 10000, 0 +mc33_t_hold_tot = scalar, U16, 3212, "us", 1, 0, 0, 10000, 0 +tcuUpshiftButtonPinMode = bits, U08, 3214, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcuDownshiftButtonPinMode = bits, U08, 3215, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +acSwitchMode = bits, U08, 3216, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_solenoid_mode1 = bits, U08, 3217, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode2 = bits, U08, 3218, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode3 = bits, U08, 3219, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode4 = bits, U08, 3220, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode5 = bits, U08, 3221, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_solenoid_mode6 = bits, U08, 3222, [0:1], "default", "default inverted", "open collector", "open collector inverted" +knockBaseNoise = array, S08, 3223, [16], "dB", 0.5, 0, -50, 10, 1 +triggerGapOverrideFrom1 = scalar, F32, 3240, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom2 = scalar, F32, 3244, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom3 = scalar, F32, 3248, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom4 = scalar, F32, 3252, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom5 = scalar, F32, 3256, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom6 = scalar, F32, 3260, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom7 = scalar, F32, 3264, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom8 = scalar, F32, 3268, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom9 = scalar, F32, 3272, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom10 = scalar, F32, 3276, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom11 = scalar, F32, 3280, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom12 = scalar, F32, 3284, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom13 = scalar, F32, 3288, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom14 = scalar, F32, 3292, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom15 = scalar, F32, 3296, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom16 = scalar, F32, 3300, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom17 = scalar, F32, 3304, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideFrom18 = scalar, F32, 3308, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo1 = scalar, F32, 3312, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo2 = scalar, F32, 3316, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo3 = scalar, F32, 3320, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo4 = scalar, F32, 3324, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo5 = scalar, F32, 3328, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo6 = scalar, F32, 3332, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo7 = scalar, F32, 3336, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo8 = scalar, F32, 3340, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo9 = scalar, F32, 3344, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo10 = scalar, F32, 3348, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo11 = scalar, F32, 3352, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo12 = scalar, F32, 3356, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo13 = scalar, F32, 3360, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo14 = scalar, F32, 3364, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo15 = scalar, F32, 3368, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo16 = scalar, F32, 3372, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo17 = scalar, F32, 3376, "ratio", 1, 0, 0, 20, 3 +triggerGapOverrideTo18 = scalar, F32, 3380, "ratio", 1, 0, 0, 20, 3 +maxCamPhaseResolveRpm = scalar, U08, 3384, "rpm", 50.0, 0, 0, 12500, 0 +dfcoDelay = scalar, U08, 3385, "sec", 0.1, 0, 0, 10, 1 +acDelay = scalar, U08, 3386, "sec", 0.1, 0, 0, 10, 1 +fordInjectorSmallPulseBreakPoint = scalar, U16, 3388, "mg", 0.001, 0, 0, 65, 3 +tpsTspCorrValues = array, U08, 3390, [4], "multiplier", 0.02, 0, 0, 5, 2 +etbJamIntegratorLimit = scalar, U08, 3394, "%", 1, 0, 0, 50, 0 +hpfpCamLobes = scalar, U08, 3395, "lobes/cam", 1, 0, 0, 255, 0 +hpfpCam = bits, U08, 3396, [0:2], "NONE", "Intake 1", "Exhaust 1", "Intake 2", "Exhaust 2", "INVALID", "INVALID", "INVALID" +auxiliarySetting1 = scalar, U08, 3397, "", 1, 0, 0, 100, 0 +hpfpMinAngle = scalar, U08, 3398, "deg", 1, 0, 0, 255, 0 +hpfpPumpVolume = scalar, U16, 3400, "cc", 0.001, 0, 0, 65, 3 +hpfpActivationAngle = scalar, U08, 3402, "deg", 1, 0, 0, 255, 0 +issFilterReciprocal = scalar, U08, 3403, "", 1, 0, 0, 255, 0 +hpfpPidP = scalar, U16, 3404, "%/kPa", 0.001, 0, 0, 65, 3 +hpfpPidI = scalar, U16, 3406, "%/kPa/lobe", 1.0E-5, 0, 0, 0.65, 5 +hpfpTargetDecay = scalar, U16, 3408, "kPa/s", 1, 0, 0, 65000, 0 +hpfpLobeProfileQuantityBins = array, U08, 3410, [16], "%", 0.5, 0, 0, 100, 1 +hpfpLobeProfileAngle = array, U08, 3426, [16], "deg", 0.5, 0, 0, 125, 1 +hpfpDeadtimeVoltsBins = array, U08, 3442, [8], "volts", 1, 0, 0, 255, 0 +hpfpDeadtimeMS = array, U16, 3450, [8], "ms", 0.001, 0, 0, 65, 3 +hpfpTarget = array, U16, 3466, [10x10], "kPa", 1, 0, 0, 65000, 0 +hpfpTargetLoadBins = array, U16, 3666, [10], "load", 0.1, 0, 0, 6500, 1 +hpfpTargetRpmBins = array, U08, 3686, [10], "RPM", 50.0, 0, 0, 12500, 0 +hpfpCompensation = array, S08, 3696, [10x10], "%", 1, 0, -100, 100, 0 +hpfpCompensationLoadBins = array, U16, 3796, [10], "cc/lobe", 0.001, 0, 0, 65, 3 +hpfpCompensationRpmBins = array, U08, 3816, [10], "RPM", 50.0, 0, 0, 12500, 0 +stepper_raw_output1 = bits, U16, 3826, [0:8], $output_pin_e_list +stepper_raw_output2 = bits, U16, 3828, [0:8], $output_pin_e_list +stepper_raw_output3 = bits, U16, 3830, [0:8], $output_pin_e_list +stepper_raw_output4 = bits, U16, 3832, [0:8], $output_pin_e_list +gearRatio1 = scalar, U16, 3834, "ratio", 0.01, 0, 0, 30, 2 +gearRatio2 = scalar, U16, 3836, "ratio", 0.01, 0, 0, 30, 2 +gearRatio3 = scalar, U16, 3838, "ratio", 0.01, 0, 0, 30, 2 +gearRatio4 = scalar, U16, 3840, "ratio", 0.01, 0, 0, 30, 2 +gearRatio5 = scalar, U16, 3842, "ratio", 0.01, 0, 0, 30, 2 +gearRatio6 = scalar, U16, 3844, "ratio", 0.01, 0, 0, 30, 2 +gearRatio7 = scalar, U16, 3846, "ratio", 0.01, 0, 0, 30, 2 +gearRatio8 = scalar, U16, 3848, "ratio", 0.01, 0, 0, 30, 2 +gearRatio9 = scalar, U16, 3850, "ratio", 0.01, 0, 0, 30, 2 +gearRatio10 = scalar, U16, 3852, "ratio", 0.01, 0, 0, 30, 2 +vvtActivationDelayMs = scalar, U16, 3854, "ms", 1, 0, 0, 65000, 0 +wwCltBins = array, S08, 3856, [8], "deg C", 1, 0, -40, 120, 0 +wwTauCltValues = array, U08, 3864, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaCltValues = array, U08, 3872, [8], "", 0.01, 0, 0, 1, 2 +wwMapBins = array, S08, 3880, [8], "kPa", 1, 0, 0, 250, 0 +wwTauMapValues = array, U08, 3888, [8], "", 0.01, 0, 0, 2.5, 2 +wwBetaMapValues = array, U08, 3896, [8], "", 0.01, 0, 0, 2.5, 2 +torqueTable = array, U08, 3904, [6x6], "Nm", 10.0, 0, 0, 255, 0 +torqueRpmBins = array, U16, 3940, [6], "RPM", 1, 0, 0, 65000, 0 +torqueLoadBins = array, U16, 3952, [6], "Load", 1, 0, 0, 65000, 0 +gearControllerMode = bits, U08, 3964, [0:1], "None", "Button Shift", "INVALID", "INVALID" +transmissionControllerMode = bits, U08, 3965, [0:1], "None", "Simple Transmission", "GM 4L6X", "INVALID" +acrDisablePhase = scalar, U16, 3966, "deg", 1, 0, 0, 720, 0 +auxLinear1_hwChannel = bits, U08, 3968, [0:5], $adc_channel_e_list +auxLinear1_v1 = scalar, F32, 3972, "volts", 1, 0, 0, 10, 2 +auxLinear1_value1 = scalar, F32, 3976, "", 1, 0, 0, 1000000, 2 +auxLinear1_v2 = scalar, F32, 3980, "volts", 1, 0, 0, 10, 2 +auxLinear1_value2 = scalar, F32, 3984, "", 1, 0, 0, 1000000, 2 +auxLinear2_hwChannel = bits, U08, 3988, [0:5], $adc_channel_e_list +auxLinear2_v1 = scalar, F32, 3992, "volts", 1, 0, 0, 10, 2 +auxLinear2_value1 = scalar, F32, 3996, "", 1, 0, 0, 1000000, 2 +auxLinear2_v2 = scalar, F32, 4000, "volts", 1, 0, 0, 10, 2 +auxLinear2_value2 = scalar, F32, 4004, "", 1, 0, 0, 1000000, 2 +tcu_tcc_onoff_solenoid = bits, U16, 4008, [0:8], $output_pin_e_list +tcu_tcc_onoff_solenoid_mode = bits, U08, 4010, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid = bits, U16, 4012, [0:8], $output_pin_e_list +tcu_tcc_pwm_solenoid_mode = bits, U08, 4014, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_tcc_pwm_solenoid_freq = scalar, U16, 4016, "Hz", 1, 0, 0, 3000, 0 +tcu_pc_solenoid_pin = bits, U16, 4018, [0:8], $output_pin_e_list +tcu_pc_solenoid_pin_mode = bits, U08, 4020, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_pc_solenoid_freq = scalar, U16, 4022, "Hz", 1, 0, 0, 3000, 0 +tcu_32_solenoid_pin = bits, U16, 4024, [0:8], $output_pin_e_list +tcu_32_solenoid_pin_mode = bits, U08, 4026, [0:1], "default", "default inverted", "open collector", "open collector inverted" +tcu_32_solenoid_freq = scalar, U16, 4028, "Hz", 1, 0, 0, 3000, 0 +acrPin2 = bits, U16, 4030, [0:8], $output_pin_e_list +etbMinimumPosition = scalar, F32, 4032, "%", 1, 0, 0.01, 100, 2 +tuneHidingKey = scalar, U16, 4036, "", 1, 0, 0, 20000, 0 +vinNumber = string, ASCII, 4038, 17 +highSpeedOffsets = array, U16, 4056, [32], "", 1, 0.00000,0.00,65535, 0, noMsqSave +etbDutyShutdownThreshold = scalar, F32, 4120, "", 1, 0, 0, 100, 0 +fuelPressureSensorMode = bits, U08, 4124, [0:1], "Absolute", "Gauge", "Differential", "INVALID" +luaDigitalInputPins1 = bits, U16, 4126, [0:7], $switch_input_pin_e_list +luaDigitalInputPins2 = bits, U16, 4128, [0:7], $switch_input_pin_e_list +luaDigitalInputPins3 = bits, U16, 4130, [0:7], $switch_input_pin_e_list +luaDigitalInputPins4 = bits, U16, 4132, [0:7], $switch_input_pin_e_list +luaDigitalInputPins5 = bits, U16, 4134, [0:7], $switch_input_pin_e_list +luaDigitalInputPins6 = bits, U16, 4136, [0:7], $switch_input_pin_e_list +luaDigitalInputPins7 = bits, U16, 4138, [0:7], $switch_input_pin_e_list +luaDigitalInputPins8 = bits, U16, 4140, [0:7], $switch_input_pin_e_list +tpsTspCorrValuesBins = array, U08, 4142, [4], "RPM", 50.0, 0, 0, 17500, 0 +ALSMinRPM = scalar, S16, 4146, "rpm", 1, 0, 0, 20000, 0 +ALSMaxRPM = scalar, S16, 4148, "rpm", 1, 0, 0, 20000, 0 +ALSMaxDuration = scalar, S16, 4150, "sec", 1, 0, 0, 10, 0 +ALSMinCLT = scalar, S08, 4152, "C", 1, 0, 0, 90, 0 +ALSMaxCLT = scalar, S08, 4153, "C", 1, 0, 0, 105, 0 +alsMinTimeBetween = scalar, U08, 4154, "", 1, 0, 0, 20000, 0 +alsEtbPosition = scalar, U08, 4155, "", 1, 0, 0, 20000, 0 +acRelayAlternatorDutyAdder = scalar, U08, 4156, "%", 1, 0, 0, 100, 0 +sentEtbType = bits, S08, 4157, [0:1], "None", "GM type 1", "Ford type 1", "Custom" +customSentTpsMin = scalar, U16, 4158, "", 1, 0, 0, 32000, 0 +ALSIdleAdd = scalar, S32, 4160, "%", 1, 0, 0, 100, 2 +ALSEtbAdd = scalar, S32, 4164, "%", 1, 0, 0, 100, 2 +ALSSkipRatio = scalar, F32, 4168, "", 1, 0, 0, 1, 1 +ALSMaxDriverThrottleIntent = scalar, U08, 4172, "%", 1, 0, 0, 10, 0 +ALSActivatePinMode = bits, U08, 4173, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tpsSecondaryMaximum = scalar, U08, 4174, "%", 0.5, 0, 0, 100, 1 +ppsSecondaryMaximum = scalar, U08, 4175, "%", 0.5, 0, 0, 100, 1 +luaDigitalInputPinModes1 = bits, U08, 4176, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes2 = bits, U08, 4177, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes3 = bits, U08, 4178, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes4 = bits, U08, 4179, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes5 = bits, U08, 4180, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes6 = bits, U08, 4181, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes7 = bits, U08, 4182, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +luaDigitalInputPinModes8 = bits, U08, 4183, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +customSentTpsMax = scalar, U16, 4184, "", 1, 0, 0, 32000, 0 +kLineBaudRate = scalar, U16, 4186, "", 1, 0, 0, 32000, 0 +canGpioType = bits, S08, 4188, [0:1], "None", "DRT protocol", "MS protocol", "INVALID" +uiMode = bits, S08, 4189, [0:1], "Full", "Installation", "Tuning", "INVALID" +hpfpPeakPos = scalar, S16, 4190, "deg", 1, 0, -719, 719, 0 +kLinePeriodUs = scalar, S16, 4192, "us", 1, 0, 0, 30000, 0 +rpmSoftLimitWindowSize = scalar, U08, 4194, "RPM", 10.0, 0, 0, 2500, 0 +rpmSoftLimitTimingRetard = scalar, U08, 4195, "deg", 0.2, 0, 0, 50, 1 +rpmSoftLimitFuelAdded = scalar, U08, 4196, "%", 0.2, 0, 0, 50, 1 +rpmHardLimitHyst = scalar, U08, 4197, "RPM", 10.0, 0, 0, 2500, 0 +benchTestOffTime = scalar, U16, 4198, "ms", 0.1, 0, 0, 2000, 1 +boostCutPressureHyst = scalar, U08, 4200, "kPa (absolute)", 0.5, 0, 0, 125, 1 +gearBasedOpenLoopBoostAdder = array, U08, 4201, [10], "%", 0.5, 0, 0, 100, 1 +benchTestCount = scalar, U32, 4212, "", 1, 0, 0, 10000000, 0 +iacByTpsHoldTime = scalar, U08, 4216, "seconds", 0.1, 0, 0, 25, 1 +iacByTpsDecayTime = scalar, U08, 4217, "seconds", 0.1, 0, 0, 25, 1 +tcu_rangeInput1 = bits, U16, 4218, [0:7], $switch_input_pin_e_list +tcu_rangeInput2 = bits, U16, 4220, [0:7], $switch_input_pin_e_list +tcu_rangeInput3 = bits, U16, 4222, [0:7], $switch_input_pin_e_list +tcu_rangeInput4 = bits, U16, 4224, [0:7], $switch_input_pin_e_list +tcu_rangeInput5 = bits, U16, 4226, [0:7], $switch_input_pin_e_list +tcu_rangeInput6 = bits, U16, 4228, [0:7], $switch_input_pin_e_list +tcu_rangeInputMode1 = bits, U08, 4230, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode2 = bits, U08, 4231, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode3 = bits, U08, 4232, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode4 = bits, U08, 4233, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode5 = bits, U08, 4234, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +tcu_rangeInputMode6 = bits, U08, 4235, [0:1], "DEFAULT", "PULLUP", "PULLDOWN", "INVALID" +canVssScaling = scalar, U16, 4236, "ratio", 1.0E-4, 0, 0.5, 1.5, 4 +oilTempSensor_tempC_1 = scalar, F32, 4240, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_2 = scalar, F32, 4244, "*C", 1, 0, -55, 200, 1 +oilTempSensor_tempC_3 = scalar, F32, 4248, "*C", 1, 0, -55, 200, 1 +oilTempSensor_resistance_1 = scalar, F32, 4252, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_2 = scalar, F32, 4256, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_resistance_3 = scalar, F32, 4260, "Ohm", 1, 0, 0, 1000000, 1 +oilTempSensor_bias_resistor = scalar, F32, 4264, "Ohm", 1, 0, 0, 200000, 1 +oilTempSensor_adcChannel = bits, U08, 4268, [0:5], $adc_channel_e_list +fuelTempSensor_tempC_1 = scalar, F32, 4272, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_2 = scalar, F32, 4276, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_tempC_3 = scalar, F32, 4280, "*C", 1, 0, -55, 200, 1 +fuelTempSensor_resistance_1 = scalar, F32, 4284, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_2 = scalar, F32, 4288, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_resistance_3 = scalar, F32, 4292, "Ohm", 1, 0, 0, 1000000, 1 +fuelTempSensor_bias_resistor = scalar, F32, 4296, "Ohm", 1, 0, 0, 200000, 1 +fuelTempSensor_adcChannel = bits, U08, 4300, [0:5], $adc_channel_e_list +ambientTempSensor_tempC_1 = scalar, F32, 4304, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_2 = scalar, F32, 4308, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_tempC_3 = scalar, F32, 4312, "*C", 1, 0, -55, 200, 1 +ambientTempSensor_resistance_1 = scalar, F32, 4316, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_2 = scalar, F32, 4320, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_resistance_3 = scalar, F32, 4324, "Ohm", 1, 0, 0, 1000000, 1 +ambientTempSensor_bias_resistor = scalar, F32, 4328, "Ohm", 1, 0, 0, 200000, 1 +ambientTempSensor_adcChannel = bits, U08, 4332, [0:5], $adc_channel_e_list +compressorDischargeTemperature_tempC_1 = scalar, F32, 4336, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_2 = scalar, F32, 4340, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_tempC_3 = scalar, F32, 4344, "*C", 1, 0, -55, 200, 1 +compressorDischargeTemperature_resistance_1 = scalar, F32, 4348, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_2 = scalar, F32, 4352, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_resistance_3 = scalar, F32, 4356, "Ohm", 1, 0, 0, 1000000, 1 +compressorDischargeTemperature_bias_resistor = scalar, F32, 4360, "Ohm", 1, 0, 0, 200000, 1 +compressorDischargeTemperature_adcChannel = bits, U08, 4364, [0:5], $adc_channel_e_list +throttleInletPressureChannel = bits, U08, 4368, [0:5], $adc_channel_e_list +compressorDischargePressureChannel = bits, U08, 4369, [0:5], $adc_channel_e_list +dacOutputPins1 = bits, U16, 4370, [0:7], $gpio_list +dacOutputPins2 = bits, U16, 4372, [0:7], $gpio_list +speedometerOutputPin = bits, U16, 4374, [0:8], $output_pin_e_list +speedometerPulsePerKm = scalar, U16, 4376, "", 1, 0, 0, 65000, 0 +simulatorCamPosition1 = scalar, U08, 4378, "", 1, 0, 0, 100, 0 +simulatorCamPosition2 = scalar, U08, 4379, "", 1, 0, 0, 100, 0 +simulatorCamPosition3 = scalar, U08, 4380, "", 1, 0, 0, 100, 0 +simulatorCamPosition4 = scalar, U08, 4381, "", 1, 0, 0, 100, 0 +ignKeyAdcChannel = bits, U08, 4382, [0:5], $adc_channel_e_list +spi6MisoMode = bits, U08, 4383, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +triggerVVTGapOverrideFrom1 = scalar, F32, 4384, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom2 = scalar, F32, 4388, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom3 = scalar, F32, 4392, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideFrom4 = scalar, F32, 4396, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo1 = scalar, F32, 4400, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo2 = scalar, F32, 4404, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo3 = scalar, F32, 4408, "ratio", 1, 0, 0, 20, 3 +triggerVVTGapOverrideTo4 = scalar, F32, 4412, "ratio", 1, 0, 0, 20, 3 +tractionControlEtbDrop = array, S08, 4416, [6x6], "%", 1, 0, -100, 0, 0 +maxInjectorDutyInstant = scalar, U08, 4452, "%", 1, 0, 50, 200, 0 +maxInjectorDutySustained = scalar, U08, 4453, "%", 1, 0, 50, 120, 0 +maxInjectorDutySustainedTimeout = scalar, U08, 4454, "sec", 0.1, 0, 0, 5, 1 +injectionPinsStage21 = bits, U16, 4456, [0:8], $output_pin_e_list +injectionPinsStage22 = bits, U16, 4458, [0:8], $output_pin_e_list +injectionPinsStage23 = bits, U16, 4460, [0:8], $output_pin_e_list +injectionPinsStage24 = bits, U16, 4462, [0:8], $output_pin_e_list +injectionPinsStage25 = bits, U16, 4464, [0:8], $output_pin_e_list +injectionPinsStage26 = bits, U16, 4466, [0:8], $output_pin_e_list +injectionPinsStage27 = bits, U16, 4468, [0:8], $output_pin_e_list +injectionPinsStage28 = bits, U16, 4470, [0:8], $output_pin_e_list +injectionPinsStage29 = bits, U16, 4472, [0:8], $output_pin_e_list +injectionPinsStage210 = bits, U16, 4474, [0:8], $output_pin_e_list +injectionPinsStage211 = bits, U16, 4476, [0:8], $output_pin_e_list +injectionPinsStage212 = bits, U16, 4478, [0:8], $output_pin_e_list +tractionControlTimingDrop = array, S08, 4480, [6x6], "Deg", 1, 0, -100, 100, 0 +tractionControlIgnitionSkip = array, S08, 4516, [6x6], "%", 1, 0, 0, 100, 0 +auxSpeed1Multiplier = scalar, F32, 4552, "", 1, 0, 0, 100, 0 +brakeMeanEffectivePressureDifferential = scalar, F32, 4556, "", 1, 0, 0, 100, 0 +spi4mosiPin = bits, U16, 4560, [0:7], $gpio_list +spi4misoPin = bits, U16, 4562, [0:7], $gpio_list +spi4sckPin = bits, U16, 4564, [0:7], $gpio_list +spi5mosiPin = bits, U16, 4566, [0:7], $gpio_list +spi5misoPin = bits, U16, 4568, [0:7], $gpio_list +spi5sckPin = bits, U16, 4570, [0:7], $gpio_list +spi6mosiPin = bits, U16, 4572, [0:7], $gpio_list +spi6misoPin = bits, U16, 4574, [0:7], $gpio_list +spi6sckPin = bits, U16, 4576, [0:7], $gpio_list +spi4SckMode = bits, U08, 4578, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MosiMode = bits, U08, 4579, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi4MisoMode = bits, U08, 4580, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5SckMode = bits, U08, 4581, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MosiMode = bits, U08, 4582, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi5MisoMode = bits, U08, 4583, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6SckMode = bits, U08, 4584, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +spi6MosiMode = bits, U08, 4585, [0:6], "default", "INVALID", "INVALID", "INVALID", "opendrain", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLUP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "PULLDOWN", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +unusedOftenChangesDuringFirmwareUpdate = array, U08, 4586, [120], "units", 1, 0, 0, 1, 0 +etbBiasBins = array, F32, 4708, [8], "target TPS position", 1, 0, 0, 100, 0 +etbBiasValues = array, F32, 4740, [8], "ETB duty cycle bias", 1, 0, -100, 100, 2 +iacPidMultTable = array, U08, 4772, [8x8], "%", 0.05, 0, 0, 10, 2 +iacPidMultLoadBins = array, U08, 4836, [8], "Load", 1, 0, 0, 500, 2 +iacPidMultRpmBins = array, U08, 4844, [8], "RPM", 10.0, 0, 0, 2500, 0 +sparkDwellRpmBins = array, U16, 4852, [8], "RPM", 1, 0, 0, 25000, 0 +sparkDwellValues = array, U16, 4868, [8], "ms", 0.01, 0, 0, 30, 2 +cltIdleRpmBins = array, S08, 4884, [16], "C", 2.0, 0, -40, 200, 0 +cltIdleRpm = array, U08, 4900, [16], "RPM", 20.0, 0, 0, 5000, 0 +cltTimingBins = array, F32, 4916, [8], "C", 1, 0, -100, 250, 1 +cltTimingExtra = array, F32, 4948, [8], "degree", 1, 0, -400, 400, 0 +scriptCurve1Bins = array, F32, 4980, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve1 = array, F32, 5044, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve2Bins = array, F32, 5108, [16], "x", 1, 0, -10000, 10000, 3 +scriptCurve2 = array, F32, 5172, [16], "y", 1, 0, -10000, 10000, 3 +scriptCurve3Bins = array, F32, 5236, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve3 = array, F32, 5268, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve4Bins = array, F32, 5300, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve4 = array, F32, 5332, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve5Bins = array, F32, 5364, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve5 = array, F32, 5396, [8], "y", 1, 0, -10000, 10000, 3 +scriptCurve6Bins = array, F32, 5428, [8], "x", 1, 0, -10000, 10000, 3 +scriptCurve6 = array, F32, 5460, [8], "y", 1, 0, -10000, 10000, 3 +baroCorrPressureBins = array, F32, 5492, [4], "kPa", 1, 0, 0, 200, 2 +baroCorrRpmBins = array, F32, 5508, [4], "RPM", 1, 0, 0, 18000, 0 +baroCorrTable = array, F32, 5524, [4x4], "ratio", 1, 0, 0, 2, 2 +crankingTpsCoef = array, F32, 5588, [8], "Ratio", 1, 0, 0, 700, 2 +crankingTpsBins = array, F32, 5620, [8], "%", 1, 0, 0, 100, 2 +crankingAdvanceBins = array, U16, 5652, [4], "RPM", 1, 0, 0, 25000, 0 +crankingAdvance = array, S16, 5660, [4], "deg", 0.01, 0, -20, 90, 2 +iacCoastingRpmBins = array, U08, 5668, [16], "RPM", 100.0, 0, 0, 25000, 0 +iacCoasting = array, U08, 5684, [16], "%", 0.5, 0, 0, 100, 1 +warning_message = string, ASCII, 5700, 120 +afterstartCoolantBins = array, F32, 5820, [8], "C", 1, 0, -100, 250, 0 +afterstartHoldTime = array, F32, 5852, [8], "Seconds", 1, 0, 0, 100, 1 +afterstartEnrich = array, F32, 5884, [8], "%", 1, 0, 0, 600, 1 +afterstartDecayTime = array, F32, 5916, [8], "Seconds", 1, 0, 0, 100, 1 +boostTableOpenLoop = array, U08, 5948, [8x8], "", 0.5, 0, 0, 100, 1 +boostRpmBins = array, U08, 6012, [8], "RPM", 100.0, 0, 0, 25000, 0 +boostTableClosedLoop = array, U08, 6020, [8x8], "", 2.0, 0, 0, 3000, 0 +boostTpsBins = array, U08, 6084, [8], "%", 1, 0, 0, 100, 0 +pedalToTpsTable = array, U08, 6092, [8x8], "%", 1, 0, 0, 100, 0 +pedalToTpsPedalBins = array, U08, 6156, [8], "%", 1, 0, 0, 120, 0 +pedalToTpsRpmBins = array, U08, 6164, [8], "RPM", 100.0, 0, 0, 25000, 0 +cltCrankingCorrBins = array, F32, 6172, [8], "C", 1, 0, -100, 250, 2 +cltCrankingCorr = array, F32, 6204, [8], "%", 1, 0, 0, 500, 2 +idleAdvanceBins = array, U08, 6236, [8], "RPM", 50.0, 0, 0, 12000, 0 +idleAdvance = array, F32, 6244, [8], "deg", 1, 0, -20, 90, 1 +idleVeRpmBins = array, U08, 6276, [4], "RPM", 10.0, 0, 0, 2500, 0 +idleVeLoadBins = array, U08, 6280, [4], "load", 1, 0, 0, 100, 0 +idleVeTable = array, U16, 6284, [4x4], "%", 0.1, 0, 0, 999, 1 +luaScript = string, ASCII, 6316, 8000 +cltFuelCorrBins = array, F32, 14316, [16], "C", 1, 0, -100, 250, 2 +cltFuelCorr = array, F32, 14380, [16], "ratio", 1, 0, 0, 5, 2 +iatFuelCorrBins = array, F32, 14444, [16], "C", 1, 0, -100, 250, 2 +iatFuelCorr = array, F32, 14508, [16], "ratio", 1, 0, 0, 5, 2 +crankingFuelCoef = array, F32, 14572, [8], "ratio", 1, 0, 0, 50, 2 +crankingFuelBins = array, F32, 14604, [8], "C", 1, 0, -80, 170, 2 +crankingCycleCoef = array, F32, 14636, [8], "ratio", 1, 0, 0, 5, 2 +crankingCycleBins = array, F32, 14668, [8], "counter", 1, 0, -80, 170, 0 +cltIdleCorrBins = array, F32, 14700, [16], "C", 1, 0, -100, 250, 2 +cltIdleCorr = array, F32, 14764, [16], "ratio", 1, 0, 0, 10, 2 +mafDecoding = array, F32, 14828, [32], "kg/hour", 1, 0, -500, 4000, 2 +mafDecodingBins = array, F32, 14956, [32], "V", 1, 0, -5, 150, 2 +ignitionIatCorrTable = array, S08, 15084, [8x8], "deg", 0.1, 0, -25, 25, 1 +ignitionIatCorrTempBins = array, S08, 15148, [8], "C", 1, 0, -40, 120, 0 +ignitionIatCorrLoadBins = array, U08, 15156, [8], "Load", 5.0, 0, 0, 1000, 0 +injectionPhase = array, S16, 15164, [16x16], "deg", 1, 0, -720, 720, 0 +injPhaseLoadBins = array, U16, 15676, [16], "Load", 1, 0, 0, 1000, 0 +injPhaseRpmBins = array, U16, 15708, [16], "RPM", 1, 0, 0, 18000, 0 +tcuSolenoidTable = array, U08, 15740, [10x6], "onoff", 1, 0, 0, 1, 0 +mapEstimateTable = array, U16, 15800, [16x16], "kPa", 0.01, 0, 0, 600, 2 +mapEstimateTpsBins = array, U16, 16312, [16], "% TPS", 0.01, 0, 0, 100, 1 +mapEstimateRpmBins = array, U16, 16344, [16], "RPM", 1, 0, 0, 18000, 0 +vvtTable1 = array, S08, 16376, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable1LoadBins = array, U16, 16440, [8], "L", 1, 0, 0, 1000, 0 +vvtTable1RpmBins = array, U16, 16456, [8], "RPM", 1, 0, 0, 18000, 0 +vvtTable2 = array, S08, 16472, [8x8], "value", 1, 0, -125, 125, 0 +vvtTable2LoadBins = array, U16, 16536, [8], "L", 1, 0, 0, 1000, 0 +vvtTable2RpmBins = array, U16, 16552, [8], "RPM", 1, 0, 0, 18000, 0 +ignitionTable = array, S16, 16568, [16x16], "deg", 0.1, 0, -20, 90, 1 +ignitionLoadBins = array, U16, 17080, [16], "Load", 1, 0, 0, 1000, 0 +ignitionRpmBins = array, U16, 17112, [16], "RPM", 1, 0, 0, 18000, 0 +veTable = array, U16, 17144, [16x16], "%", 0.1, 0, 0, 999, 1 +veLoadBins = array, U16, 17656, [16], "kPa", 1, 0, 0, 1000, 0 +veRpmBins = array, U16, 17688, [16], "RPM", 1, 0, 0, 18000, 0 +#if LAMBDA +lambdaTable = array, U08, 17720, [16x16], "lambda", 0.006802721088435374, 0, 0.6, 1.5, 2 +#else +lambdaTable = array, U08, 17720, [16x16], "afr", 0.1, 0, 0, 25, 1 +#endif +lambdaLoadBins = array, U16, 17976, [16], "", 1, 0, 0, 1000, 0 +lambdaRpmBins = array, U16, 18008, [16], "RPM", 1, 0, 0, 18000, 0 +tpsTpsAccelTable = array, F32, 18040, [8x8], "value", 1, 0, 0, 30000, 2 +tpsTpsAccelFromRpmBins = array, F32, 18296, [8], "from", 1, 0, 0, 30000, 2 +tpsTpsAccelToRpmBins = array, F32, 18328, [8], "to", 1, 0, 0, 25500, 2 +scriptTable1 = array, F32, 18360, [8x8], "value", 1, 0, -100000, 100000, 2 +scriptTable1LoadBins = array, S16, 18616, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable1RpmBins = array, S16, 18632, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable2 = array, U08, 18648, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable2LoadBins = array, S16, 18712, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable2RpmBins = array, S16, 18728, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable3 = array, U08, 18744, [8x8], "value", 1, 0, 0, 255, 0 +scriptTable3LoadBins = array, S16, 18808, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable3RpmBins = array, S16, 18824, [8], "RPM", 1, 0, -32000, 32000, 0 +scriptTable4 = array, U08, 18840, [10x8], "value", 1, 0, 0, 255, 0 +scriptTable4LoadBins = array, S16, 18920, [8], "L", 1, 0, -32000, 32000, 0 +scriptTable4RpmBins = array, S16, 18936, [10], "RPM", 1, 0, -32000, 32000, 0 +ignTrimLoadBins = array, U16, 18956, [4], "", 1, 0, 0, 1000, 0 +ignTrimRpmBins = array, U16, 18964, [4], "rpm", 1, 0, 0, 20000, 0 +ignTrims1_table = array, S08, 18972, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims2_table = array, S08, 18988, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims3_table = array, S08, 19004, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims4_table = array, S08, 19020, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims5_table = array, S08, 19036, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims6_table = array, S08, 19052, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims7_table = array, S08, 19068, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims8_table = array, S08, 19084, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims9_table = array, S08, 19100, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims10_table = array, S08, 19116, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims11_table = array, S08, 19132, [4x4], "", 0.2, 0, -25, 25, 1 +ignTrims12_table = array, S08, 19148, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrimLoadBins = array, U16, 19164, [4], "", 1, 0, 0, 1000, 0 +fuelTrimRpmBins = array, U16, 19172, [4], "rpm", 1, 0, 0, 20000, 0 +fuelTrims1_table = array, S08, 19180, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims2_table = array, S08, 19196, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims3_table = array, S08, 19212, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims4_table = array, S08, 19228, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims5_table = array, S08, 19244, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims6_table = array, S08, 19260, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims7_table = array, S08, 19276, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims8_table = array, S08, 19292, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims9_table = array, S08, 19308, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims10_table = array, S08, 19324, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims11_table = array, S08, 19340, [4x4], "", 0.2, 0, -25, 25, 1 +fuelTrims12_table = array, S08, 19356, [4x4], "", 0.2, 0, -25, 25, 1 +crankingFuelCoefE100 = array, U16, 19372, [8], "ratio", 0.01, 0, 0, 50, 2 +tcu_pcAirmassBins = array, U08, 19388, [8], "Airmass", 0.02, 0, 0, 255, 2 +tcu_pcValsR = array, U08, 19396, [8], "%", 1, 0, 0, 255, 0 +tcu_pcValsN = array, U08, 19404, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals1 = array, U08, 19412, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals2 = array, U08, 19420, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals3 = array, U08, 19428, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals4 = array, U08, 19436, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals12 = array, U08, 19444, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals23 = array, U08, 19452, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals34 = array, U08, 19460, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals21 = array, U08, 19468, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals32 = array, U08, 19476, [8], "%", 1, 0, 0, 255, 0 +tcu_pcVals43 = array, U08, 19484, [8], "%", 1, 0, 0, 255, 0 +tcu_tccTpsBins = array, U08, 19492, [8], "TPS", 1, 0, 0, 255, 0 +tcu_tccLockSpeed = array, U08, 19500, [8], "MPH", 1, 0, 0, 255, 0 +tcu_tccUnlockSpeed = array, U08, 19508, [8], "MPH", 1, 0, 0, 255, 0 +tcu_32SpeedBins = array, U08, 19516, [8], "KPH", 1, 0, 0, 255, 0 +tcu_32Vals = array, U08, 19524, [8], "%", 1, 0, 0, 255, 0 +throttle2TrimTable = array, S08, 19532, [6x6], "%", 0.1, 0, -10, 10, 1 +throttle2TrimTpsBins = array, U08, 19568, [6], "%", 1, 0, 0, 120, 0 +throttle2TrimRpmBins = array, U08, 19574, [6], "RPM", 100.0, 0, 0, 25000, 0 +maxKnockRetardTable = array, U08, 19580, [6x6], "deg", 0.25, 0, 0, 30, 2 +maxKnockRetardLoadBins = array, U08, 19616, [6], "%", 1, 0, 0, 250, 0 +maxKnockRetardRpmBins = array, U08, 19622, [6], "RPM", 100.0, 0, 0, 25000, 0 +ALSTimingRetardTable = array, S16, 19628, [4x4], "deg", 0.1, 0, -60, 0, 1 +alsIgnRetardLoadBins = array, U16, 19660, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnRetardrpmBins = array, U16, 19668, [4], "RPM", 1, 0, 0, 25000, 0 +ALSFuelAdjustment = array, S16, 19676, [4x4], "percent", 0.1, 0, 0, 50, 1 +alsFuelAdjustmentLoadBins = array, U16, 19708, [4], "TPS", 1, 0, 0, 100, 0 +alsFuelAdjustmentrpmBins = array, U16, 19716, [4], "RPM", 1, 0, 0, 25000, 0 +ALSIgnSkipTable = array, S16, 19724, [4x4], "ratio", 10.0, 0, 0, 50, 1 +alsIgnSkipLoadBins = array, U16, 19756, [4], "TPS", 1, 0, 0, 100, 0 +alsIgnSkiprpmBins = array, U16, 19764, [4], "RPM", 1, 0, 0, 25000, 0 +ignBlends1_table = array, S16, 19772, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends1_loadBins = array, U16, 19900, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends1_rpmBins = array, U16, 19916, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends1_blendParameter = bits, U08, 19932, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_yAxisOverride = bits, U08, 19933, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends1_blendBins = array, S16, 19934, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends1_blendValues = array, U08, 19950, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends2_table = array, S16, 19960, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends2_loadBins = array, U16, 20088, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends2_rpmBins = array, U16, 20104, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends2_blendParameter = bits, U08, 20120, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_yAxisOverride = bits, U08, 20121, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends2_blendBins = array, S16, 20122, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends2_blendValues = array, U08, 20138, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends3_table = array, S16, 20148, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends3_loadBins = array, U16, 20276, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends3_rpmBins = array, U16, 20292, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends3_blendParameter = bits, U08, 20308, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_yAxisOverride = bits, U08, 20309, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends3_blendBins = array, S16, 20310, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends3_blendValues = array, U08, 20326, [8], "%", 0.5, 0, 0, 100, 1 +ignBlends4_table = array, S16, 20336, [8x8], "", 0.1, 0, -100, 100, 1 +ignBlends4_loadBins = array, U16, 20464, [8], "Load", 1, 0, 0, 1000, 0 +ignBlends4_rpmBins = array, U16, 20480, [8], "RPM", 1, 0, 0, 18000, 0 +ignBlends4_blendParameter = bits, U08, 20496, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_yAxisOverride = bits, U08, 20497, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +ignBlends4_blendBins = array, S16, 20498, [8], "", 0.1, 0, -1000, 1000, 1 +ignBlends4_blendValues = array, U08, 20514, [8], "%", 0.5, 0, 0, 100, 1 +veBlends1_table = array, S16, 20524, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends1_loadBins = array, U16, 20652, [8], "Load", 1, 0, 0, 1000, 0 +veBlends1_rpmBins = array, U16, 20668, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends1_blendParameter = bits, U08, 20684, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_yAxisOverride = bits, U08, 20685, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends1_blendBins = array, S16, 20686, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends1_blendValues = array, U08, 20702, [8], "%", 0.5, 0, 0, 100, 1 +veBlends2_table = array, S16, 20712, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends2_loadBins = array, U16, 20840, [8], "Load", 1, 0, 0, 1000, 0 +veBlends2_rpmBins = array, U16, 20856, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends2_blendParameter = bits, U08, 20872, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_yAxisOverride = bits, U08, 20873, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends2_blendBins = array, S16, 20874, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends2_blendValues = array, U08, 20890, [8], "%", 0.5, 0, 0, 100, 1 +veBlends3_table = array, S16, 20900, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends3_loadBins = array, U16, 21028, [8], "Load", 1, 0, 0, 1000, 0 +veBlends3_rpmBins = array, U16, 21044, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends3_blendParameter = bits, U08, 21060, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_yAxisOverride = bits, U08, 21061, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends3_blendBins = array, S16, 21062, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends3_blendValues = array, U08, 21078, [8], "%", 0.5, 0, 0, 100, 1 +veBlends4_table = array, S16, 21088, [8x8], "", 0.1, 0, -100, 100, 1 +veBlends4_loadBins = array, U16, 21216, [8], "Load", 1, 0, 0, 1000, 0 +veBlends4_rpmBins = array, U16, 21232, [8], "RPM", 1, 0, 0, 18000, 0 +veBlends4_blendParameter = bits, U08, 21248, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_yAxisOverride = bits, U08, 21249, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +veBlends4_blendBins = array, S16, 21250, [8], "", 0.1, 0, -1000, 1000, 1 +veBlends4_blendValues = array, U08, 21266, [8], "%", 0.5, 0, 0, 100, 1 +throttleEstimateEffectiveAreaBins = array, U16, 21276, [12], "%", 0.1, 0, 0, 100, 1 +throttleEstimateEffectiveAreaValues = array, U16, 21300, [12], "g/s", 0.1, 0, 0, 6500, 1 +boostOpenLoopBlends1_table = array, S16, 21324, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends1_loadBins = array, U16, 21452, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends1_rpmBins = array, U16, 21468, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends1_blendParameter = bits, U08, 21484, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_yAxisOverride = bits, U08, 21485, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends1_blendBins = array, S16, 21486, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends1_blendValues = array, U08, 21502, [8], "%", 0.5, 0, 0, 100, 1 +boostOpenLoopBlends2_table = array, S16, 21512, [8x8], "", 0.1, 0, -100, 100, 1 +boostOpenLoopBlends2_loadBins = array, U16, 21640, [8], "Load", 1, 0, 0, 1000, 0 +boostOpenLoopBlends2_rpmBins = array, U16, 21656, [8], "RPM", 1, 0, 0, 18000, 0 +boostOpenLoopBlends2_blendParameter = bits, U08, 21672, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_yAxisOverride = bits, U08, 21673, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostOpenLoopBlends2_blendBins = array, S16, 21674, [8], "", 0.1, 0, -1000, 1000, 1 +boostOpenLoopBlends2_blendValues = array, U08, 21690, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends1_table = array, S16, 21700, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends1_loadBins = array, U16, 21828, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends1_rpmBins = array, U16, 21844, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends1_blendParameter = bits, U08, 21860, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_yAxisOverride = bits, U08, 21861, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends1_blendBins = array, S16, 21862, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends1_blendValues = array, U08, 21878, [8], "%", 0.5, 0, 0, 100, 1 +boostClosedLoopBlends2_table = array, S16, 21888, [8x8], "", 0.1, 0, -100, 100, 1 +boostClosedLoopBlends2_loadBins = array, U16, 22016, [8], "Load", 1, 0, 0, 1000, 0 +boostClosedLoopBlends2_rpmBins = array, U16, 22032, [8], "RPM", 1, 0, 0, 18000, 0 +boostClosedLoopBlends2_blendParameter = bits, U08, 22048, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_yAxisOverride = bits, U08, 22049, [0:4], "Zero", "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Accel Pedal", "Battery Voltage", "VVT 1 I", "VVT 1 E", "VVT 2 I", "VVT 2 E", "Ethanol (Flex) %", "Aux Linear 1", "Aux Linear 2", "GPPWM Output 1", "GPPWM Output 2", "GPPWM Output 3", "GPPWM Output 4", "Lua Gauge 1", "Lua Gauge 2", "RPM", "Gear (detected)", "Baro pressure", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +boostClosedLoopBlends2_blendBins = array, S16, 22050, [8], "", 0.1, 0, -1000, 1000, 1 +boostClosedLoopBlends2_blendValues = array, U08, 22066, [8], "%", 0.5, 0, 0, 100, 1 +tcu_rangeP = array, U08, 22076, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeR = array, U08, 22082, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeN = array, U08, 22088, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeD = array, U08, 22094, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM = array, U08, 22100, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM3 = array, U08, 22106, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM2 = array, U08, 22112, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeM1 = array, U08, 22118, [6], "level", 1, 0, 0, 3, 0 +tcu_rangePlus = array, U08, 22124, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeMinus = array, U08, 22130, [6], "level", 1, 0, 0, 3, 0 +tcu_rangeLow = array, U08, 22136, [6], "level", 1, 0, 0, 3, 0 +lambdaMaxDeviationTable = array, U08, 22142, [4x4], "lambda", 0.01, 0, 0, 1, 2 +lambdaMaxDeviationLoadBins = array, U16, 22158, [4], "", 1, 0, 0, 1000, 0 +lambdaMaxDeviationRpmBins = array, U16, 22166, [4], "RPM", 1, 0, 0, 18000, 0 +injectorStagingTable = array, U08, 22174, [6x6], "%", 1, 0, 0, 90, 0 +injectorStagingLoadBins = array, U16, 22210, [6], "", 1, 0, 0, 1000, 0 +injectorStagingRpmBins = array, U16, 22222, [6], "RPM", 1, 0, 0, 18000, 0 +; total TS size = 22236 +[SettingContextHelp] + engineType = "http://rusefi.com/wiki/index.php?title=Manual:Engine_Type\nset engine_type X" + sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" + launchRpm = "A secondary Rev limit engaged by the driver to help launch the vehicle faster" + rpmHardLimit = "set rpm_hard_limit X" + engineSnifferRpmThreshold = "Engine sniffer would be disabled above this rpm\nset engineSnifferRpmThreshold X" + multisparkMaxRpm = "Disable multispark above this engine speed." + maxAcRpm = "Above this RPM, disable AC. Set to 0 to disable check." + maxAcTps = "Above this TPS, disable AC. Set to 0 to disable check." + maxAcClt = "Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check." + multisparkMaxSparkingAngle = "This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC." + multisparkMaxExtraSparkCount = "Configures the maximum number of extra sparks to fire (does not include main spark)" + injector_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injector_battLagCorr = "ms delay between injector open and close dead times" + injectorSecondary_flow = "This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min" + injectorSecondary_battLagCorr = "ms delay between injector open and close dead times" + isForcedInduction = "Does the vehicle have a turbo or supercharger?" + useFordRedundantTps = "On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + enableFan1WithAc = "Turn on this fan when AC is on." + enableFan2WithAc = "Turn on this fan when AC is on." + disableFan1WhenStopped = "Inhibit operation of this fan while the engine is not running." + disableFan2WhenStopped = "Inhibit operation of this fan while the engine is not running." + enableTrailingSparks = "Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines)." + etb_use_two_wires = "TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode." + isDoubleSolenoidIdle = "Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position." + useCicPidForIdle = "Switch between Industrial and Cic PID implementation" + useSeparateIdleTablesForCrankingTaper = "This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration)." + doNotFilterTriggerEdgeNoise = "Detect double trigger edges" + useRunningMathForCranking = "For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table)." + displayLogicLevelsInEngineSniffer = "Shall we display real life signal or just the part consumed by trigger decoder.\nApplies to both trigger and cam/vvt input.\n\nenable logic_level_trigger" + verboseCan = "Print incoming and outgoing first bus CAN messages in rusEFI console" + artificialTestMisfire = "Experimental setting that will cause a misfire\nDO NOT ENABLE." + useFordRedundantPps = "On some Ford and Toyota vehicles one of the pedal sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor." + useSpiImu = "If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages" + tpsMin = "Closed throttle, 1 volt = 200 units.\nSee also tps1_1AdcChannel\nset tps_min X" + tpsMax = "Full throttle.\nSee also tps1_1AdcChannel\nset tps_max X" + tpsErrorDetectionTooLow = "TPS error detection: what throttle % is unrealistically low?\nAlso used for accelerator pedal error detection if so equipped." + tpsErrorDetectionTooHigh = "TPS error detection: what throttle % is unrealistically high?\nAlso used for accelerator pedal error detection if so equipped." + cranking_baseFuel = "Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.\nA reasonable starting point is 60mg per liter per cylinder.\nex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel." + cranking_rpm = "This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm. \nset cranking_rpm X" + ignitionDwellForCrankingMs = "Dwell duration while cranking" + etbRevLimitStart = "Once engine speed passes this value, start reducing ETB angle." + etbRevLimitRange = "This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed." + map_samplingAngle = "MAP averaging sampling start crank degree angle" + map_samplingWindow = "MAP averaging angle crank degree duration" + map_sensor_lowValue = "kPa value at low volts" + map_sensor_highValue = "kPa value at high volts" + clt_tempC_1 = "these values are in Celcius" + clt_bias_resistor = "Pull-up resistor value on your board" + iat_tempC_1 = "these values are in Celcius" + iat_bias_resistor = "Pull-up resistor value on your board" + hip9011PrescalerAndSDO = "value '6' for 8MHz hw osc\nread hip9011 datasheet for details\ntodo split into two bit fields" + knockBandCustom = "We calculate knock band based of cylinderBore\n Use this to override - kHz knock band override\nRequires power cycling to effect" + displacement = "Engine displacement in litres" + cylindersCount = "Number of cylinder the engine has." + cylinderBore = "Cylinder diameter in mm." + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nAlpha-N means drive by TPS commonly only used for NA engines\nSpeed Density requires MAP sensor and is the default choice for may installs\nMAF air charge is a cylinder filling based method that uses a mass air flow sensor." + crankingInjectionMode = "This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous"." + injectionMode = "This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups." + boostControlMinRpm = "Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinTps = "Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + boostControlMinMap = "Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases." + crankingTimingAngle = "Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.\nThere is tapering towards running timing advance\nset cranking_timing_angle X" + ignitionMode = "Single coil = distributor\nIndividual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode\nWasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder\nTwo distributors = A pair of distributors, found on some BMW, Toyota and other engines\nset ignition_mode X" + gapTrackingLengthOverride = "How many consecutive gap rations have to match expected ranges for sync to happen" + maxIdleVss = "Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed)." + minOilPressureAfterStart = "Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting." + timingMode = "Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light)." + fixedModeTiming = "This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing\nThis mode is useful when adjusting distributor location." + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nPositive value in case of synchronization point before TDC and negative in case of synchronization point after TDC\n.Knowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" + analogInputDividerCoefficient = "Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v." + vbattDividerCoeff = "This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading." + fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fanOffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + driveWheelRevPerKm = "Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size." + canNbcType = "set can_mode X" + canSleepPeriodMs = "CANbus thread period in ms" + tps1_1AdcChannel = "First throttle body, first sensor. See also pedalPositionAdcChannel" + vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." + fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + tps2_1AdcChannel = "Second throttle body position sensor, single channel so far\nset_analog_input_pin tps2 X" + idle_derivativeFilterLoss = "0.1 is a good default value" + trailingSparkAngle = "just a temporary solution" + trigger_type = "https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers\nset trigger_type X" + airByRpmTaper = "Extra air taper amount" + boostControlSafeDutyCycle = "Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met." + camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 1" + camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 2" + camInputs3 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 3" + camInputs4 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts. 4" + throttlePedalPositionAdcChannel = "Electronic throttle pedal position first channel\nSee throttlePedalPositionSecondAdcChannel for second channel\nSee also tps1_1AdcChannel\nset_analog_input_pin pps X\nSee throttlePedalUpVoltage and throttlePedalWOTVoltage" + etbSplit = "TPS/PPS error threshold" + throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" + baroSensor_lowValue = "kPa value at low volts" + baroSensor_highValue = "kPa value at high volts" + manIdlePosition = "Value between 0 and 100 used in Manual mode" + knockRetardAggression = "Ignition timing to remove when a knock event occurs." + knockRetardReapplyRate = "After a knock event, reapply timing at this rate." + engineSyncCam = "Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync." + vssFilterReciprocal = "Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response." + vssGearRatio = "Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0." + vssToothCount = "Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft." + idleVeOverrideMode = "Override the Y axis (load) value used for only the Idle VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectionPins1 = "injectionPins 1" + injectionPins2 = "injectionPins 2" + injectionPins3 = "injectionPins 3" + injectionPins4 = "injectionPins 4" + injectionPins5 = "injectionPins 5" + injectionPins6 = "injectionPins 6" + injectionPins7 = "injectionPins 7" + injectionPins8 = "injectionPins 8" + injectionPins9 = "injectionPins 9" + injectionPins10 = "injectionPins 10" + injectionPins11 = "injectionPins 11" + injectionPins12 = "injectionPins 12" + ignitionPins1 = "ignitionPins 1" + ignitionPins2 = "ignitionPins 2" + ignitionPins3 = "ignitionPins 3" + ignitionPins4 = "ignitionPins 4" + ignitionPins5 = "ignitionPins 5" + ignitionPins6 = "ignitionPins 6" + ignitionPins7 = "ignitionPins 7" + ignitionPins8 = "ignitionPins 8" + ignitionPins9 = "ignitionPins 9" + ignitionPins10 = "ignitionPins 10" + ignitionPins11 = "ignitionPins 11" + ignitionPins12 = "ignitionPins 12" + gapVvtTrackingLengthOverride = "How many consecutive VVT gap rations have to match expected ranges for sync to happen" + malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + clutchDownPin = "Some cars have a switch to indicate that clutch pedal is all the way down" + digitalPotentiometerChipSelect1 = "digitalPotentiometerChipSelect 1" + digitalPotentiometerChipSelect2 = "digitalPotentiometerChipSelect 2" + digitalPotentiometerChipSelect3 = "digitalPotentiometerChipSelect 3" + digitalPotentiometerChipSelect4 = "digitalPotentiometerChipSelect 4" + digitalPotentiometerSpiDevice = "Digital Potentiometer is used by stock ECU stimulation code" + auxFastSensor1_adcChannel = "Useful in Research&Development phase" + tps1_2AdcChannel = "First throttle body, second sensor." + tps2_2AdcChannel = "Second throttle body, second sensor." + throttlePedalPositionSecondAdcChannel = "Electronic throttle pedal position input\nSecond channel\nSee also tps1_1AdcChannel\nSee throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage" + afr_type = "AFR, WBO, EGO - whatever you like to call it" + mc33810_cs1 = "mc33810_cs 1" + idle_antiwindupFreq = "0.1 is a good default value" + triggerInputPins1 = "triggerInputPins 1" + triggerInputPins2 = "triggerInputPins 2" + mc33_t_min_boost = "Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit." + canTxPin = "set_can_tx_pin X" + canRxPin = "set_can_rx_pin X" + acIdleExtraOffset = "Additional idle % while A/C is active" + finalGearRatio = "Ratio between the wheels and your transmission output." + wastegatePositionMin = "Voltage when the wastegate is closed.\nYou probably don't have one of these!" + wastegatePositionMax = "Voltage when the wastegate is fully open.\nYou probably don't have one of these!\n1 volt = 1000 units" + idlePositionMin = "Voltage when the idle valve is closed.\nYou probably don't have one of these!" + idlePositionMax = "Voltage when the idle valve is open.\nYou probably don't have one of these!\n1 volt = 1000 units" + tunerStudioSerialSpeed = "Secondary TTL channel baud rate" + compressionRatio = "Just for reference really, not taken into account by any logic at this point" + triggerSimulatorPins1 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 1" + triggerSimulatorPins2 = "Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.\nSee also directSelfStimulation which is different. 2" + triggerSimulatorPinModes1 = "triggerSimulatorPinModes 1" + triggerSimulatorPinModes2 = "triggerSimulatorPinModes 2" + o2heaterPin = "On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking." + isSdCardEnabled = "enable sd/disable sd" + rusefiVerbose29b = "Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format." + useStepperIdle = "This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed." + enableVerboseCanTx = "CAN broadcast using custom rusEFI protocol\nenable can_broadcast/disable can_broadcast" + measureMapOnlyInOneCylinder = "Useful for individual intakes" + isFasterEngineSpinUpEnabled = "If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled." + coastingFuelCutEnabled = "This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing." + useIacTableForCoasting = "Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle." + disableEtbWhenEngineStopped = "Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary." + pauseEtbControl = "Disable the electronic throttle motor and DC idle motor for testing.\nThis mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle." + enableAemXSeries = "AEM X-Series or rusEFI Wideband" + logicAnalyzerPins1 = "logicAnalyzerPins 1" + logicAnalyzerPins2 = "logicAnalyzerPins 2" + logicAnalyzerPins3 = "logicAnalyzerPins 3" + logicAnalyzerPins4 = "logicAnalyzerPins 4" + mc33_hvolt = "Boost Voltage" + minimumBoostClosedLoopMap = "Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost." + acFanPin = "Optional Radiator Fan used with A/C" + idlePidRpmUpperLimit = "How far above idle speed do we consider idling, i.e. coasting detection threshold.\nFor example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle." + applyNonlinearBelowPulse = "Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment." + clutchUpPin = "Some vehicles have a switch to indicate that clutch pedal is all the way up" + max31855_cs1 = "max31855_cs 1" + max31855_cs2 = "max31855_cs 2" + max31855_cs3 = "max31855_cs 3" + max31855_cs4 = "max31855_cs 4" + max31855_cs5 = "max31855_cs 5" + max31855_cs6 = "max31855_cs 6" + max31855_cs7 = "max31855_cs 7" + max31855_cs8 = "max31855_cs 8" + flexSensorPin = "Continental/GM flex fuel sensor, 50-150hz type" + stoichRatioSecondary = "Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0" + etbMaximumPosition = "Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open." + sdCardLogFrequency = "Rate the ECU will log to the SD card, in hz (log lines per second)." + starterRelayDisablePinMode = "On some vehicles we can disable starter once engine is already running" + secondSolenoidPin = "Some Subaru and some Mazda use double-solenoid idle air valve" + startStopButtonPin = "See also starterControlPin" + mapMinBufferLength = "This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies." + idlePidDeactivationTpsThreshold = "Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%." + startCrankingDuration = "Maximum time to crank starter when start/stop button is pressed" + triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" + lambdaProtectionTimeout = "Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed" + scriptSetting1 = "scriptSetting 1" + scriptSetting2 = "scriptSetting 2" + scriptSetting3 = "scriptSetting 3" + scriptSetting4 = "scriptSetting 4" + scriptSetting5 = "scriptSetting 5" + scriptSetting6 = "scriptSetting 6" + scriptSetting7 = "scriptSetting 7" + scriptSetting8 = "scriptSetting 8" + cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" + sensorChartMode = "rusEFI console Sensor Sniffer mode" + useHbridgesToDriveIdleStepper = "If enabled we use two H-bridges to drive stepper idle air valve" + consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only" + enableCanVss = "Read VSS from OEM CAN bus according to selected CAN vehicle configuration." + stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise." + verboseVVTDecoding = "Verbose info in console below engineSnifferRpmThreshold\nenable vvt_details" + invertCamVVTSignal = "get invertCamVVTSignal" + alphaNUseIat = "In Alpha-N mode, compensate for air temperature." + useRawOutputToDriveIdleStepper = "If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils" + verboseCan2 = "Print incoming and outgoing second bus CAN messages in rusEFI console" + etbIo1_controlPin = "Acts as EN pin in two-wire mode" + etbIo2_controlPin = "Acts as EN pin in two-wire mode" + boostControlPin = "Wastegate control Solenoid" + boostPid_offset = "Linear addition to PID logic" + boostPid_periodMs = "PID dTime" + boostPid_minValue = "Output Min Duty Cycle" + boostPid_maxValue = "Output Max Duty Cycle" + launchSpeedThreshold = "Launch disabled above this speed if setting is above zero" + launchTimingRpmRange = "Range from Launch RPM for Timing Retard to activate" + launchSparkSkipPercent = "Spark Skip Transition Target" + 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_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs1_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs1_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs2_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs2_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs2_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs3_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs3_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs3_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stft_cellCfgs4_maxAdd = "Maximum % that the short term fuel trim can add" + stft_cellCfgs4_maxRemove = "Maximum % that the short term fuel trim can remove" + stft_cellCfgs4_timeConstant = "Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second." + stepperDcIo1_controlPin = "Acts as EN pin in two-wire mode" + stepperDcIo2_controlPin = "Acts as EN pin in two-wire mode" + engineMake = "For example, BMW, GM or Chevrolet\nREQUIRED for rusEFI Online" + engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online" + vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online" + tcu_solenoid1 = "tcu_solenoid 1" + tcu_solenoid2 = "tcu_solenoid 2" + tcu_solenoid3 = "tcu_solenoid 3" + tcu_solenoid4 = "tcu_solenoid 4" + tcu_solenoid5 = "tcu_solenoid 5" + tcu_solenoid6 = "tcu_solenoid 6" + etbFunctions1 = "etbFunctions 1" + etbFunctions2 = "etbFunctions 2" + luaOutputPins1 = "luaOutputPins 1" + luaOutputPins2 = "luaOutputPins 2" + luaOutputPins3 = "luaOutputPins 3" + luaOutputPins4 = "luaOutputPins 4" + luaOutputPins5 = "luaOutputPins 5" + luaOutputPins6 = "luaOutputPins 6" + luaOutputPins7 = "luaOutputPins 7" + luaOutputPins8 = "luaOutputPins 8" + vvtOffsets1 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 1" + vvtOffsets2 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 2" + vvtOffsets3 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 3" + vvtOffsets4 = "Angle between cam sensor and VVT zero position\nset vvt_offset X 4" + gpPwmNote1 = "gpPwmNote 1" + gpPwmNote2 = "gpPwmNote 2" + gpPwmNote3 = "gpPwmNote 3" + gpPwmNote4 = "gpPwmNote 4" + widebandOnSecondBus = "Select which bus the wideband controller is attached to." + fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling." + oddFireEngine = "On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines." + silentTriggerError = "Sometimes we have a performance issue while printing error" + canReadEnabled = "enable can_read/disable can_read" + canWriteEnabled = "enable can_write/disable can_write. See also can1ListenMode" + tachPulseDurationAsDutyCycle = "Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%" + isAlternatorControlEnabled = "This enables smart alternator control and activates the extra alternator settings." + invertPrimaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the primary engine speed sensor." + invertSecondaryTriggerSignal = "https://wiki.rusefi.com/Trigger-Configuration-Guide\nThis setting flips the signal from the secondary engine speed sensor." + cutSparkOnHardLimit = "Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer." + launchSparkCutEnable = "This is the Cut Mode normally used" + verboseIsoTp = "Are you a developer troubleshooting TS over CAN ISO/TP?" + skippedWheelOnCam = "Where is your primary skipped wheel located?" + acSwitch = "A/C button input" + etbNeutralPosition = "Expected neutral position" + idleMode = "See also idleRpmPid" + isCylinderCleanupEnabled = "When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders." + complexWallModel = "Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?" + alwaysInstantRpm = "RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution" + overrideCrankingIacSetting = "If enabled, use separate temperature multiplier table for cranking idle position.\nIf disabled, use normal running multiplier table applied to the cranking base position." + useSeparateAdvanceForIdle = "This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed." + useSeparateVeForIdle = "This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling." + verboseTriggerSynchDetails = "Verbose info in console below engineSnifferRpmThreshold\nenable trigger_details" + isManualSpinningMode = "Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed" + twoWireBatchIgnition = "This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark)." + useSeparateAdvanceForCranking = "In Constant mode, timing is automatically tapered to running as RPM increases.\nIn Table mode, the "Cranking ignition advance" table is used directly." + useAdvanceCorrectionsForCranking = "This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).\nYou probably don't need this." + flexCranking = "Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor." + useIacPidMultTable = "This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller" + launchSmoothRetard = "Interpolates the Ignition Retard from 0 to 100% within the RPM Range" + isPhaseSyncRequiredForIgnition = "Some engines are OK running semi-random sequential while other engine require phase synchronization" + useCltBasedRpmLimit = "If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value." + forceO2Heating = "If enabled, don't wait for engine start to heat O2 sensors. WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element." + invertVvtControlIntake = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + invertVvtControlExhaust = "If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'." + sdTriggerLog = "'Trigger' mode will write a high speed log of trigger events (warning: uses lots of space!). 'Normal' mode will write a standard MLG of sensors, engine function, etc. similar to the one captured in TunerStudio." + camInputsDebug1 = "camInputsDebug 1" + camInputsDebug2 = "camInputsDebug 2" + camInputsDebug3 = "camInputsDebug 3" + camInputsDebug4 = "camInputsDebug 4" + acIdleRpmTarget = "Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling." + warningPeriod = "set warningPeriod X" + noAccelAfterHardLimitPeriodSecs = "TODO: finish this #413" + mapAveragingSchedulingAtIndex = "At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback." + tachPulseDuractionMs = "Duration in ms or duty cycle depending on selected mode" + wwaeTau = "Length of time the deposited wall fuel takes to dissipate after the start of acceleration." + alternatorControl_offset = "Linear addition to PID logic" + alternatorControl_periodMs = "PID dTime" + alternatorControl_minValue = "Output Min Duty Cycle" + alternatorControl_maxValue = "Output Max Duty Cycle" + etb_offset = "Linear addition to PID logic" + etb_periodMs = "PID dTime" + etb_minValue = "Output Min Duty Cycle" + etb_maxValue = "Output Max Duty Cycle" + triggerInputDebugPins1 = "triggerInputDebugPins 1" + triggerInputDebugPins2 = "triggerInputDebugPins 2" + airTaperRpmRange = "RPM range above upper limit for extra air taper" + tps2Min = "Closed throttle#2. todo: extract these two fields into a structure\nSee also tps2_1AdcChannel\nset tps2_min X" + tps2Max = "Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\nSee also tps1_1AdcChannel\nset tps2_max X" + starterControlPin = "See also startStopButtonPin" + mapErrorDetectionTooLow = "kPa value which is too low to be true" + mapErrorDetectionTooHigh = "kPa value which is too high to be true" + multisparkSparkDuration = "How long to wait for the spark to fire before recharging the coil for another spark." + multisparkDwell = "This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table." + idleRpmPid_offset = "Linear addition to PID logic" + idleRpmPid_periodMs = "PID dTime" + idleRpmPid_minValue = "Output Min Duty Cycle" + idleRpmPid_maxValue = "Output Max Duty Cycle" + wwaeBeta = "0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment." + binarySerialTxPin = "See also EFI_CONSOLE_RX_BRAIN_PIN" + auxValves1 = "auxValves 1" + auxValves2 = "auxValves 2" + throttlePedalWOTVoltage = "Pedal in the floor" + startUpFuelPumpDuration = "on IGN voltage detection turn fuel pump on to build fuel pressure" + idlePidRpmDeadZone = "If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation" + targetVBatt = "This is the target battery voltage the alternator PID control will attempt to maintain" + mc33810DisableRecoveryMode = "See Over/Undervoltage Shutdown/Retry bit in documentation" + useVssAsSecondWheelSpeed = "VSS and auxSpeed1 or auxSpeed1 with auxSpeed2?" + 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 = "IAC Value added when coasting and transitioning into idle." + auxSerialTxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + auxSerialRxPin = "Auxiliary sensor serial, not to be confused with secondary calibration serial" + tpsAccelLookback = "How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs." + coastingFuelCutVssLow = "Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + coastingFuelCutVssHigh = "Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears." + noFuelTrimAfterDfcoTime = "Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut." + tpsAccelEnrichmentThreshold = "Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in." + auxSpeedSensorInputPin1 = "auxSpeedSensorInputPin 1" + auxSpeedSensorInputPin2 = "auxSpeedSensorInputPin 2" + injectionTimingMode = "Sets what part of injection's is controlled by the injection phase table." + debugMode = "See http://rusefi.com/s/debugmode" + fan1ExtraIdle = "Additional idle % when fan #1 is active" + uartConsoleSerialSpeed = "Band rate for primary TTL" + tpsDecelEnleanmentThreshold = "For decel we simply multiply delta of TPS and tFor decel we do not use table?!" + tpsDecelEnleanmentMultiplier = "Magic multiplier, we multiply delta of TPS and get fuel squirt duration" + throttlePedalSecondaryWOTVoltage = "Pedal in the floor" + canBaudRate = "set can_baudrate" + veOverrideMode = "Override the Y axis (load) value used for the VE table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + afrOverrideMode = "Override the Y axis (load) value used for the AFR table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + mc33_hpfp_i_hold_off = "How long to deactivate power when hold current is reached before applying power again" + mc33_hpfp_max_hold = "Maximum amount of time the solenoid can be active before assuming a programming error" + stepperDcInvertedPins = "Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)" + canOpenBLT = "Allow OpenBLT on Primary CAN" + can2OpenBLT = "Allow OpenBLT on Secondary CAN" + injectorFlowAsMassFlow = "Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s)." + can1ListenMode = "ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled" + benchTestOnTime = "Duration of each test pulse" + can2TxPin = "set_can2_tx_pin X" + can2RxPin = "set_can2_rx_pin X" + ignOverrideMode = "Override the Y axis (load) value used for the ignition table.\nAdvanced users only: If you aren't sure you need this, you probably don't need this." + injectorPressureType = "Select which fuel pressure sensor measures the pressure of the fuel at your injectors." + boostCutPressure = "MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut." + fixedTiming = "Fixed timing, useful for TDC testing" + mapLowValueVoltage = "MAP voltage for low point" + mapHighValueVoltage = "MAP voltage for low point" + egoValueShift = "EGO value correction" + vvtPins1 = "VVT output solenoid pin for this cam 1" + vvtPins2 = "VVT output solenoid pin for this cam 2" + vvtPins3 = "VVT output solenoid pin for this cam 3" + vvtPins4 = "VVT output solenoid pin for this cam 4" + crankingIACposition = "This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling." + minimumIgnitionTiming = "Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint." + maximumIgnitionTiming = "Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC" + vvtMode1 = "set vvt_mode X 1" + vvtMode2 = "set vvt_mode X 2" + fan2ExtraIdle = "Additional idle % when fan #2 is active" + primingDelay = "Delay to allow fuel pressure to build before firing the priming pulse." + auxAnalogInputs1 = "auxAnalogInputs 1" + auxAnalogInputs2 = "auxAnalogInputs 2" + auxAnalogInputs3 = "auxAnalogInputs 3" + auxAnalogInputs4 = "auxAnalogInputs 4" + auxAnalogInputs5 = "auxAnalogInputs 5" + auxAnalogInputs6 = "auxAnalogInputs 6" + auxAnalogInputs7 = "auxAnalogInputs 7" + auxAnalogInputs8 = "auxAnalogInputs 8" + trailingCoilPins1 = "trailingCoilPins 1" + trailingCoilPins2 = "trailingCoilPins 2" + trailingCoilPins3 = "trailingCoilPins 3" + trailingCoilPins4 = "trailingCoilPins 4" + trailingCoilPins5 = "trailingCoilPins 5" + trailingCoilPins6 = "trailingCoilPins 6" + trailingCoilPins7 = "trailingCoilPins 7" + trailingCoilPins8 = "trailingCoilPins 8" + trailingCoilPins9 = "trailingCoilPins 9" + trailingCoilPins10 = "trailingCoilPins 10" + trailingCoilPins11 = "trailingCoilPins 11" + trailingCoilPins12 = "trailingCoilPins 12" + injectorCompensationMode = "None = I have a MAP-referenced fuel pressure regulator\nFixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)\nSensed rail pressure = I have a fuel pressure sensor" + fuelReferencePressure = "This is the pressure at which your injector flow is known.\nFor example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here." + auxTempSensor1_tempC_1 = "these values are in Celcius" + auxTempSensor1_bias_resistor = "Pull-up resistor value on your board" + auxTempSensor2_tempC_1 = "these values are in Celcius" + auxTempSensor2_bias_resistor = "Pull-up resistor value on your board" + etbWastegatePid_offset = "Linear addition to PID logic" + etbWastegatePid_periodMs = "PID dTime" + etbWastegatePid_minValue = "Output Min Duty Cycle" + etbWastegatePid_maxValue = "Output Max Duty Cycle" + stepperNumMicroSteps = "For micro-stepping, make sure that PWM frequency (etbFreq) is high enough" + stepperMinDutyCycle = "Use to limit the current when the stepper motor is idle, not moving (100% = no limit)" + stepperMaxDutyCycle = "Use to limit the max.current through the stepper motor (100% = no limit)" + timing_offset_cylinder1 = "per-cylinder ignition and fueling timing correction for uneven engines 1" + timing_offset_cylinder2 = "per-cylinder ignition and fueling timing correction for uneven engines 2" + timing_offset_cylinder3 = "per-cylinder ignition and fueling timing correction for uneven engines 3" + timing_offset_cylinder4 = "per-cylinder ignition and fueling timing correction for uneven engines 4" + timing_offset_cylinder5 = "per-cylinder ignition and fueling timing correction for uneven engines 5" + timing_offset_cylinder6 = "per-cylinder ignition and fueling timing correction for uneven engines 6" + timing_offset_cylinder7 = "per-cylinder ignition and fueling timing correction for uneven engines 7" + timing_offset_cylinder8 = "per-cylinder ignition and fueling timing correction for uneven engines 8" + timing_offset_cylinder9 = "per-cylinder ignition and fueling timing correction for uneven engines 9" + timing_offset_cylinder10 = "per-cylinder ignition and fueling timing correction for uneven engines 10" + timing_offset_cylinder11 = "per-cylinder ignition and fueling timing correction for uneven engines 11" + timing_offset_cylinder12 = "per-cylinder ignition and fueling timing correction for uneven engines 12" + spi1MosiMode = "Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc." + mc33816_rstb = "ResetB" + brakePedalPin = "Brake pedal switch" + auxPid1_offset = "Linear addition to PID logic" + auxPid1_periodMs = "PID dTime" + auxPid1_minValue = "Output Min Duty Cycle" + auxPid1_maxValue = "Output Max Duty Cycle" + auxPid2_offset = "Linear addition to PID logic" + auxPid2_periodMs = "PID dTime" + auxPid2_minValue = "Output Min Duty Cycle" + auxPid2_maxValue = "Output Max Duty Cycle" + injectorCorrectionPolynomial1 = "injectorCorrectionPolynomial 1" + injectorCorrectionPolynomial2 = "injectorCorrectionPolynomial 2" + injectorCorrectionPolynomial3 = "injectorCorrectionPolynomial 3" + injectorCorrectionPolynomial4 = "injectorCorrectionPolynomial 4" + injectorCorrectionPolynomial5 = "injectorCorrectionPolynomial 5" + injectorCorrectionPolynomial6 = "injectorCorrectionPolynomial 6" + injectorCorrectionPolynomial7 = "injectorCorrectionPolynomial 7" + injectorCorrectionPolynomial8 = "injectorCorrectionPolynomial 8" + fan2OnTemperature = "Cooling fan turn-on temperature threshold, in Celsius" + fan2OffTemperature = "Cooling fan turn-off temperature threshold, in Celsius" + sentInputPins1 = "sentInputPins 1" + 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 = 1468 + +; 11.2.3 Full Optimized – High Speed + scatteredOchGetCommand = 9 + scatteredOffsetArray = highSpeedOffsets +#if CONN_SLOW + scatteredGetEnabled = { 1 } +#else + scatteredGetEnabled = { 0 } +#endif + +; +; see TunerStudioOutputChannels struct +; + +sd_present = bits, U32, 0, [0:0] +sd_logging_internal = bits, U32, 0, [1:1] +triggerScopeReady = bits, U32, 0, [2:2] +antilagTriggered = bits, U32, 0, [3:3] +isFanOn = bits, U32, 0, [4:4] +isO2HeaterOn = bits, U32, 0, [5:5] +checkEngine = bits, U32, 0, [6:6] +needBurn = bits, U32, 0, [7:7] +sd_msd = bits, U32, 0, [8:8] +isFan2On = bits, U32, 0, [9:9] +toothLogReady = bits, U32, 0, [10:10] +isTpsError = bits, U32, 0, [11:11] +isCltError = bits, U32, 0, [12:12] +isMapError = bits, U32, 0, [13:13] +isIatError = bits, U32, 0, [14:14] +isTriggerError = bits, U32, 0, [15:15] +hasCriticalError = bits, U32, 0, [16:16] +isWarnNow = bits, U32, 0, [17:17] +isPedalError = bits, U32, 0, [18:18] +isKnockChipOk = bits, U32, 0, [19:19] +launchTriggered = bits, U32, 0, [20:20] +isTps2Error = bits, U32, 0, [21:21] +injectorFault = bits, U32, 0, [22:22] +ignitionFault = bits, U32, 0, [23:23] +isMainRelayOn = bits, U32, 0, [24:24] +isUsbConnected = bits, U32, 0, [25:25] +dfcoActive = bits, U32, 0, [26:26] +RPMValue = scalar, U16, 4, "RPM", 1, 0 +rpmAcceleration = scalar, S16, 6, "RPM acceleration", 1, 0 +speedToRpmRatio = scalar, U16, 8, "value", 0.01, 0 +unusedVehicleSpeedKph = scalar, U08, 10, "kph", 1, 0 +internalMcuTemperature = scalar, S08, 11, "deg C", 1, 0 +coolant = scalar, S16, 12, "deg C", 0.01, 0 +intake = scalar, S16, 14, "deg C", 0.01, 0 +auxTemp1 = scalar, S16, 16, "deg C", 0.01, 0 +auxTemp2 = scalar, S16, 18, "deg C", 0.01, 0 +TPSValue = scalar, S16, 20, "%", 0.01, 0 +throttlePedalPosition = scalar, S16, 22, "%", 0.01, 0 +tpsADC = scalar, U16, 24, "ADC", 1, 0 +rawMaf = scalar, U16, 26, "V", 0.001, 0 +mafMeasured = scalar, U16, 28, "kg/h", 0.1, 0 +MAPValue = scalar, U16, 30, "kPa", 0.03333333333333333, 0 +baroPressure = scalar, U16, 32, "kPa", 0.03333333333333333, 0 +lambdaValue = scalar, U16, 34, "", 1.0E-4, 0 +VBatt = scalar, U16, 36, "V", 0.001, 0 +oilPressure = scalar, U16, 38, "kPa", 0.03333333333333333, 0 +vvtPositionB1I = scalar, S16, 40, "deg", 0.02, 0 +actualLastInjection = scalar, U16, 42, "ms", 0.0033333333333333335, 0 +injectorDutyCycle = scalar, U08, 44, "%", 0.5, 0 +injectionOffset = scalar, S16, 46, "deg", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 48, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 50, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 52, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 54, "", 1, 0 +canReadCounter = scalar, U16, 56, "", 1, 0 +tpsAccelFuel = scalar, S16, 58, "ms", 0.0033333333333333335, 0 +currentIgnitionMode = scalar, U08, 60, "", 1, 0 +currentInjectionMode = scalar, U08, 61, "", 1, 0 +coilDutyCycle = scalar, U16, 62, "%", 0.01, 0 +etbTarget = scalar, S16, 64, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 66, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 68, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 70, "grams", 1, 0 +fuelFlowRate = scalar, U16, 72, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 74, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 76, "crc16", 1, 0 +veValue = scalar, U16, 78, "ratio", 0.1, 0 +seconds = scalar, U32, 80, "sec", 1, 0 +engineMode = scalar, U32, 84, "em", 1, 0 +firmwareVersion = scalar, U32, 88, "version_f", 1, 0 +rawIdlePositionSensor = scalar, S16, 92, "V", 0.001, 0 +rawWastegatePosition = scalar, S16, 94, "V", 0.001, 0 +accelerationLat = scalar, S16, 96, "G", 0.001, 0 +accelerationLon = scalar, S16, 98, "G", 0.001, 0 +detectedGear = scalar, U08, 100, "", 1, 0 +maxTriggerReentrant = scalar, U08, 101, "", 1, 0 +rawLowFuelPressure = scalar, S16, 102, "V", 0.001, 0 +rawHighFuelPressure = scalar, S16, 104, "V", 0.001, 0 +lowFuelPressure = scalar, S16, 106, "kpa", 0.03333333333333333, 0 +tcuDesiredGear = scalar, S08, 108, "gear", 1, 0 +flexPercent = scalar, U08, 109, "%", 0.5, 0 +wastegatePositionSensor = scalar, S16, 110, "%", 0.01, 0 +highFuelPressure = scalar, S16, 112, "bar", 0.1, 0 +calibrationValue = scalar, F32, 116, "", 1, 0 +calibrationMode = scalar, U08, 120, "", 1, 0 +idleStepperTargetPosition = scalar, U08, 121, "", 1, 0 +tsConfigVersion = scalar, U32, 124, "", 1, 0 +totalTriggerErrorCounter = scalar, U32, 128, "counter", 1, 0 +orderingErrorCounter = scalar, U32, 132, "", 1, 0 +warningCounter = scalar, U16, 136, "count", 1, 0 +lastErrorCode = scalar, U16, 138, "error", 1, 0 +recentErrorCode1 = scalar, U16, 140, "error", 1, 0 +recentErrorCode2 = scalar, U16, 142, "error", 1, 0 +recentErrorCode3 = scalar, U16, 144, "error", 1, 0 +recentErrorCode4 = scalar, U16, 146, "error", 1, 0 +recentErrorCode5 = scalar, U16, 148, "error", 1, 0 +recentErrorCode6 = scalar, U16, 150, "error", 1, 0 +recentErrorCode7 = scalar, U16, 152, "error", 1, 0 +recentErrorCode8 = scalar, U16, 154, "error", 1, 0 +debugFloatField1 = scalar, F32, 156, "val", 1, 0 +debugFloatField2 = scalar, F32, 160, "val", 1, 0 +debugFloatField3 = scalar, F32, 164, "val", 1, 0 +debugFloatField4 = scalar, F32, 168, "val", 1, 0 +debugFloatField5 = scalar, F32, 172, "val", 1, 0 +debugFloatField6 = scalar, F32, 176, "val", 1, 0 +debugFloatField7 = scalar, F32, 180, "val", 1, 0 +debugIntField1 = scalar, U32, 184, "val", 1, 0 +debugIntField2 = scalar, U32, 188, "val", 1, 0 +debugIntField3 = scalar, U32, 192, "val", 1, 0 +debugIntField4 = scalar, S16, 196, "val", 1, 0 +debugIntField5 = scalar, S16, 198, "val", 1, 0 +egt1 = scalar, U16, 200, "deg C", 1, 0 +egt2 = scalar, U16, 202, "deg C", 1, 0 +egt3 = scalar, U16, 204, "deg C", 1, 0 +egt4 = scalar, U16, 206, "deg C", 1, 0 +egt5 = scalar, U16, 208, "deg C", 1, 0 +egt6 = scalar, U16, 210, "deg C", 1, 0 +egt7 = scalar, U16, 212, "deg C", 1, 0 +egt8 = scalar, U16, 214, "deg C", 1, 0 +rawTps1Primary = scalar, S16, 216, "V", 0.001, 0 +rawPpsPrimary = scalar, S16, 218, "V", 0.001, 0 +rawClt = scalar, S16, 220, "V", 0.001, 0 +rawIat = scalar, S16, 222, "V", 0.001, 0 +rawOilPressure = scalar, S16, 224, "V", 0.001, 0 +fuelClosedLoopBinIdx = scalar, U08, 226, "", 1, 0 +rawPpsSecondary = scalar, S16, 228, "V", 0.001, 0 +idlePositionSensor = scalar, S16, 230, "%", 0.01, 0 +AFRValue = scalar, U16, 232, "AFR", 0.001, 0 +VssAcceleration = scalar, U16, 234, "m/s2", 0.0033333333333333335, 0 +lambdaValue2 = scalar, U16, 236, "", 1.0E-4, 0 +AFRValue2 = scalar, U16, 238, "AFR", 0.001, 0 +vvtPositionB1E = scalar, S16, 240, "deg", 0.02, 0 +vvtPositionB2I = scalar, S16, 242, "deg", 0.02, 0 +vvtPositionB2E = scalar, S16, 244, "deg", 0.02, 0 +fuelPidCorrection1 = scalar, S16, 246, "%", 0.01, 0 +fuelPidCorrection2 = scalar, S16, 248, "%", 0.01, 0 +rawTps1Secondary = scalar, S16, 250, "V", 0.001, 0 +rawTps2Primary = scalar, S16, 252, "V", 0.001, 0 +rawTps2Secondary = scalar, S16, 254, "V", 0.001, 0 +accelerationVert = scalar, S16, 256, "G", 0.001, 0 +gyroYaw = scalar, S16, 258, "deg/sec", 0.001, 0 +vvtTargets1 = scalar, S08, 260, "deg", 1, 0 +vvtTargets2 = scalar, S08, 261, "deg", 1, 0 +vvtTargets3 = scalar, S08, 262, "deg", 1, 0 +vvtTargets4 = scalar, S08, 263, "deg", 1, 0 +turboSpeed = scalar, U16, 264, "hz", 1, 0 +ignitionAdvanceCyl1 = scalar, S16, 266, "deg", 0.02, 0 +ignitionAdvanceCyl2 = scalar, S16, 268, "deg", 0.02, 0 +ignitionAdvanceCyl3 = scalar, S16, 270, "deg", 0.02, 0 +ignitionAdvanceCyl4 = scalar, S16, 272, "deg", 0.02, 0 +ignitionAdvanceCyl5 = scalar, S16, 274, "deg", 0.02, 0 +ignitionAdvanceCyl6 = scalar, S16, 276, "deg", 0.02, 0 +ignitionAdvanceCyl7 = scalar, S16, 278, "deg", 0.02, 0 +ignitionAdvanceCyl8 = scalar, S16, 280, "deg", 0.02, 0 +ignitionAdvanceCyl9 = scalar, S16, 282, "deg", 0.02, 0 +ignitionAdvanceCyl10 = scalar, S16, 284, "deg", 0.02, 0 +ignitionAdvanceCyl11 = scalar, S16, 286, "deg", 0.02, 0 +ignitionAdvanceCyl12 = scalar, S16, 288, "deg", 0.02, 0 +tps1Split = scalar, S16, 290, "%", 0.01, 0 +tps2Split = scalar, S16, 292, "%", 0.01, 0 +tps12Split = scalar, S16, 294, "%", 0.01, 0 +accPedalSplit = scalar, S16, 296, "%", 0.01, 0 +sparkCutReason = scalar, S08, 298, "code", 1, 0 +fuelCutReason = scalar, S08, 299, "code", 1, 0 +mafEstimate = scalar, U16, 300, "kg/h", 0.1, 0 +instantRpm = scalar, U16, 302, "rpm", 1, 0 +rawMap = scalar, U16, 304, "V", 0.001, 0 +rawAfr = scalar, U16, 306, "V", 0.001, 0 +calibrationValue2 = scalar, F32, 308, "", 1, 0 +luaInvocationCounter = scalar, U32, 312, "count", 1, 0 +luaLastCycleDuration = scalar, U32, 316, "nt", 1, 0 +vssEdgeCounter = scalar, U32, 320, "", 1, 0 +issEdgeCounter = scalar, U32, 324, "", 1, 0 +auxLinear1 = scalar, S16, 328, "", 0.01, 0 +auxLinear2 = scalar, S16, 330, "", 0.01, 0 +fallbackMap = scalar, U16, 332, "kPa", 0.1, 0 +instantMAPValue = scalar, U16, 334, "kPa", 0.03333333333333333, 0 +maxLockedDuration = scalar, U16, 336, "us", 1, 0 +canWriteOk = scalar, U16, 338, "", 1, 0 +canWriteNotOk = scalar, U16, 340, "", 1, 0 +triggerPrimaryFall = scalar, U32, 344, "", 1, 0 +triggerPrimaryRise = scalar, U32, 348, "", 1, 0 +triggerSecondaryFall = scalar, U32, 352, "", 1, 0 +triggerSecondaryRise = scalar, U32, 356, "", 1, 0 +triggerVvtFall = scalar, U16, 360, "", 1, 0 +triggerVvtRise = scalar, U16, 362, "", 1, 0 +triggerVvt2Fall = scalar, U16, 364, "", 1, 0 +triggerVvt2Rise = scalar, U16, 366, "", 1, 0 +starterState = scalar, U08, 368, "", 1, 0 +starterRelayDisable = scalar, U08, 369, "", 1, 0 +multiSparkCounter = scalar, U08, 370, "", 1, 0 +extiOverflowCount = scalar, U08, 371, "", 1, 0 +alternatorStatus_pTerm = scalar, F32, 372, "", 1, 0 +alternatorStatus_iTerm = scalar, S16, 376, "", 0.01, 0 +alternatorStatus_dTerm = scalar, S16, 378, "", 0.01, 0 +alternatorStatus_output = scalar, S16, 380, "", 0.01, 0 +alternatorStatus_error = scalar, S16, 382, "", 0.01, 0 +alternatorStatus_resetCounter = scalar, U32, 384, "", 1, 0 +idleStatus_pTerm = scalar, F32, 388, "", 1, 0 +idleStatus_iTerm = scalar, S16, 392, "", 0.01, 0 +idleStatus_dTerm = scalar, S16, 394, "", 0.01, 0 +idleStatus_output = scalar, S16, 396, "", 0.01, 0 +idleStatus_error = scalar, S16, 398, "", 0.01, 0 +idleStatus_resetCounter = scalar, U32, 400, "", 1, 0 +etbStatus_pTerm = scalar, F32, 404, "", 1, 0 +etbStatus_iTerm = scalar, S16, 408, "", 0.01, 0 +etbStatus_dTerm = scalar, S16, 410, "", 0.01, 0 +etbStatus_output = scalar, S16, 412, "", 0.01, 0 +etbStatus_error = scalar, S16, 414, "", 0.01, 0 +etbStatus_resetCounter = scalar, U32, 416, "", 1, 0 +boostStatus_pTerm = scalar, F32, 420, "", 1, 0 +boostStatus_iTerm = scalar, S16, 424, "", 0.01, 0 +boostStatus_dTerm = scalar, S16, 426, "", 0.01, 0 +boostStatus_output = scalar, S16, 428, "", 0.01, 0 +boostStatus_error = scalar, S16, 430, "", 0.01, 0 +boostStatus_resetCounter = scalar, U32, 432, "", 1, 0 +wastegateDcStatus_pTerm = scalar, F32, 436, "", 1, 0 +wastegateDcStatus_iTerm = scalar, S16, 440, "", 0.01, 0 +wastegateDcStatus_dTerm = scalar, S16, 442, "", 0.01, 0 +wastegateDcStatus_output = scalar, S16, 444, "", 0.01, 0 +wastegateDcStatus_error = scalar, S16, 446, "", 0.01, 0 +wastegateDcStatus_resetCounter = scalar, U32, 448, "", 1, 0 +vvtStatus1_pTerm = scalar, F32, 452, "", 1, 0 +vvtStatus1_iTerm = scalar, S16, 456, "", 0.01, 0 +vvtStatus1_dTerm = scalar, S16, 458, "", 0.01, 0 +vvtStatus1_output = scalar, S16, 460, "", 0.01, 0 +vvtStatus1_error = scalar, S16, 462, "", 0.01, 0 +vvtStatus1_resetCounter = scalar, U32, 464, "", 1, 0 +vvtStatus2_pTerm = scalar, F32, 468, "", 1, 0 +vvtStatus2_iTerm = scalar, S16, 472, "", 0.01, 0 +vvtStatus2_dTerm = scalar, S16, 474, "", 0.01, 0 +vvtStatus2_output = scalar, S16, 476, "", 0.01, 0 +vvtStatus2_error = scalar, S16, 478, "", 0.01, 0 +vvtStatus2_resetCounter = scalar, U32, 480, "", 1, 0 +vvtStatus3_pTerm = scalar, F32, 484, "", 1, 0 +vvtStatus3_iTerm = scalar, S16, 488, "", 0.01, 0 +vvtStatus3_dTerm = scalar, S16, 490, "", 0.01, 0 +vvtStatus3_output = scalar, S16, 492, "", 0.01, 0 +vvtStatus3_error = scalar, S16, 494, "", 0.01, 0 +vvtStatus3_resetCounter = scalar, U32, 496, "", 1, 0 +vvtStatus4_pTerm = scalar, F32, 500, "", 1, 0 +vvtStatus4_iTerm = scalar, S16, 504, "", 0.01, 0 +vvtStatus4_dTerm = scalar, S16, 506, "", 0.01, 0 +vvtStatus4_output = scalar, S16, 508, "", 0.01, 0 +vvtStatus4_error = scalar, S16, 510, "", 0.01, 0 +vvtStatus4_resetCounter = scalar, U32, 512, "", 1, 0 +auxSpeed1 = scalar, U16, 516, "s", 1, 0 +auxSpeed2 = scalar, U16, 518, "s", 1, 0 +ISSValue = scalar, U16, 520, "RPM", 1, 0 +rawAnalogInput1 = scalar, S16, 522, "V", 0.001, 0 +rawAnalogInput2 = scalar, S16, 524, "V", 0.001, 0 +rawAnalogInput3 = scalar, S16, 526, "V", 0.001, 0 +rawAnalogInput4 = scalar, S16, 528, "V", 0.001, 0 +rawAnalogInput5 = scalar, S16, 530, "V", 0.001, 0 +rawAnalogInput6 = scalar, S16, 532, "V", 0.001, 0 +rawAnalogInput7 = scalar, S16, 534, "V", 0.001, 0 +rawAnalogInput8 = scalar, S16, 536, "V", 0.001, 0 +gppwmOutput1 = scalar, U08, 538, "%", 0.5, 0 +gppwmOutput2 = scalar, U08, 539, "%", 0.5, 0 +gppwmOutput3 = scalar, U08, 540, "%", 0.5, 0 +gppwmOutput4 = scalar, U08, 541, "%", 0.5, 0 +gppwmXAxis1 = scalar, S16, 542, "", 1, 0 +gppwmXAxis2 = scalar, S16, 544, "", 1, 0 +gppwmXAxis3 = scalar, S16, 546, "", 1, 0 +gppwmXAxis4 = scalar, S16, 548, "", 1, 0 +gppwmYAxis1 = scalar, S16, 550, "", 0.1, 0 +gppwmYAxis2 = scalar, S16, 552, "", 0.1, 0 +gppwmYAxis3 = scalar, S16, 554, "", 0.1, 0 +gppwmYAxis4 = scalar, S16, 556, "", 0.1, 0 +rawBattery = scalar, S16, 558, "V", 0.001, 0 +ignBlendParameter1 = scalar, S16, 560, "", 0.1, 0 +ignBlendParameter2 = scalar, S16, 562, "", 0.1, 0 +ignBlendParameter3 = scalar, S16, 564, "", 0.1, 0 +ignBlendParameter4 = scalar, S16, 566, "", 0.1, 0 +ignBlendBias1 = scalar, U08, 568, "%", 0.5, 0 +ignBlendBias2 = scalar, U08, 569, "%", 0.5, 0 +ignBlendBias3 = scalar, U08, 570, "%", 0.5, 0 +ignBlendBias4 = scalar, U08, 571, "%", 0.5, 0 +ignBlendOutput1 = scalar, S16, 572, "deg", 0.01, 0 +ignBlendOutput2 = scalar, S16, 574, "deg", 0.01, 0 +ignBlendOutput3 = scalar, S16, 576, "deg", 0.01, 0 +ignBlendOutput4 = scalar, S16, 578, "deg", 0.01, 0 +veBlendParameter1 = scalar, S16, 580, "", 0.1, 0 +veBlendParameter2 = scalar, S16, 582, "", 0.1, 0 +veBlendParameter3 = scalar, S16, 584, "", 0.1, 0 +veBlendParameter4 = scalar, S16, 586, "", 0.1, 0 +veBlendBias1 = scalar, U08, 588, "%", 0.5, 0 +veBlendBias2 = scalar, U08, 589, "%", 0.5, 0 +veBlendBias3 = scalar, U08, 590, "%", 0.5, 0 +veBlendBias4 = scalar, U08, 591, "%", 0.5, 0 +veBlendOutput1 = scalar, S16, 592, "%", 0.01, 0 +veBlendOutput2 = scalar, S16, 594, "%", 0.01, 0 +veBlendOutput3 = scalar, S16, 596, "%", 0.01, 0 +veBlendOutput4 = scalar, S16, 598, "%", 0.01, 0 +boostOpenLoopBlendParameter1 = scalar, S16, 600, "", 0.1, 0 +boostOpenLoopBlendParameter2 = scalar, S16, 602, "", 0.1, 0 +boostOpenLoopBlendBias1 = scalar, U08, 604, "%", 0.5, 0 +boostOpenLoopBlendBias2 = scalar, U08, 605, "%", 0.5, 0 +boostOpenLoopBlendOutput1 = scalar, S08, 606, "%", 1, 0 +boostOpenLoopBlendOutput2 = scalar, S08, 607, "%", 1, 0 +boostClosedLoopBlendParameter1 = scalar, S16, 608, "", 0.1, 0 +boostClosedLoopBlendParameter2 = scalar, S16, 610, "", 0.1, 0 +boostClosedLoopBlendBias1 = scalar, U08, 612, "%", 0.5, 0 +boostClosedLoopBlendBias2 = scalar, U08, 613, "%", 0.5, 0 +boostClosedLoopBlendOutput1 = scalar, S16, 614, "%", 0.1, 0 +boostClosedLoopBlendOutput2 = scalar, S16, 616, "%", 0.1, 0 +coilState1 = bits, U32, 620, [0:0] +coilState2 = bits, U32, 620, [1:1] +coilState3 = bits, U32, 620, [2:2] +coilState4 = bits, U32, 620, [3:3] +coilState5 = bits, U32, 620, [4:4] +coilState6 = bits, U32, 620, [5:5] +coilState7 = bits, U32, 620, [6:6] +coilState8 = bits, U32, 620, [7:7] +coilState9 = bits, U32, 620, [8:8] +coilState10 = bits, U32, 620, [9:9] +coilState11 = bits, U32, 620, [10:10] +coilState12 = bits, U32, 620, [11:11] +injectorState1 = bits, U32, 620, [12:12] +injectorState2 = bits, U32, 620, [13:13] +injectorState3 = bits, U32, 620, [14:14] +injectorState4 = bits, U32, 620, [15:15] +injectorState5 = bits, U32, 620, [16:16] +injectorState6 = bits, U32, 620, [17:17] +injectorState7 = bits, U32, 620, [18:18] +injectorState8 = bits, U32, 620, [19:19] +injectorState9 = bits, U32, 620, [20:20] +injectorState10 = bits, U32, 620, [21:21] +injectorState11 = bits, U32, 620, [22:22] +injectorState12 = bits, U32, 620, [23:23] +triggerChannel1 = bits, U32, 620, [24:24] +triggerChannel2 = bits, U32, 620, [25:25] +vvtChannel1 = bits, U32, 620, [26:26] +vvtChannel2 = bits, U32, 620, [27:27] +vvtChannel3 = bits, U32, 620, [28:28] +vvtChannel4 = bits, U32, 620, [29:29] +outputRequestPeriod = scalar, U32, 624, "", 1, 0 +mapFast = scalar, F32, 628, "", 1, 0 +luaGauges1 = scalar, F32, 632, "value", 1, 0 +luaGauges2 = scalar, F32, 636, "value", 1, 0 +rawMaf2 = scalar, U16, 640, "V", 0.001, 0 +mafMeasured2 = scalar, U16, 642, "kg/h", 0.1, 0 +schedulingUsedCount = scalar, U16, 644, "", 1,0 +vehicleSpeedKph = scalar, U16, 646, "kph", 0.01, 0 +Gego = scalar, U16, 648, "%", 0.01,0 +testBenchIter = scalar, U16, 650, "count", 1, 0 +oilTemp = scalar, S16, 652, "deg C", 0.01, 0 +fuelTemp = scalar, S16, 654, "deg C", 0.01, 0 +ambientTemp = scalar, S16, 656, "deg C", 0.01, 0 +compressorDischargeTemp = scalar, S16, 658, "deg C", 0.01, 0 +compressorDischargePressure = scalar, U16, 660, "kPa", 0.03333333333333333, 0 +throttleInletPressure = scalar, U16, 662, "kPa", 0.03333333333333333, 0 +ignitionOnTime = scalar, U16, 664, "sec", 1,0 +engineRunTime = scalar, U16, 666, "sec", 1,0 +distanceTraveled = scalar, U16, 668, "km", 0.1,0 +afrGasolineScale = scalar, U16, 670, "AFR", 0.001, 0 +afr2GasolineScale = scalar, U16, 672, "AFR", 0.001, 0 +wheelSlipRatio = scalar, F32, 676, "", 1, 0 +ignitorDiagnostic1 = scalar, U08, 680, "", 1, 0 +ignitorDiagnostic2 = scalar, U08, 681, "", 1, 0 +ignitorDiagnostic3 = scalar, U08, 682, "", 1, 0 +ignitorDiagnostic4 = scalar, U08, 683, "", 1, 0 +ignitorDiagnostic5 = scalar, U08, 684, "", 1, 0 +ignitorDiagnostic6 = scalar, U08, 685, "", 1, 0 +ignitorDiagnostic7 = scalar, U08, 686, "", 1, 0 +ignitorDiagnostic8 = scalar, U08, 687, "", 1, 0 +ignitorDiagnostic9 = scalar, U08, 688, "", 1, 0 +ignitorDiagnostic10 = scalar, U08, 689, "", 1, 0 +ignitorDiagnostic11 = scalar, U08, 690, "", 1, 0 +ignitorDiagnostic12 = scalar, U08, 691, "", 1, 0 +injectorDiagnostic1 = scalar, U08, 692, "", 1, 0 +injectorDiagnostic2 = scalar, U08, 693, "", 1, 0 +injectorDiagnostic3 = scalar, U08, 694, "", 1, 0 +injectorDiagnostic4 = scalar, U08, 695, "", 1, 0 +injectorDiagnostic5 = scalar, U08, 696, "", 1, 0 +injectorDiagnostic6 = scalar, U08, 697, "", 1, 0 +injectorDiagnostic7 = scalar, U08, 698, "", 1, 0 +injectorDiagnostic8 = scalar, U08, 699, "", 1, 0 +injectorDiagnostic9 = scalar, U08, 700, "", 1, 0 +injectorDiagnostic10 = scalar, U08, 701, "", 1, 0 +injectorDiagnostic11 = scalar, U08, 702, "", 1, 0 +injectorDiagnostic12 = scalar, U08, 703, "", 1, 0 +actualLastInjectionStage2 = scalar, U16, 704, "ms", 0.0033333333333333335, 0 +injectorDutyCycleStage2 = scalar, U08, 706, "%", 0.5, 0 +unusedAtTheEnd1 = scalar, U08, 707, "", 1, 0 +unusedAtTheEnd2 = scalar, U08, 708, "", 1, 0 +unusedAtTheEnd3 = scalar, U08, 709, "", 1, 0 +unusedAtTheEnd4 = scalar, U08, 710, "", 1, 0 +unusedAtTheEnd5 = scalar, U08, 711, "", 1, 0 +unusedAtTheEnd6 = scalar, U08, 712, "", 1, 0 +unusedAtTheEnd7 = scalar, U08, 713, "", 1, 0 +unusedAtTheEnd8 = scalar, U08, 714, "", 1, 0 +unusedAtTheEnd9 = scalar, U08, 715, "", 1, 0 +unusedAtTheEnd10 = scalar, U08, 716, "", 1, 0 +unusedAtTheEnd11 = scalar, U08, 717, "", 1, 0 +unusedAtTheEnd12 = scalar, U08, 718, "", 1, 0 +unusedAtTheEnd13 = scalar, U08, 719, "", 1, 0 +unusedAtTheEnd14 = scalar, U08, 720, "", 1, 0 +unusedAtTheEnd15 = scalar, U08, 721, "", 1, 0 +unusedAtTheEnd16 = scalar, U08, 722, "", 1, 0 +unusedAtTheEnd17 = scalar, U08, 723, "", 1, 0 +unusedAtTheEnd18 = scalar, U08, 724, "", 1, 0 +unusedAtTheEnd19 = scalar, U08, 725, "", 1, 0 +unusedAtTheEnd20 = scalar, U08, 726, "", 1, 0 +unusedAtTheEnd21 = scalar, U08, 727, "", 1, 0 +unusedAtTheEnd22 = scalar, U08, 728, "", 1, 0 +unusedAtTheEnd23 = scalar, U08, 729, "", 1, 0 +unusedAtTheEnd24 = scalar, U08, 730, "", 1, 0 +unusedAtTheEnd25 = scalar, U08, 731, "", 1, 0 +unusedAtTheEnd26 = scalar, U08, 732, "", 1, 0 +unusedAtTheEnd27 = scalar, U08, 733, "", 1, 0 +unusedAtTheEnd28 = scalar, U08, 734, "", 1, 0 +unusedAtTheEnd29 = scalar, U08, 735, "", 1, 0 +unusedAtTheEnd30 = scalar, U08, 736, "", 1, 0 +unusedAtTheEnd31 = scalar, U08, 737, "", 1, 0 +unusedAtTheEnd32 = scalar, U08, 738, "", 1, 0 +unusedAtTheEnd33 = scalar, U08, 739, "", 1, 0 +unusedAtTheEnd34 = scalar, U08, 740, "", 1, 0 +unusedAtTheEnd35 = scalar, U08, 741, "", 1, 0 +unusedAtTheEnd36 = scalar, U08, 742, "", 1, 0 +unusedAtTheEnd37 = scalar, U08, 743, "", 1, 0 +unusedAtTheEnd38 = scalar, U08, 744, "", 1, 0 +unusedAtTheEnd39 = scalar, U08, 745, "", 1, 0 +unusedAtTheEnd40 = scalar, U08, 746, "", 1, 0 +unusedAtTheEnd41 = scalar, U08, 747, "", 1, 0 +unusedAtTheEnd42 = scalar, U08, 748, "", 1, 0 +unusedAtTheEnd43 = scalar, U08, 749, "", 1, 0 +unusedAtTheEnd44 = scalar, U08, 750, "", 1, 0 +unusedAtTheEnd45 = scalar, U08, 751, "", 1, 0 +unusedAtTheEnd46 = scalar, U08, 752, "", 1, 0 +unusedAtTheEnd47 = scalar, U08, 753, "", 1, 0 +unusedAtTheEnd48 = scalar, U08, 754, "", 1, 0 +unusedAtTheEnd49 = scalar, U08, 755, "", 1, 0 +unusedAtTheEnd50 = scalar, U08, 756, "", 1, 0 +unusedAtTheEnd51 = scalar, U08, 757, "", 1, 0 +unusedAtTheEnd52 = scalar, U08, 758, "", 1, 0 +unusedAtTheEnd53 = scalar, U08, 759, "", 1, 0 +unusedAtTheEnd54 = scalar, U08, 760, "", 1, 0 +unusedAtTheEnd55 = scalar, U08, 761, "", 1, 0 +unusedAtTheEnd56 = scalar, U08, 762, "", 1, 0 +unusedAtTheEnd57 = scalar, U08, 763, "", 1, 0 +unusedAtTheEnd58 = scalar, U08, 764, "", 1, 0 +unusedAtTheEnd59 = scalar, U08, 765, "", 1, 0 +unusedAtTheEnd60 = scalar, U08, 766, "", 1, 0 +unusedAtTheEnd61 = scalar, U08, 767, "", 1, 0 +unusedAtTheEnd62 = scalar, U08, 768, "", 1, 0 +unusedAtTheEnd63 = scalar, U08, 769, "", 1, 0 +unusedAtTheEnd64 = scalar, U08, 770, "", 1, 0 +unusedAtTheEnd65 = scalar, U08, 771, "", 1, 0 +unusedAtTheEnd66 = scalar, U08, 772, "", 1, 0 +unusedAtTheEnd67 = scalar, U08, 773, "", 1, 0 +unusedAtTheEnd68 = scalar, U08, 774, "", 1, 0 +unusedAtTheEnd69 = scalar, U08, 775, "", 1, 0 +unusedAtTheEnd70 = scalar, U08, 776, "", 1, 0 +unusedAtTheEnd71 = scalar, U08, 777, "", 1, 0 +unusedAtTheEnd72 = scalar, U08, 778, "", 1, 0 +unusedAtTheEnd73 = scalar, U08, 779, "", 1, 0 +unusedAtTheEnd74 = scalar, U08, 780, "", 1, 0 +unusedAtTheEnd75 = scalar, U08, 781, "", 1, 0 +unusedAtTheEnd76 = scalar, U08, 782, "", 1, 0 +unusedAtTheEnd77 = scalar, U08, 783, "", 1, 0 +unusedAtTheEnd78 = scalar, U08, 784, "", 1, 0 +unusedAtTheEnd79 = scalar, U08, 785, "", 1, 0 +unusedAtTheEnd80 = scalar, U08, 786, "", 1, 0 +unusedAtTheEnd81 = scalar, U08, 787, "", 1, 0 +unusedAtTheEnd82 = scalar, U08, 788, "", 1, 0 +unusedAtTheEnd83 = scalar, U08, 789, "", 1, 0 +unusedAtTheEnd84 = scalar, U08, 790, "", 1, 0 +unusedAtTheEnd85 = scalar, U08, 791, "", 1, 0 +unusedAtTheEnd86 = scalar, U08, 792, "", 1, 0 +unusedAtTheEnd87 = scalar, U08, 793, "", 1, 0 +unusedAtTheEnd88 = scalar, U08, 794, "", 1, 0 +; total TS size = 796 +totalFuelCorrection = scalar, F32, 796, "mult", 1,0 +running_postCrankingFuelCorrection = scalar, F32, 800, "", 1, 0 +running_intakeTemperatureCoefficient = scalar, F32, 804, "", 1, 0 +running_coolantTemperatureCoefficient = scalar, F32, 808, "", 1, 0 +running_timeSinceCrankingInSecs = scalar, F32, 812, "secs", 1,0 +running_baseFuel = scalar, U16, 816, "mg", 0.01, 0 +running_fuel = scalar, U16, 818, "mg", 0.01, 0 +afrTableYAxis = scalar, U16, 820, "%", 0.01,0 +targetLambda = scalar, U16, 822, "", 1.0E-4,0 +targetAFR = scalar, U16, 824, "ratio", 0.001,0 +stoichiometricRatio = scalar, U16, 826, "ratio", 0.001, 0 +sdTcharge_coff = scalar, F32, 828, "", 1, 0 +sdAirMassInOneCylinder = scalar, F32, 832, "g", 1, 0 +normalizedCylinderFilling = scalar, F32, 836, "%", 1, 0 +brokenInjector = scalar, U08, 840, "", 1, 0 +unused88 = scalar, U08, 841, "", 1, 0 +idealEngineTorque = scalar, U16, 842, "", 1, 0 +injectorHwIssue = bits, U32, 844, [0:0] +; total TS size = 848 +baseDwell = scalar, F32, 848, "ms", 1,0 +sparkDwell = scalar, F32, 852, "ms", 1,0 +dwellDurationAngle = scalar, F32, 856, "deg", 1,0 +cltTimingCorrection = scalar, S16, 860, "deg", 0.01,0 +timingIatCorrection = scalar, S16, 862, "deg", 0.01,0 +timingPidCorrection = scalar, S16, 864, "deg", 0.01,0 +baseIgnitionAdvance = scalar, S16, 866, "deg", 0.02, 0 +correctedIgnitionAdvance = scalar, S16, 868, "deg", 0.02, 0 +tractionAdvanceDrop = scalar, S16, 870, "deg", 0.02, 0 +dwellVoltageCorrection = scalar, F32, 872, "", 1, 0 +luaTimingAdd = scalar, F32, 876, "deg", 1, 0 +luaTimingMult = scalar, F32, 880, "deg", 1, 0 +luaIgnitionSkip = bits, U32, 884, [0:0] +; total TS size = 888 +m_knockLevel = scalar, F32, 888, "Volts", 1, 0 +m_knockCyl1 = scalar, S08, 892, "dBv", 1, 0 +m_knockCyl2 = scalar, S08, 893, "dBv", 1, 0 +m_knockCyl3 = scalar, S08, 894, "dBv", 1, 0 +m_knockCyl4 = scalar, S08, 895, "dBv", 1, 0 +m_knockCyl5 = scalar, S08, 896, "dBv", 1, 0 +m_knockCyl6 = scalar, S08, 897, "dBv", 1, 0 +m_knockCyl7 = scalar, S08, 898, "dBv", 1, 0 +m_knockCyl8 = scalar, S08, 899, "dBv", 1, 0 +m_knockCyl9 = scalar, S08, 900, "dBv", 1, 0 +m_knockCyl10 = scalar, S08, 901, "dBv", 1, 0 +m_knockCyl11 = scalar, S08, 902, "dBv", 1, 0 +m_knockCyl12 = scalar, S08, 903, "dBv", 1, 0 +m_knockRetard = scalar, F32, 904, "deg", 1,0 +m_knockThreshold = scalar, F32, 908, "", 1, 0 +m_knockCount = scalar, U32, 912, "", 1, 0 +m_maximumRetard = scalar, F32, 916, "", 1, 0 +; total TS size = 920 +tcuCurrentGear = scalar, S08, 920, "gear", 1, 0 +tcRatio = scalar, U16, 922, "value", 0.01, 0 +lastShiftTime = scalar, F32, 924, "", 1, 0 +tcu_currentRange = scalar, U08, 928, "", 1, 0 +; total TS size = 932 +throttleUseWotModel = bits, U32, 932, [0:0] +throttleModelCrossoverAngle = scalar, S16, 936, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 940, "g/s", 1, 0 +; total TS size = 944 +m_requested_pump = scalar, F32, 944, "", 1, 0 +fuel_requested_percent = scalar, F32, 948, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 952, "", 1, 0 +noValve = bits, U32, 956, [0:0] +angleAboveMin = bits, U32, 956, [1:1] +isHpfpInactive = bits, U32, 956, [2:2] +m_pressureTarget_kPa = scalar, F32, 960, "", 1, 0 +nextLobe = scalar, F32, 964, "", 1, 0 +di_nextStart = scalar, F32, 968, "v", 1, 0 +; total TS size = 972 +m_deadtime = scalar, F32, 972, "ms", 1, 0 +pressureDelta = scalar, F32, 976, "kPa", 1, 0 +pressureRatio = scalar, F32, 980, "", 1, 0 +; total TS size = 984 +retardThresholdRpm = scalar, S32, 984, "", 1, 0 +combinedConditions = bits, U32, 988, [0:0] +launchActivatePinState = bits, U32, 988, [1:1] +isLaunchPreCondition = bits, U32, 988, [2:2] +isLaunchCondition = bits, U32, 988, [3:3] +isSwitchActivated = bits, U32, 988, [4:4] +isClutchActivated = bits, U32, 988, [5:5] +isValidInputPin = bits, U32, 988, [6:6] +activateSwitchCondition = bits, U32, 988, [7:7] +rpmCondition = bits, U32, 988, [8:8] +speedCondition = bits, U32, 988, [9:9] +tpsCondition = bits, U32, 988, [10:10] +; total TS size = 992 +isAntilagCondition = bits, U32, 992, [0:0] +ALSMinRPMCondition = bits, U32, 992, [1:1] +ALSMaxRPMCondition = bits, U32, 992, [2:2] +ALSMinCLTCondition = bits, U32, 992, [3:3] +ALSMaxCLTCondition = bits, U32, 992, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 992, [5:5] +isALSSwitchActivated = bits, U32, 992, [6:6] +ALSActivatePinState = bits, U32, 992, [7:7] +ALSSwitchCondition = bits, U32, 992, [8:8] +ALSTimerCondition = bits, U32, 992, [9:9] +fuelALSCorrection = scalar, F32, 996, "", 1, 0 +timingALSCorrection = scalar, S16, 1000, "deg", 0.01, 0 +timingALSSkip = scalar, S16, 1002, "deg", 0.01, 0 +; total TS size = 1004 +isTpsInvalid = bits, U32, 1004, [0:0] +m_shouldResetPid = bits, U32, 1004, [1:1] +isBelowClosedLoopThreshold = bits, U32, 1004, [2:2] +isNotClosedLoop = bits, U32, 1004, [3:3] +isZeroRpm = bits, U32, 1004, [4:4] +hasInitBoost = bits, U32, 1004, [5:5] +rpmTooLow = bits, U32, 1004, [6:6] +tpsTooLow = bits, U32, 1004, [7:7] +mapTooLow = bits, U32, 1004, [8:8] +isPlantValid = bits, U32, 1004, [9:9] +isBoostControlled = bits, U32, 1004, [10:10] +luaTargetAdd = scalar, S16, 1008, "v", 0.5,0 +boostOutput = scalar, S16, 1010, "percent", 0.01,0 +luaTargetMult = scalar, F32, 1012, "v", 1,0 +openLoopPart = scalar, F32, 1016, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 1020, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 1024, "%", 0.5,0 +boostControlTarget = scalar, S16, 1026, "kPa", 0.03333333333333333,0 +; total TS size = 1028 +acButtonState = scalar, S08, 1028, "", 1, 0 +m_acEnabled = bits, U32, 1032, [0:0] +engineTooSlow = bits, U32, 1032, [1:1] +engineTooFast = bits, U32, 1032, [2:2] +noClt = bits, U32, 1032, [3:3] +engineTooHot = bits, U32, 1032, [4:4] +tpsTooHigh = bits, U32, 1032, [5:5] +isDisabledByLua = bits, U32, 1032, [6:6] +acCompressorState = bits, U32, 1032, [7:7] +latest_usage_ac_control = scalar, S32, 1036, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 1040, "", 1, 0 +; total TS size = 1044 +cranking0 = bits, U32, 1044, [0:0] +notRunning0 = bits, U32, 1044, [1:1] +disabledWhileEngineStopped0 = bits, U32, 1044, [2:2] +brokenClt0 = bits, U32, 1044, [3:3] +enabledForAc0 = bits, U32, 1044, [4:4] +hot0 = bits, U32, 1044, [5:5] +cold0 = bits, U32, 1044, [6:6] +disabledBySpeed0 = bits, U32, 1044, [7:7] +; total TS size = 1048 +isPrime = bits, U32, 1048, [0:0] +engineTurnedRecently = bits, U32, 1048, [1:1] +isFuelPumpOn = bits, U32, 1048, [2:2] +ignitionOn = bits, U32, 1048, [3:3] +; total TS size = 1052 +isBenchTest = bits, U32, 1052, [0:0] +hasIgnitionVoltage = bits, U32, 1052, [1:1] +mainRelayState = bits, U32, 1052, [2:2] +delayedShutoffRequested = bits, U32, 1052, [3:3] +; total TS size = 1056 +lua_fuelAdd = scalar, F32, 1056, "g", 1, 0 +lua_fuelMult = scalar, F32, 1060, "", 1, 0 +lua_clutchUpState = bits, U32, 1064, [0:0] +lua_brakePedalState = bits, U32, 1064, [1:1] +lua_acRequestState = bits, U32, 1064, [2:2] +lua_luaDisableEtb = bits, U32, 1064, [3:3] +lua_luaIgnCut = bits, U32, 1064, [4:4] +sd_tCharge = scalar, S16, 1068, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1072, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1076, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1080, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1084, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1088, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1092, "", 1, 0 +hellenBoardId = scalar, S16, 1096, "id", 1, 0 +clutchUpState = scalar, S08, 1098, "", 1, 0 +clutchDownState = scalar, S08, 1099, "", 1, 0 +brakePedalState = scalar, S08, 1100, "", 1, 0 +startStopState = scalar, S08, 1101, "", 1, 0 +smartChipState = scalar, S08, 1102, "", 1, 0 +smartChipRestartCounter = scalar, S08, 1103, "", 1, 0 +smartChipAliveCounter = scalar, S08, 1104, "", 1, 0 +startStopPhysicalState = bits, U32, 1108, [0:0] +acrActive = bits, U32, 1108, [1:1] +acrEngineMovedRecently = bits, U32, 1108, [2:2] +heaterControlEnabled = bits, U32, 1108, [3:3] +luaDigitalState0 = bits, U32, 1108, [4:4] +luaDigitalState1 = bits, U32, 1108, [5:5] +luaDigitalState2 = bits, U32, 1108, [6:6] +luaDigitalState3 = bits, U32, 1108, [7:7] +startStopStateToggleCounter = scalar, U32, 1112, "", 1, 0 +egtValue1 = scalar, F32, 1116, "", 1, 0 +egtValue2 = scalar, F32, 1120, "", 1, 0 +luaSoftSparkSkip = scalar, F32, 1124, "", 1, 0 +luaHardSparkSkip = scalar, F32, 1128, "", 1, 0 +tractionControlSparkSkip = scalar, F32, 1132, "", 1, 0 +desiredRpmLimit = scalar, S16, 1136, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1140, "", 1, 0 +globalSparkCounter = scalar, U32, 1144, "", 1, 0 +fuelingLoad = scalar, F32, 1148, "", 1, 0 +ignitionLoad = scalar, F32, 1152, "", 1, 0 +veTableYAxis = scalar, U16, 1156, "%", 0.01, 0 +; total TS size = 1160 +tpsFrom = scalar, F32, 1160 +tpsTo = scalar, F32, 1164 +deltaTps = scalar, F32, 1168 +extraFuel = scalar, F32, 1172, "", 1, 0 +valueFromTable = scalar, F32, 1176, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1180, [0:0] +isBelowDecelThreshold = bits, U32, 1180, [1:1] +isTimeToResetAccumulator = bits, U32, 1180, [2:2] +isFractionalEnrichment = bits, U32, 1180, [3:3] +belowEpsilon = bits, U32, 1180, [4:4] +tooShort = bits, U32, 1180, [5:5] +fractionalInjFuel = scalar, F32, 1184, "", 1, 0 +accumulatedValue = scalar, F32, 1188, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1192, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1196, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1200, "", 1, 0 +cycleCnt = scalar, S32, 1204, "", 1, 0 +; total TS size = 1208 +hwEventCounters1 = scalar, U32, 1208, "", 1, 0 +hwEventCounters2 = scalar, U32, 1212, "", 1, 0 +hwEventCounters3 = scalar, U32, 1216, "", 1, 0 +hwEventCounters4 = scalar, U32, 1220, "", 1, 0 +hwEventCounters5 = scalar, U32, 1224, "", 1, 0 +hwEventCounters6 = scalar, U32, 1228, "", 1, 0 +vvtCamCounter = scalar, U32, 1232, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1236, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1240, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1244, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1245, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1248, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1252, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1256, "", 1, 0 +mapCamPrevToothAngle = scalar, F32, 1260, "deg", 1, 0 +isDecodingMapCam = bits, U32, 1264, [0:0] +; total TS size = 1268 +crankSynchronizationCounter0 = scalar, U32, 1268, "", 1, 0 +vvtSyncGapRatio0 = scalar, F32, 1272, "", 1, 0 +vvtToothDurations00 = scalar, U32, 1276, "us", 1, 0 +vvtCurrentPosition0 = scalar, F32, 1280, "sync: Primary Cam Position", 1, 0 +vvtToothPosition10 = scalar, F32, 1284, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition20 = scalar, F32, 1288, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition30 = scalar, F32, 1292, "sync: Cam Tooth Position", 1, 0 +vvtToothPosition40 = scalar, F32, 1296, "sync: Cam Tooth Position", 1, 0 +triggerSyncGapRatio0 = scalar, F32, 1300, "", 1, 0 +triggerStateIndex0 = scalar, U08, 1304, "", 1, 0 +vvtStateIndex0 = scalar, U08, 1305, "", 1, 0 +; total TS size = 1308 +camResyncCounter = scalar, U08, 1308, "", 1, 0 +m_hasSynchronizedPhase = bits, U32, 1312, [0:0] +; total TS size = 1316 +wallFuelCorrection = scalar, F32, 1316, "", 1, 0 +wallFuel = scalar, F32, 1320, "", 1, 0 +; total TS size = 1324 +idleState = bits, S32, 1324, [0:2], "not important" +currentIdlePosition = scalar, F32, 1328 +baseIdlePosition = scalar, F32, 1332 +idleClosedLoop = scalar, F32, 1336 +iacByTpsTaper = scalar, F32, 1340 +throttlePedalUpState = scalar, S32, 1344, "", 1, 0 +mightResetPid = bits, U32, 1348, [0:0] +shouldResetPid = bits, U32, 1348, [1:1] +wasResetPid = bits, U32, 1348, [2:2] +mustResetPid = bits, U32, 1348, [3:3] +isCranking = bits, U32, 1348, [4:4] +isIacTableForCoasting = bits, U32, 1348, [5:5] +notIdling = bits, U32, 1348, [6:6] +needReset = bits, U32, 1348, [7:7] +isInDeadZone = bits, U32, 1348, [8:8] +isBlipping = bits, U32, 1348, [9:9] +useClosedLoop = bits, U32, 1348, [10:10] +badTps = bits, U32, 1348, [11:11] +looksLikeRunning = bits, U32, 1348, [12:12] +looksLikeCoasting = bits, U32, 1348, [13:13] +looksLikeCrankToIdle = bits, U32, 1348, [14:14] +isIdleCoasting = bits, U32, 1348, [15:15] +isIdleClosedLoop = bits, U32, 1348, [16:16] +idleTarget = scalar, S32, 1352, "", 1, 0 +targetRpmByClt = scalar, S32, 1356, "", 1, 0 +targetRpmAc = scalar, S32, 1360, "", 1, 0 +iacByRpmTaper = scalar, F32, 1364 +luaAdd = scalar, F32, 1368 +; total TS size = 1372 +idlePosition0 = scalar, F32, 1372, "per", 1,0 +trim0 = scalar, F32, 1376, "", 1, 0 +luaAdjustment0 = scalar, F32, 1380, "per", 1,0 +m_wastegatePosition0 = scalar, F32, 1384, "per", 1,0 +etbFeedForward0 = scalar, F32, 1388 +etbIntegralError0 = scalar, F32, 1392, "", 1, 0 +etbCurrentTarget0 = scalar, F32, 1396, "%", 1, 0 +etbCurrentAdjustedTarget0 = scalar, F32, 1400, "%", 1, 0 +etbRevLimitActive0 = bits, U32, 1404, [0:0] +jamDetected0 = bits, U32, 1404, [1:1] +etbDutyRateOfChange0 = scalar, F32, 1408, "per", 1,0 +etbDutyAverage0 = scalar, F32, 1412, "per", 1,0 +etbTpsErrorCounter0 = scalar, U16, 1416, "count", 1,0 +etbPpsErrorCounter0 = scalar, U16, 1418, "count", 1,0 +etbErrorCode0 = scalar, S08, 1420, "", 1, 0 +tcEtbDrop0 = scalar, S08, 1421, "", 1, 0 +jamTimer0 = scalar, U16, 1422, "sec", 0.01, 0 +; total TS size = 1424 +faultCode0 = scalar, U08, 1424, "", 1, 0 +heaterDuty0 = scalar, U08, 1425, "%", 1, 0 +pumpDuty0 = scalar, U08, 1426, "%", 1, 0 +tempC0 = scalar, U16, 1428, "C", 1, 0 +nernstVoltage0 = scalar, U16, 1430, "V", 0.001, 0 +esr0 = scalar, U16, 1432, "ohm", 1, 0 +; total TS size = 1436 +dcOutput0 = scalar, F32, 1436, "per", 1,0 +isEnabled0_int = scalar, U08, 1440, "per", 1,0 +isEnabled0 = bits, U32, 1444, [0:0] +; total TS size = 1448 +value0 = scalar, U16, 1448, "value", 1,0 +value1 = scalar, U16, 1450, "value", 1,0 +errorRate = scalar, F32, 1452, "ratio", 1,0 +; total TS size = 1456 +vvtTarget = scalar, U16, 1456, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1458, "%", 0.5, 0 +; total TS size = 1460 +lambdaCurrentlyGood = bits, U32, 1460, [0:0] +lambdaMonitorCut = bits, U32, 1460, [1:1] +lambdaTimeSinceGood = scalar, U16, 1464, "sec", 0.01, 0 +; total TS size = 1468 + + + time = { timeNow } + + egoCorrectionForVeAnalyze = { 100 + fuelPidCorrection1 } + + wbo0_hasFault = { enableAemXSeries && (faultCode0 >= 3) } + +[PcVariables] + tuneCrcPcVariable = continuousChannelValue, tuneCrc16 + + wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; + wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 + + gearCountArray = array, S08, [10], "Gear", 1, 0, -1, { 10 - 2 }, 0, noMsqSave + solenoidCountArray = array, U08, [6], "Solenoid", 1, 0, 1, 6, 0, noMsqSave + + rangeInputArray = array, U08, [6], "Input", 1, 0, 0, 6, 0, noMsqSave + rangeStateArray = array, U08, [9], "State", 1, 0, 0, 9, 0, noMsqSave + +; wall of debug mode :) +; https://rusefi.com/wiki/index.php?title=Manual:Debug_fields +; Alternator TPS Acceleration Idle Engine Load Acc Trigger Counters VVT1 PID Cranking Ignition Timing Fu Corr VSS SD Card Knock Wall Wetting ETB PID Executor InstantRpm CJ125 CAN MAP TLE8888 Analog inputs 2 Start ETB Autotune DYNO_VIEW LOGIC_ANALYZER Wideband TCU Lua VVT2 PID VVT3 PID VVT4 PID +; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 +; DBG_ALTERNATOR_PID DBG_TPS_ACCEL DBG_IDLE_CONTROL + debugFieldF1List = bits, U08, [0:7], "Alt: Controller Output", "From TPS", "", "Idle: Controller Output", "Idle output", " ", "", "VVT1: Controller Output"," ", "", "Ign IAT Corr", "", "", "Total SD", "last volts", "", "WW: Alpha", "ETB Controller Output", "", "", "df1", "df1", "InstantRpm", "", "24:df1", "CJ125: output", "", "MAP Average", "", "", "", "", "TPS1 Pri/Sec Diff", "", "", "", "","S unused" "", "Osc Amplitude", "", "", "", "" , "VSS", "", "WB: Pump DAC duty", "", "Lua Debug 1", "VVT2: Controller Output","VVT3: Controller Output","VVT4: Controller Output" + debugFieldF2List = bits, U08, [0:7], "Alt: I Term", "To TPS", "", "Idle: I Term", "Idle df2", " ", "", "VVT1: I Term", " ", "", "Ign CLT Corr", "", "", "Write Cnt","last filtered","", "WW: Beta", "ETB I Term", "", "", "df2", "df2", "InstantRPM Ratio","", "24:df2", "CJ125: i term", "", "MAP Duration", "", "", "", "", "TPS2 Pri/Sec Diff", "", "", "", "","S unused" "", "Duty Amplitude", "", "", "", "" , "Speed", "", "WB: ESR", "", "Lua Debug 2", "VVT2: I Term", "VVT3: I Term", "VVT4: I Term" + debugFieldF3List = bits, U08, [0:7], "Alt: Previous Error", "Current TPS<>TPS", "", "Idle: prev error", "Idle df3", "ICU sum", "", "VVT1: prev error", "", "", "", "", "", "Sync Cnt", "", "", "WW: film mass", "ETB err", "", "", "df3", "df3", "22df3", "", "24:df3", "CJ125: err", "", "MAP Fast", "", "", "", "", "TPS1/2 Diff", "", "", "", "","S unused" "", "Tu", "", "", "", "" , "DeltaSpeed", "", "WB: Nernst Voltage", "", "Lua Debug 3", "VVT2: prev error", "VVT3: prev error", "VVT4: prev error" + debugFieldF4List = bits, U08, [0:7], "Alt: I Gain", "Extra Fuel", "", "Idle: I Gain", "Idle df4", " ", "", "VVT1: I Gain", "", "", "Ign PID Adj", "", "", "File Cnt", "", "", "WW: m_cmd", "ETB I setting", "", "", "df4", "df4", "22df4", "", "24:df4", "CJ125: UA", "", "MAP Estimate", "", "", "", "", "Acc Pedal Pri/Sec Diff","", "", "", "","S unused" "", "Ku", "", "", "", "", "accel", "", "WB: Lambda", "", "Lua Debug 4", "VVT2: I Gain", "VVT3: I Gain", "VVT4: I Gain" + debugFieldF5List = bits, U08, [0:7], "Alt: D Gain", "df5", "", "Idle: D Gain", "Idle df5", " ", "df5", "VVT1: D Gain", "", "", "", "", "", "", "", "", "WW: film mass next","ETB D setting", "df5", "df5", "df5", "df5", "22df5", "", "24:df5", "CJ125: UR", "", "MAP Instant", "", "", "", "", "TPS1 Pri/Sec Ratio", "", "", "", "","S unused" "", "Kp", "", "", "", "", "", "", "", "", "Lua Debug 5", "VVT2: D Gain", "VVT3: D Gain", "VVT4: D Gain" + debugFieldF6List = bits, U08, [0:7], "Alt: D Term", "", "", "Idle: D Term", "Idle df6", " ", "", "VVT1: D Term", "", "", "", "", "", "", "", "", "", "ETB df6", "", "", "df6", "df6", "22df6", "", "24:df6", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Ki", "", "", "", "", "", "", "", "", "Lua Debug 6", "VVT2: D Term", "VVT3: D Term", "VVT4: D Term" + debugFieldF7List = bits, U08, [0:7], "Alt: Max-Value", "", "", "Idle: Max-Value", "Idle df7", "", "", "VVT1: Max-Value", "", "", "", "", "", "", "", "", "", "ETB df7", "", "", "df7", "df7", "22df7", "", "24:df7", "cj: f7", "", "", "", "", "", "", "", "", "", "", "","S unused" "", "Kd", "", "", "", "", "", "", "", "", "Lua Debug 7", "", "", "" + debugFieldI1List = bits, U08, [0:7], "Alt: P Gain", "", "", "Idle: P Gain", "Idle di1", " ", "", "VVT1: P Gain", " ", "Cycle Counter", "Multispark Count", "", "", "", "hip corr", "", "", "ETB P-Gain", "t counter", "", "di1", "di1", "Spark Event Gap","", "24:di1", "CJ125: state", "read count","MAP counter", "", "", "", "SPI Counter", "", "", "", "", "","Start Count", "", "", "", "", "", "", "deltatime", "", "", "Solenoid 1 State", "Lua memory used","VVT2: P Gain", "VVT3: P Gain", "VVT4: P Gain" + debugFieldI2List = bits, U08, [0:7], "Alt: Offset", "", "", "Idle: Offset", "Idle di2", " ", "", "VVT1: Offset", "", "", "", "", "", "", "hip incor", "", "", "ETB di2", "invocationcounter", "", "di2", "di2", "Inj Event Gap", "", "24:di2", "", "write count","MAP raw ADC", "", "", "", "Latest Transmit","", "", "", "", "","Starter Enable", "", "", "", "", "", "", "", "", "", "Solenoid 2 State", "", "VVT2: Offset", "VVT3: Offset", "VVT4: Offset" + debugFieldI3List = bits, U08, [0:7], "Alt: Reset Cnt", "", "", "Idle: Reset Cnt", "Idle di3", " ", "", "VVT1: 10xTarget", "", "", "", "", "", "", "", "", "", "ETB di3", "s counter", "", "di3", "di3", "22di3", "", "24:di3", "", "write err", "", "", "", "", "Latest Received","", "", "", "", "","Starter Disable","", "", "", "", "", "", "", "", "", "Solenoid 3 State", "", "VVT2: 10xTarger", "VVT3: 10xTarger", "VVT4: 10xTarger" + debugFieldI4List = bits, U08, [0:7], "Alt: Period", "", "", "Idle: State", "Idle di4", "Cycle Cnt 1", "", "", "", "", "", "", "", "", "", "", "", "ETB di4", "executor", "", "di4", "di4", "22di4", "", "24:di4", "", "", "", "", "", "", "Init Count", "", "", "", "", "","" "", "", "", "", "", "", "", "", "", "Solenoid 4 State", "", "", "", "" + debugFieldI5List = bits, U08, [0:7], "", "", "", "", "Idle di5", "Cycle Cnt 2", "", "", "", "", "", "", "", "", "", "di5", "di5", "ETB di5", "max executor", "di5", "di5", "di5", "22di5", "di5", "di5", "di5", "di5", "di5", "", "di5", "di5", "di5", "", "di5", "di5", "di5", "","" "", "", "", "", "", "", "", "", "", "Solenoid 5 State", "", "", "", "" + + wboFaultCodeList = bits, U08, [0:3], "OK", "silent", "cranking", "failed to heat", "overheat", "underheat", "no supply", "legacy" + + injModeList = bits, U08, [0:3], "Simultaneous", "Sequential", "Batch", "Single Point" + ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" + +; ClearReason + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot", "GDI Comms", "Brake" + +; TpsState + etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" + + outputDiagErrorList = bits, U08, [0:3], "Not used", "No error", "Open Load", "Short to Gnd", "Short to Battery", "Overload", "Driver Overtemp", "Driver disabled", "Unknown" + +[ConstantsExtensions] + ; defaultValue is used to provide TunerStudio with a value to use in the case of + ; the constant not yet being initialized. This is primarily important if the + ; constant is used as a variable in the ini. + ; defaultValue = constantName, value; + defaultValue = wueAfrTargetOffset, -1.5 -1.4 -1.15 -0.95 -0.775 -0.65 -0.5625 -0.5 -0.4375 -0.375 -0.3125 -0.25 -0.1875 -0.125 -0.0625 0 + + ; this magic is best described in output_channels.txt search for 'maintainConstantValue' + ; TPS 1 Primary + maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax } + maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin } + + ; TPS 1 Secondary + maintainConstantValue = tps1SecondaryMax, { (calibrationMode == 6 ) ? calibrationValue : tps1SecondaryMax } + maintainConstantValue = tps1SecondaryMin, { (calibrationMode == 7 ) ? calibrationValue : tps1SecondaryMin } + + ; TPS 2 Primary + maintainConstantValue = tps2Max, { (calibrationMode == 8 ) ? calibrationValue : tps2Max } + maintainConstantValue = tps2Min, { (calibrationMode == 9 ) ? calibrationValue : tps2Min } + + ; TPS 2 Secondary + maintainConstantValue = tps2SecondaryMax, { (calibrationMode == 10 ) ? calibrationValue : tps2SecondaryMax } + maintainConstantValue = tps2SecondaryMin, { (calibrationMode == 11 ) ? calibrationValue : tps2SecondaryMin } + + ; ETB Auto Gain Calibration + maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor } + maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor } + maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor } + + maintainConstantValue = throttlePedalUpVoltage, { (calibrationMode == 12 ) ? calibrationValue : throttlePedalUpVoltage } + maintainConstantValue = throttlePedalSecondaryUpVoltage, { (calibrationMode == 12 ) ? calibrationValue2 : throttlePedalSecondaryUpVoltage } + + maintainConstantValue = throttlePedalWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue : throttlePedalWOTVoltage } + maintainConstantValue = throttlePedalSecondaryWOTVoltage, { (calibrationMode == 13 ) ? calibrationValue2 : throttlePedalSecondaryWOTVoltage } + + requiresPowerCycle = boardUseCanTerminator + requiresPowerCycle = lps25BaroSensorScl + requiresPowerCycle = lps25BaroSensorSda + requiresPowerCycle = binarySerialTxPin + requiresPowerCycle = binarySerialRxPin + requiresPowerCycle = tunerStudioSerialSpeed + requiresPowerCycle = auxSerialRxPin + requiresPowerCycle = auxSerialTxPin + + requiresPowerCycle = canWriteEnabled + requiresPowerCycle = canReadEnabled + requiresPowerCycle = can1ListenMode + requiresPowerCycle = can2ListenMode + + requiresPowerCycle = startStopButtonPin + requiresPowerCycle = startStopButtonMode + + requiresPowerCycle = enableAemXSeries + + requiresPowerCycle = etb_use_two_wires + requiresPowerCycle = etbSplit + requiresPowerCycle = etbFreq + requiresPowerCycle = etbFunctions1 + requiresPowerCycle = etbFunctions2 + + requiresPowerCycle = idle_solenoidFrequency + requiresPowerCycle = boostPwmFrequency + requiresPowerCycle = alternatorPwmFrequency + requiresPowerCycle = vvtOutputFrequency + requiresPowerCycle = vvtPins1 + requiresPowerCycle = vvtPins2 + requiresPowerCycle = vvtPins3 + requiresPowerCycle = vvtPins4 + + requiresPowerCycle = auxAnalogInputs1 + requiresPowerCycle = auxAnalogInputs2 + requiresPowerCycle = auxAnalogInputs3 + requiresPowerCycle = auxAnalogInputs4 + requiresPowerCycle = auxAnalogInputs5 + requiresPowerCycle = auxAnalogInputs6 + requiresPowerCycle = auxAnalogInputs7 + requiresPowerCycle = auxAnalogInputs8 + + requiresPowerCycle = knockBandCustom + + readOnly = warning_message + + defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8 + readOnly = gearCountArray + defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8 + readOnly = solenoidCountArray + + defaultValue = rangeStateArray, 0 1 2 3 4 5 6 7 8 + readOnly = rangeStateArray + defaultValue = rangeInputArray, 0 1 2 3 4 5 + readOnly = solenoidCountArray + +[CurveEditor] +; xAxis = leftValue, rightValue, step +; yAxis = bottomValue, topValue, step + + curve = knockThresholdCurve, "Engine knock threshold RPM based" + columnLabel = "RPM", "Threshold" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 10 + xBins = knockNoiseRpmBins, RPMValue + yBins = knockBaseNoise + gauge = RPMGauge + + curve = scriptCurve1, "Script Curve #1" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -155, 150, 10 + xBins = scriptCurve1Bins + yBins = scriptCurve1 + showTextValues = true + + curve = scriptCurve2, "Script Curve #2" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -150, 150, 10 + xBins = scriptCurve2Bins + yBins = scriptCurve2 + showTextValues = true + + curve = scriptCurve3, "Script Curve #3" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve3Bins + yBins = scriptCurve3 + showTextValues = true + + curve = scriptCurve4, "Script Curve #4" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve4Bins + yBins = scriptCurve4 + showTextValues = true + + curve = scriptCurve5, "Script Curve #5" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve5Bins + yBins = scriptCurve5 + showTextValues = true + + curve = scriptCurve6, "Script Curve #6" + columnLabel = "X", "Y" + xAxis = 0, 128, 10 + yAxis = -5, 5, 10 + xBins = scriptCurve6Bins + yBins = scriptCurve6 + showTextValues = true + + curve = dwellCorrection, "Dwell time base" + columnLabel = "RPM", "Dwell" + xAxis = 0, 8000, 9 + yAxis = 0, 8, 9 + xBins = sparkDwellRpmBins, RPMValue + yBins = sparkDwellValues + gauge = RPMGauge + + curve = dwellVoltageCorrection, "Dwell voltage correction" + columnLabel = "Battery Volts", "Multiplier" + xAxis = 6, 16, 11 + yAxis = 0, 3, 7 + xBins = dwellVoltageCorrVoltBins, VBatt + yBins = dwellVoltageCorrValues + gauge = VBattGauge + + curve = tpsTspRpmCorrection, "Transient RPM correction" + columnLabel = "RPM", "Multiplier" + xAxis = 0, 8000, 9 + yAxis = 0, 3, 7 + xBins = tpsTspCorrValuesBins, RPMValue + yBins = tpsTspCorrValues + gauge = RPMGauge + + curve = primingPulse, "Priming pulse fuel mass" + columnLabel = "Coolant", "Prime Pulse" + xAxis = -40, 120, 9 + yAxis = 0, 1000, 9 + xBins = primeBins, coolant + yBins = primeValues + gauge = CLTGauge + + curve = map_samplingAngleCurve, "MAP Sampling Start Angle" + columnLabel = "RPM", "Angle" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingAngleBins, RPMValue + yBins = map_samplingAngle + gauge = MAPGauge + + curve = map_samplingWindowCurve, "MAP Sampling Duration" + columnLabel = "RPM", "Window" + xAxis = 0, 8000, 9 + yAxis = 0, 180, 10 + xBins = map_samplingWindowBins, RPMValue + yBins = map_samplingWindow + gauge = MAPGauge + + curve = injectorsDeadTime, "Injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injector_battLagCorrBins, VBatt + yBins = injector_battLagCorr + gauge = VBattGauge + + curve = injectorsSecondaryDeadTime, "Secondary injector dead time" + columnLabel = "Battery", "Dead Time" + xAxis = 6, 16, 11 + yAxis = 0, 8, 9 + xBins = injectorSecondary_battLagCorrBins, VBatt + yBins = injectorSecondary_battLagCorr + gauge = VBattGauge + + curve = vrThresholdCurve1, "VR 1 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold1_rpmBins, RPMValue + yBins = vrThreshold1_values + + curve = vrThresholdCurve2, "VR 2 Threshold" + columnLabel = "RPM", "Voltage" + xAxis = 0, 8000, 9 + yAxis = 0, 2.5, 6 + xBins = vrThreshold2_rpmBins, RPMValue + yBins = vrThreshold2_values + + curve = mafDecodingCurve, "MAF sensor" + columnLabel = "Voltage", "kg/hour" + xAxis = -1, 6, 10 + yAxis = -30, 1300, 10 + xBins = mafDecodingBins, rawMaf + yBins = mafDecoding + gauge = rawMafGauge + + curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" + topicHelp = "iatFuelCorrCurveHelp" + columnLabel = "Air Temp", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 2, 11 + xBins = iatFuelCorrBins, intake + yBins = iatFuelCorr + gauge = IATGauge + + curve = cltTimingCorrCurve, "Warmup timing correction" + columnLabel = "Coolant", "Extra" + xAxis = -40, 120, 9 + yAxis = 0, 20, 9 + xBins = cltTimingBins, coolant + yBins = cltTimingExtra + gauge = CLTGauge + + curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + gauge = CLTGauge + + curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoef + gauge = CLTGauge + + curve = crankingCltCurveE100, "Cranking Coolant Temperature Multiplier (Flex Fuel E85)" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = crankingFuelBins, coolant + yBins = crankingFuelCoefE100 + gauge = CLTGauge + + curve = cltRevLimitCurve, "" + columnLabel = "Coolant", "RPM Limit" + xAxis = -40, 120, 9 + yAxis = 0, 8000, 9 + xBins = cltRevLimitRpmBins, coolant + yBins = cltRevLimitRpm + gauge = CLTGauge + + curve = etbTpsBiasCurve, "Electronic TB Bias Curve" + columnLabel = "TPS", "duty bias" + xAxis = 0, 50, 11 + yAxis = -40, 40, 9 + xBins = etbBiasBins, TPSValue + yBins = etbBiasValues + gauge = TPSGauge + + curve = crankingTpsCurve, "Cranking TPS Multiplier" + columnLabel = "TPS", "Multiplier" + xAxis = 0, 100, 11 + yAxis = 0, 3, 10 + xBins = crankingTpsBins, TPSValue + yBins = crankingTpsCoef + gauge = TPSGauge + + curve = crankingDurationCurve, "Cranking Cycle Multiplier" + columnLabel = "Engine Cycle", "Multiplier" + xAxis = 0, 50, 11 + yAxis = 0, 5, 6 + xBins = crankingCycleBins + yBins = crankingCycleCoef + + + curve = cltIdleCurve, "Warmup Idle multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 10 + yAxis = 0, 3, 10 + xBins = cltIdleCorrBins, coolant + yBins = cltIdleCorr + gauge = CLTGauge + + curve = iacCoastingCurve, "Coasting IAC Position" + columnLabel = "RPM", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 100, 10 + xBins = iacCoastingRpmBins, RPMValue + yBins = iacCoasting + gauge = idleAirValvePositionGauge + + curve = cltCrankingCurve, "Cranking Idle Air multiplier" + columnLabel = "Coolant", "Multiplier" + xAxis = -40, 120, 9 + yAxis = 0, 3, 10 + xBins = cltCrankingCorrBins, coolant + yBins = cltCrankingCorr + gauge = CLTGauge + + curve = cltIdleRPMCurve, "Idle Target RPM" + columnLabel = "Coolant", "RPM" + xAxis = -40, 120, 9 + yAxis = 0, 2400, 13 + xBins = cltIdleRpmBins, coolant + yBins = cltIdleRpm, RPMValue + gauge = CLTGauge + + curve = idleAdvanceCurve, "Idle Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 2400, 13 + yAxis = -100, 100, 11 + xBins = idleAdvanceBins, RPMValue + yBins = idleAdvance + gauge = RPMGauge + + curve = crankingAdvanceCurve, "Cranking Advance Angle" + columnLabel = "RPM", "degrees" + xAxis = 0, 1200, 13 + yAxis = -30, 30, 11 + xBins = crankingAdvanceBins, RPMValue + yBins = crankingAdvance + gauge = RPMGauge + + curve = fuelLevelCurve, "Fuel Level" + columnLabel = "Voltage", "%" + xAxis = 0, 5, 6 + yAxis = 0, 100, 11 + xBins = fuelLevelBins + yBins = fuelLevelValues + gauge = fuelTankLevelGauge + + curve = wueAfrTargetOffsetCurve, "AFR Target Temperature Adjustment" + columnLabel = "Coolant", "AFR Offset" + xAxis = -40, 200, 9 + yAxis = -3, 1, 5 + xBins = cltFuelCorrBins, coolant + yBins = wueAfrTargetOffset + gauge = cltGauge + + curve = wueAnalyzer_warmup_curve, "Warmup Enrichment" + columnLabel = "Coolant", "Current WUE", "Coolant", "Corrected" + xAxis = -40, 200, 9 + yAxis = 90, 500, 6 + xBins = cltFuelCorrBins, coolant + yBins = cltFuelCorr + yBins = wueAnalRecommend + ;gauge = cltGauge + + lineLabel = "Warmup Correction" + lineLabel = "Recommended WUE" + + curve = hpfpLobeProfileCurve, "HPFP Lobe Profile" + columnLabel = "% pump volume", "angle" + xAxis = 0, 100, 11 + yAxis = 0, 240, 13 + xBins = hpfpLobeProfileQuantityBins + yBins = hpfpLobeProfileAngle + + curve = hpfpDeadtimeCurve, "HPFP Valve Deadtime" + columnLabel = "volts", "ms" + xAxis = 5, 15, 11 + yAxis = 0, 5, 6 + xBins = hpfpDeadtimeVoltsBins + yBins = hpfpDeadtimeMS + + curve = wwTauCltCurve, "Evap time vs. CLT" + columnLabel = "coolant", "seconds" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwTauCltValues + gauge = CLTGauge + + curve = wwTauMapCurve, "Evap time vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwTauMapValues + gauge = MAPGauge + + curve = wwBetaCltCurve, "Impact fraction vs. CLT" + columnLabel = "coolant", "fraction" + xAxis = -40, 120, 9 + yAxis = 0, 2, 9 + xBins = wwCltBins, coolant + yBins = wwBetaCltValues + gauge = CLTGauge + + curve = wwBetaMapCurve, "Impact fraction vs. MAP" + columnLabel = "MAP", "mult" + xAxis = 0, 100, 5 + yAxis = 0, 2, 9 + xBins = wwMapBins, MAPValue + yBins = wwBetaMapValues + gauge = MAPGauge + + curve = tchargeCurve, "Charge temperature estimation coefficient" + columnLabel = "flow", "coefficient" + xAxis = 0, 500, 6 + yAxis = 0, 100, 5 + xBins = tchargeBins, mafEstimate + yBins = tchargeValues + gauge = tChargeGauge + + curve = tccLockCurve, "TCC Lock Curve" + columnLabel = "TPS", "Lock Speed", "Unlock Speed" + xAxis = 0, 100, 10 + yAxis = 0, 100, 10 + xBins = tcu_tccTpsBins, TPSValue + yBins = tcu_tccLockSpeed + yBins = tcu_tccUnlockSpeed + gauge = TPSGauge + + curve = pcPerGearCurve, "Transmission Line Pressure Control" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcValsR + yBins = tcu_pcValsN + yBins = tcu_pcVals1 + yBins = tcu_pcVals2 + yBins = tcu_pcVals3 + yBins = tcu_pcVals4 + lineLabel = "R%" + lineLabel = "N%" + lineLabel = "1%" + lineLabel = "2%" + lineLabel = "3%" + lineLabel = "4%" + +curve = pcPerShiftCurve, "Transmission Line Pressure Control - Shift" + columnLabel = "Airmass", "" + xAxis = 0, 5, 10 + yAxis = 0, 100, 10 + xBins = tcu_pcAirmassBins, chargeAirMass + yBins = tcu_pcVals12 + yBins = tcu_pcVals23 + yBins = tcu_pcVals34 + yBins = tcu_pcVals21 + yBins = tcu_pcVals32 + yBins = tcu_pcVals43 + lineLabel = "1->2%" + lineLabel = "2->3%" + lineLabel = "3->4%" + lineLabel = "2->1%" + lineLabel = "3->2%" + lineLabel = "4->3%" + +curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" + columnLabel = "Speed", "%" + xAxis = 0, 200, 20 + yAxis = 0, 100, 10 + xBins = tcu_32SpeedBins, vehicleSpeedKph + yBins = tcu_32Vals + +curve = rangeMatrix, "Range Switch Input Matrix" + columnLabel = "Pin", "" + xAxis = 0, 6, 6 + yAxis = 0, 3, 3 + xBins = rangeInputArray + yBins = tcu_rangeP + yBins = tcu_rangeR + yBins = tcu_rangeN + yBins = tcu_rangeD + yBins = tcu_rangeM + yBins = tcu_rangeM3 + yBins = tcu_rangeM2 + yBins = tcu_rangeM1 + yBins = tcu_rangePlus + yBins = tcu_rangeMinus + yBins = tcu_rangeLow + lineLabel = "Park" + lineLabel = "Reverse" + lineLabel = "Neutral" + lineLabel = "Drive" + lineLabel = "Manual" + lineLabel = "Manual 3rd" + lineLabel = "Manual 2nd" + lineLabel = "Manual 1st" + lineLabel = "Manual +" + lineLabel = "Manual -" + lineLabel = "Low" + + curve = ignAdder1Bias, "Ignition adder 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends1_blendBins, ignBlendParameter1 + yBins = ignBlends1_blendValues + + curve = ignAdder2Bias, "Ignition adder 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends2_blendBins, ignBlendParameter2 + yBins = ignBlends2_blendValues + + curve = ignAdder3Bias, "Ignition adder 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends3_blendBins, ignBlendParameter3 + yBins = ignBlends3_blendValues + + curve = ignAdder4Bias, "Ignition adder 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = ignBlends4_blendBins, ignBlendParameter4 + yBins = ignBlends4_blendValues + + curve = veBlend1Bias, "VE blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends1_blendBins, veBlendParameter1 + yBins = veBlends1_blendValues + + curve = veBlend2Bias, "VE blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends2_blendBins, veBlendParameter2 + yBins = veBlends2_blendValues + + curve = veBlend3Bias, "VE blend 3 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends3_blendBins, veBlendParameter3 + yBins = veBlends3_blendValues + + curve = veBlend4Bias, "VE blend 4 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = veBlends4_blendBins, veBlendParameter4 + yBins = veBlends4_blendValues + + curve = boostOpenLoopBlend1Bias, "Boost open loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends1_blendBins, boostOpenLoopBlendParameter1 + yBins = boostOpenLoopBlends1_blendValues + + curve = boostOpenLoopBlend2Bias, "Boost open loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostOpenLoopBlends2_blendBins, boostOpenLoopBlendParameter2 + yBins = boostOpenLoopBlends2_blendValues + + curve = boostClosedLoopBlend1Bias, "Boost Closed loop blend 1 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends1_blendBins, boostClosedLoopBlendParameter1 + yBins = boostClosedLoopBlends1_blendValues + + curve = boostClosedLoopBlend2Bias, "Boost Closed loop blend 2 bias" + columnLabel = "param", "bias" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = boostClosedLoopBlends2_blendBins, boostClosedLoopBlendParameter2 + yBins = boostClosedLoopBlends2_blendValues + + curve = throttleEffectiveArea, "Throttle effective area" + columnLabel = "TPS", "normalized flow" + xAxis = 0, 100, 11 + yAxis = 0, 2, 5 + xBins = throttleEstimateEffectiveAreaBins, TPSValue + yBins = throttleEstimateEffectiveAreaValues + gauge = TPSGauge + + curve = boostOpenLoopGearAdderCurve, "Boost Open Loop gear-based adder" + columnLabel = "Gear", "duty cycle" + xAxis = 0, 100, 11 + yAxis = 0, 100, 5 + xBins = gearCountArray, tcuCurrentGear + yBins = gearBasedOpenLoopBoostAdder + +[TableEditor] + ; table_id, map3d_id, "title", page + +; move table into a panel? or find a way to add a link to https://rusefi.com/s/tpstps https://github.com/rusefi/rusefi/issues/5130 + table = tpsTpsAccelTbl, tpsTpsAccelMap, "TPS/TPS Acceleration Extra Fuel(ms)", 1 + topicHelp = "tpstpsHelp" + xBins = tpsTpsAccelFromRpmBins, TPSValue + yBins = tpsTpsAccelToRpmBins, TPSValue + zBins = tpsTpsAccelTable + + table = tractionEtbTableTbl, tractionEtb, "Traction Control ETB drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlEtbDrop + + table = tractionTimingTableTbl, tractionEtb, "Traction Control Timing drop", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlTimingDrop + + table = tractionIgnitionSkipTableTbl, tractionEtb, "Traction Control Skip Ignition", 1 + xBins = tractionControlSpeedBins, vehicleSpeedKph + yBins = tractionControlSlipBins, wheelSlipRatio + zBins = tractionControlIgnitionSkip + + table = boostTableTbl, boostMapOpen, "Boost control duty cycle (open loop)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableOpenLoop + + table = boostTable2Tbl, boostMapClosed, "Boost control target (kPa)", 1 + xBins = boostRpmBins, RPMValue + yBins = boostTpsBins, TPSValue + zBins = boostTableClosedLoop + + table = vvtTable1Tbl, vvtTable1Map, "Intake VVT closed loop Target", 1 + xBins = vvtTable1RpmBins, RPMValue + yBins = vvtTable1LoadBins, fuelingLoad + zBins = vvtTable1 + + table = vvtTable2Tbl, vvtTable2Map, "Exhaust VVT closed loop Target", 1 + xBins = vvtTable2RpmBins, RPMValue + yBins = vvtTable2LoadBins, fuelingLoad + zBins = vvtTable2 + + + table = scriptTable1Tbl, scriptTable1Map, "Script Table #1", 1 + xBins = scriptTable1RpmBins, RPMValue + yBins = scriptTable1LoadBins, fuelingLoad + zBins = scriptTable1 + + table = scriptTable2Tbl, scriptTable2Map, "Script Table #2", 1 + xBins = scriptTable2RpmBins, RPMValue + yBins = scriptTable2LoadBins, fuelingLoad + zBins = scriptTable2 + + table = scriptTable3Tbl, scriptTable3Map, "Script Table #3", 1 + xBins = scriptTable3RpmBins, RPMValue + yBins = scriptTable3LoadBins, fuelingLoad + zBins = scriptTable3 + + table = scriptTable4Tbl, scriptTable4Map, "Script Table #4", 1 + xBins = scriptTable4RpmBins, RPMValue + yBins = scriptTable4LoadBins, fuelingLoad + zBins = scriptTable4 + + table = IgnRetardTableALS, IgnRetardALS, "Ignition adjustment", 1 + xBins = alsIgnRetardrpmBins, RPMValue + yBins = alsIgnRetardLoadBins, TPSValue + zBins = ALSTimingRetardTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = FuelAdderTableALS, FuelAdderALS, "Fuel adjustment", 1 + xBins = alsFuelAdjustmentrpmBins, RPMValue + yBins = alsFuelAdjustmentLoadBins, TPSValue + zBins = ALSFuelAdjustment + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = IgnSkipTableALS, IgnSkipALS, "Ignition Skip", 1 + ; constant, variable + xBins = alsIgnSkiprpmBins, RPMValue + yBins = alsIgnSkipLoadBins, TPSValue + zBins = ALSIgnSkipTable + gridHeight = 4.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 + xyLabels = "RPM", "Ignition Load" + xBins = baroCorrRpmBins, RPMValue + yBins = baroCorrPressureBins, baroPressure + zBins = baroCorrTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignitionRpmBins, RPMValue + yBins = ignitionLoadBins, ignitionLoad + zBins = ignitionTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignAdder1Table, ignAdder1Map, "Ignition adder 1", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends1_rpmBins, RPMValue + yBins = ignBlends1_loadBins, ignitionLoad + zBins = ignBlends1_table + gridOrient = 250, 0, 340 + + table = ignAdder2Table, ignAdder2Map, "Ignition adder 2", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends2_rpmBins, RPMValue + yBins = ignBlends2_loadBins, ignitionLoad + zBins = ignBlends2_table + gridOrient = 250, 0, 340 + + table = ignAdder3Table, ignAdder3Map, "Ignition adder 3", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends3_rpmBins, RPMValue + yBins = ignBlends3_loadBins, ignitionLoad + zBins = ignBlends3_table + gridOrient = 250, 0, 340 + + table = ignAdder4Table, ignAdder4Map, "Ignition adder 4", 1 + xyLabels = "RPM", "Ignition Load" + xBins = ignBlends4_rpmBins, RPMValue + yBins = ignBlends4_loadBins, ignitionLoad + zBins = ignBlends4_table + gridOrient = 250, 0, 340 + + table = veBlend1Table, veBlend1Map, "VE blend 1", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends1_rpmBins, RPMValue + yBins = veBlends1_loadBins, fuelingLoad + zBins = veBlends1_table + gridOrient = 250, 0, 340 + + table = veBlend2Table, veBlend2Map, "VE blend 2", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends2_rpmBins, RPMValue + yBins = veBlends2_loadBins, fuelingLoad + zBins = veBlends2_table + gridOrient = 250, 0, 340 + + table = veBlend3Table, veBlend3Map, "VE blend 3", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends3_rpmBins, RPMValue + yBins = veBlends3_loadBins, fuelingLoad + zBins = veBlends3_table + gridOrient = 250, 0, 340 + + table = veBlend4Table, veBlend4Map, "VE blend 4", 1 + xyLabels = "RPM", "Fueling Load" + xBins = veBlends4_rpmBins, RPMValue + yBins = veBlends4_loadBins, fuelingLoad + zBins = veBlends4_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend1Table, boostOpenBlend1Map, "Boost open loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends1_rpmBins, RPMValue + yBins = boostOpenLoopBlends1_loadBins, TPSValue + zBins = boostOpenLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostOpenBlend2Table, boostOpenBlend2Map, "Boost open loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostOpenLoopBlends2_rpmBins, RPMValue + yBins = boostOpenLoopBlends2_loadBins, TPSValue + zBins = boostOpenLoopBlends2_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend1Table, boostClosedBlend1Map, "Boost closed loop blend 1", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends1_rpmBins, RPMValue + yBins = boostClosedLoopBlends1_loadBins, TPSValue + zBins = boostClosedLoopBlends1_table + gridOrient = 250, 0, 340 + + table = boostClosedBlend2Table, boostClosedBlend2Map, "Boost closed loop blend 2", 1 + xyLabels = "RPM", "TPS" + xBins = boostClosedLoopBlends2_rpmBins, RPMValue + yBins = boostClosedLoopBlends2_loadBins, TPSValue + zBins = boostClosedLoopBlends2_table + gridOrient = 250, 0, 340 + + table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 + xyLabels = "Air Temp", "Ignition Load" + xBins = ignitionIatCorrTempBins, intake + yBins = ignitionIatCorrLoadBins, ignitionLoad + zBins = ignitionIatCorrTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = torqueTableTbl, torqueTableMap, "Engine Torque", 1 + xBins = torqueRpmBins, RPMValue + yBins = torqueLoadBins, veTableYAxis + zBins = torqueTable + + table = veTableTbl, veTableMap, "VE Table", 1 + xyLabels = "RPM", "load" + xBins = veRpmBins, RPMValue + yBins = veLoadBins, veTableYAxis + zBins = veTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = idleVeTableTbl, idleVeTable, "Idle VE" + xyLabels = "RPM", "load" + xBins = idleVeRpmBins, RPMValue + yBins = idleVeLoadBins, veTableYAxis + zBins = idleVeTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims1_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims2_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims3_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims4_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims5_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims6_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims7_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims8_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims9_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims10_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims11_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1 + xBins = fuelTrimRpmBins, RPMValue + yBins = fuelTrimLoadBins, veTableYAxis + zBins = fuelTrims12_table + upDownLabel = "(RICHER)", "(LEANER)" + + table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims1_table + + table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims2_table + + table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims3_table + + table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims4_table + + table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims5_table + + table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims6_table + + table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims7_table + + table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims8_table + + table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1 + xBins =ignTrimRpmBins, RPMValue + yBins =ignTrimLoadBins, ignitionLoad + zBins =ignTrims9_table + + table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims10_table + + table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims11_table + + table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1 + xBins = ignTrimRpmBins, RPMValue + yBins = ignTrimLoadBins, ignitionLoad + zBins = ignTrims12_table + + table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1 + xBins = mapEstimateRpmBins, RPMValue + yBins = mapEstimateTpsBins, TPSValue + zBins = mapEstimateTable + + table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 + topicHelp = "fuelHelp" + xBins = injPhaseRpmBins, RPMValue + yBins = injPhaseLoadBins, fuelingLoad + zBins = injectionPhase +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = pedalToTpsTbl, pedalToTpsMap, "ETB Pedal to TPS", 1 + xBins = pedalToTpsRpmBins, RPMValue + yBins = pedalToTpsPedalBins, throttlePedalPosition + zBins = pedalToTpsTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = throttle2TrimTbl, throttle2TrimMap, "ETB #2 Trim", 1 + xBins = throttle2TrimRpmBins, RPMValue + yBins = throttle2TrimTpsBins, TPSValue + zBins = throttle2TrimTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + + table = maxKnockRetardTbl, maxKnockRetardMap, "Max knock retard", 1 + xBins = maxKnockRetardRpmBins, RPMValue + yBins = maxKnockRetardLoadBins, TPSValue + zBins = maxKnockRetardTable + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + +#if LAMBDA + table = lambdaTableTbl, lambdaTableMap, "Target Lambda Table", 1 +#else + table = afrTableTbl, afrTableMap, "Target AFR Table", 1 +#endif + xBins = lambdaRpmBins, RPMValue + yBins = lambdaLoadBins, afrTableYAxis + zBins = lambdaTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 + xyLabels = "RPM", "" + xBins = lambdaMaxDeviationRpmBins, RPMValue + yBins = lambdaMaxDeviationLoadBins, afrTableYAxis + zBins = lambdaMaxDeviationTable + + table = iacPidMultTbl, iacPidMultMap, "IAC PID Multiplier Table", 1 + xBins = iacPidMultRpmBins, RPMValue + yBins = iacPidMultLoadBins, fuelingLoad + zBins = iacPidMultTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(Later)", "(Sooner)" + + table = gppwm1Tbl, gppwm1Map, "GP#1", 1 + xyLabels = "RPM", "" + xBins = gppwm1_rpmBins, gppwmXAxis1 + yBins = gppwm1_loadBins, gppwmYAxis1 + zBins = gppwm1_table + + table = gppwm2Tbl, gppwm2Map, "GP#2", 1 + xyLabels = "RPM", "" + xBins = gppwm2_rpmBins, gppwmXAxis2 + yBins = gppwm2_loadBins, gppwmYAxis2 + zBins = gppwm2_table + + table = gppwm3Tbl, gppwm3Map, "GP#3", 1 + xyLabels = "RPM", "" + xBins = gppwm3_rpmBins, gppwmXAxis3 + yBins = gppwm3_loadBins, gppwmYAxis3 + zBins = gppwm3_table + + table = gppwm4Tbl, gppwm4Map, "GP#4", 1 + xyLabels = "RPM", "" + xBins = gppwm4_rpmBins, gppwmXAxis4 + yBins = gppwm4_loadBins, gppwmYAxis4 + zBins = gppwm4_table + + table = stagedInjectionTbl, stagedInjectionMap, "Staged Injection %", 1 + xyLabels = "RPM", "" + xBins = injectorStagingRpmBins, RPMValue + yBins = injectorStagingLoadBins, fuelingLoad + zBins = injectorStagingTable + + table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1 + xBins = gearCountArray, tcuCurrentGear + yBins = solenoidCountArray, tcuCurrentGear + zBins = tcuSolenoidTable + xyLabels = "Solenoid", "Gear" + + table = hpfpTargetTable, hpfpTargetTableId, "HPFP Target Fuel Pressure", 1 + xBins = hpfpTargetRpmBins, RPMValue + yBins = hpfpTargetLoadBins, veTableYAxis + zBins = hpfpTarget + + table = hpfpCompensationTable, hpfpCompensationTableId, "HPFP Pump Compensation Factor", 1 + xBins = hpfpCompensationRpmBins, RPMValue + yBins = hpfpCompensationLoadBins, running_fuel + zBins = hpfpCompensation + + table = postCrankingEnrichmentTbl, postCrankingEnrichmentMap, "After start enrichment", 1 + xyLabels = "Engine Cycles", "Coolant Temp" + xBins = postCrankingDurationBins, revolutionCounterSinceStart + yBins = postCrankingCLTBins, coolant + zBins = postCrankingFactor + + +[GaugeConfigurations] + gaugeCategory = "Sync" +triggerVvt2FallGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +triggerVvt2RiseGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0.0,3000.0, 0.0,3000.0, 0.0,3000.0, 0,0 +currentEngineDecodedPhaseGauge = currentEngineDecodedPhase,"Sync: Engine Phase", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + gaugeCategory = "Fuel: math" +totalFuelCorrectionGauge = totalFuelCorrection,"Fuel: Total correction", "mult", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +running_timeSinceCrankingInSecsGauge = running_timeSinceCrankingInSecs,"running_ timeSinceCrankingInSecs", "secs", 0.0,600000.0, 0.0,600000.0, 0.0,600000.0, 0,0 +targetLambdaGauge = targetLambda,"Fuel: target lambda", "", 0.5,1.5, 0.5,1.5, 0.5,1.5, 2,2 +targetAFRGauge = targetAFR,"Fuel: target AFR", "ratio", 10.0,20.0, 10.0,20.0, 10.0,20.0, 2,2 + gaugeCategory = "Timing" +baseDwellGauge = baseDwell,"Ignition: base dwell", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +sparkDwellGauge = sparkDwell,"Ignition: coil charge time", "ms", 0.0,30.0, 0.0,30.0, 0.0,30.0, 1,1 +dwellDurationAngleGauge = dwellDurationAngle,"Ignition: dwell duration", "deg", 0.0,120.0, 0.0,120.0, 0.0,120.0, 1,1 +cltTimingCorrectionGauge = cltTimingCorrection,"Ign: CLT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingIatCorrectionGauge = timingIatCorrection,"Ign: IAT correction", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +timingPidCorrectionGauge = timingPidCorrection,"Idle: Timing adjustment", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingAddGauge = luaTimingAdd,"Ign: Lua timing add", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 +luaTimingMultGauge = luaTimingMult,"Ign: Lua timing mult", "deg", -20.0,20.0, -20.0,20.0, -20.0,20.0, 2,2 + gaugeCategory = "Boost Control" +luaTargetAddGauge = luaTargetAdd,"Boost: Lua target add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostOutputGauge = boostOutput,"Boost: Output", "percent", -100.0,100.0, -100.0,100.0, -100.0,100.0, 2,2 +luaTargetMultGauge = luaTargetMult,"Boost: Lua target mult", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +openLoopPartGauge = openLoopPart,"Boost: Open loop", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +luaOpenLoopAddGauge = luaOpenLoopAdd,"Boost: Lua open loop add", "v", -100.0,100.0, -100.0,100.0, -100.0,100.0, 1,1 +boostControllerClosedLoopPartGauge = boostControllerClosedLoopPart,"Boost: Closed loop", "%", -50.0,50.0, -50.0,50.0, -50.0,50.0, 1,1 +boostControlTargetGauge = boostControlTarget,"Boost: Target", "kPa", 0.0,300.0, 0.0,300.0, 0.0,300.0, 1,1 + gaugeCategory = "ETB more" +idlePosition0Gauge = idlePosition0,"ETB: idlePosition0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +luaAdjustment0Gauge = luaAdjustment0,"ETB: luaAdjustment0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +m_wastegatePosition0Gauge = m_wastegatePosition0,"DC: wastegatePosition0", "per", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 +etbDutyRateOfChange0Gauge = etbDutyRateOfChange0,"ETB duty rate of change0", "per", 0.0,25.0, 0.0,25.0, 0.0,25.0, 2,2 +etbDutyAverage0Gauge = etbDutyAverage0,"ETB average duty0", "per", -20.0,50.0, -20.0,50.0, -20.0,50.0, 2,2 +etbTpsErrorCounter0Gauge = etbTpsErrorCounter0,"ETB TPS error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +etbPpsErrorCounter0Gauge = etbPpsErrorCounter0,"ETB pedal error counter0", "count", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +dcOutput0Gauge = dcOutput0,"DC: output0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +isEnabled0_intGauge = isEnabled0_int,"DC: en0", "per", 0.0,10.0, 0.0,10.0, 0.0,10.0, 2,2 +value0Gauge = value0,"ETB: SENT value0", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +value1Gauge = value1,"ETB: SENT value1", "value", 0.0,3.0, 0.0,3.0, 0.0,3.0, 0,0 +errorRateGauge = errorRate,"ETB: SENT error rate", "ratio", 0.0,3.0, 0.0,3.0, 0.0,3.0, 2,2 + + +gaugeCategory = Trigger + triggerErrorsCounterGauge = totalTriggerErrorCounter, "Trigger error count", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 + triggerSyncGapRatioGauge = triggerSyncGapRatio0,"triggerSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerStateIndexGauge = triggerStateIndex0,"triggerStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtSyncGapRatioGauge = vvtSyncGapRatio0,"vvtSyncGapRatio", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + vvtStateIndexGauge = vvtStateIndex0,"vvtStateIndex", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + triggerPrimaryFallCounterGauge = triggerPrimaryFall,"triggerPrimaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerPrimaryRiseCounterGauge = triggerPrimaryRise,"triggerPrimaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryFallCounterGauge = triggerSecondaryFall,"triggerSecondaryFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerSecondaryRiseCounterGauge = triggerSecondaryRise,"triggerSecondaryRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtFallCounterGauge = triggerVvtFall,"triggerVvtFall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvtRiseCounterGauge = triggerVvtRise,"triggerVvtRise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2FallCounterGauge = triggerVvt2Fall,"triggerVvt2Fall", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + triggerVvt2RiseCounterGauge = triggerVvt2Rise,"triggerVvt2Rise", "", 0,10000.0, 0,10000.0, 0,10000.0, 3,3 + currentEnginePhaseGauge = currentEngineDecodedPhase, "Engine Phase", "deg", 0, 720, 0, 0, 720, 720, 0, 0 + +gaugeCategory = Test Bench + testBenchIterGauge = testBenchIter, "Test Bench Iterations", "count", -10, {benchTestCount + 10}, -5, 0, {benchTestCount}, {benchTestCount + 5}, 1, 1 + +gaugeCategory = LUA + luaInvocationCounterGauge = luaInvocationCounter,"luaInvocationCounter", "count", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaLastCycleDurationGauge = luaLastCycleDuration,"luaLastCycleDuration", "nt", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + luaGauges1gauge = luaGauges1, "Lua Gauge 1", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + luaGauges2gauge = luaGauges2, "Lua Gauge 2", "lua", 0, 30000, 0, 0, 30000, 30000, 0, 3 + +gaugeCategory = Alternator PID + alternatorStatus_iTermGauge = alternatorStatus_iTerm,"Alternator PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_dTermGauge = alternatorStatus_dTerm,"Alternator PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_outputGauge = alternatorStatus_output,"Alternator PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_errorGauge = alternatorStatus_error,"Alternator PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + alternatorStatus_resetCounterGauge = alternatorStatus_resetCounter,"Alternator PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Boost PID + boostStatus_iTermGauge = boostStatus_iTerm,"Boost PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_dTermGauge = boostStatus_dTerm,"Boost PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_outputGauge = boostStatus_output,"Boost PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_errorGauge = boostStatus_error,"Boost PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + boostStatus_resetCounterGauge = boostStatus_resetCounter,"Boost PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Idle + idlePosSensGauge = idlePositionSensor, "Idle: Position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleAirValvePositionGauge = currentIdlePosition, "Idle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + idleStatus_iTermGauge = idleStatus_iTerm,"Idle PID iTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_dTermGauge = idleStatus_dTerm,"Idle PID dTerm", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_outputGauge = idleStatus_output,"Idle PID output", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_errorGauge = idleStatus_error,"Idle PID error", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 3,3 + idleStatus_resetCounterGauge = idleStatus_resetCounter,"Idle PID resetCounter", "", -10000.0,10000.0, -10000.0,10000.0, -10000.0,10000.0, 0,0 + +gaugeCategory = Etb PID + etbStatus_iTermGauge = etbStatus_iTerm,"ETB 1 PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_dTermGauge = etbStatus_dTerm,"ETB 1 PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_outputGauge = etbStatus_output,"ETB 1 PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_errorGauge = etbStatus_error,"ETB 1 PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + etbStatus_resetCounterGauge = etbStatus_resetCounter,"ETB 1 PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + + wgStatus_iTermGauge = wastegateDcStatus_iTerm,"WG PID iTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_dTermGauge = wastegateDcStatus_dTerm,"WG PID dTerm", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_outputGauge = wastegateDcStatus_output,"WG PID output", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_errorGauge = wastegateDcStatus_error,"WG PID error", "", -100.0,100.0, -100.0,100.0, -100.0,100.0, 3,3 + wgStatus_resetCounterGauge = wastegateDcStatus_resetCounter,"WG PID resetCounter", "", 0,100.0, 0,100.0, 0,100.0, 0,0 + +gaugeCategory = CAN + canReadCounterGauge = canReadCounter,"CAN: Rx", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteOkGauge = canWriteOk,"CAN: Tx OK", "", 0,64000, 0,64000, 0,64000, 0,0 + canWriteNotOkGauge = canWriteNotOk,"CAN: Tx err", "", 0,64000, 0,64000, 0,64000, 0,0 + +gaugeCategory = GDI + di_nextStartGauge = di_nextStart,"DI: next start", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + m_requested_pumpGauge = m_requested_pump,"DI: Pump Angle", "deg", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + fuel_requested_percentGauge = fuel_requested_percent,"DI: fuel_requested_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + fuel_requested_percent_piGauge = fuel_requested_percent_pi,"DI: fuel_requested_percent_pi", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;todo see comment in HpfpQuantity class definition + ;m_I_sum_percentGauge = m_I_sum_percent,"DI: m_I_sum_percent", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + ;m_pressureTarget_kPaGauge = m_pressureTarget_kPa,"DI: m_pressureTarget_kPa", "v", 0.0,100.0, 0.0,100.0, 0.0,100.0, 0,0 + highFuelPressureGauge = highFuelPressure, "Fuel pressure (high)", "bar", 0, 200, 0, 0, 200, 200, 1, 0 + +gaugeCategory = ECU Status + warningCounterGauge = warningCounter, "Warning: counter", "", 0, 100, 0, 0, 100, 100, 0, 0 + lastErrorCodeGauge = lastErrorCode, "Last error", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode1Gauge = recentErrorCode1, "Error#1", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode2Gauge = recentErrorCode2, "Error#2", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode3Gauge = recentErrorCode3, "Error#3", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode4Gauge = recentErrorCode4, "Error#4", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode5Gauge = recentErrorCode5, "Error#5", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode6Gauge = recentErrorCode6, "Error#6", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode7Gauge = recentErrorCode7, "Error#7", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + recentErrorCode8Gauge = recentErrorCode8, "Error#8", "", 0, 18000, 0, 0, 18000, 18000, 0, 0 + firmwareVersionGauge = firmwareVersion , "ECU Software Version", "%", 0, 100, 0, 0, 100, 100, 0, 0 + timeSecondsGauge = seconds, "Uptime", "sec", 0, 100, 0, 0, 100, 100, 0, 0 + tuneCrc16Gauge = tuneCrc16, "Tune CRC16", "", 0, 64000, 0, 0, 64000, 64000, 0, 0 + +gaugeCategory = Debug + debugF1Gauge = debugFloatField1, {bitStringValue( debugFieldF1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF2Gauge = debugFloatField2, {bitStringValue( debugFieldF2List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF3Gauge = debugFloatField3, {bitStringValue( debugFieldF3List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF4Gauge = debugFloatField4, {bitStringValue( debugFieldF4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF5Gauge = debugFloatField5, {bitStringValue( debugFieldF5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugF6Gauge = debugFloatField6, {bitStringValue( debugFieldF6List, debugMode )}, "", -100, 100, 0, 0, 100, 100, 4, 4 + debugF7Gauge = debugFloatField7, {bitStringValue( debugFieldF7List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 4, 4 + debugI1Gauge = debugIntField1, {bitStringValue( debugFieldI1List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI2Gauge = debugIntField2, {bitStringValue( debugFieldI2List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI3Gauge = debugIntField3, {bitStringValue( debugFieldI3List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI4Gauge = debugIntField4, {bitStringValue( debugFieldI4List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + debugI5Gauge = debugIntField5, {bitStringValue( debugFieldI5List, debugMode )}, "", 0, 100, 0, 0, 100, 100, 0, 0 + +gaugeCategory = Sensors - Basic + RPMGauge = RPMValue, "RPM - engine speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + CLTGauge = coolant, "Coolant temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + IATGauge = intake, "Intake air temp", "C", -40, 140, -15, 1, 95, 110, 1, 1 + afr1Gauge = AFRValue, "Air/Fuel Ratio", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr2Gauge = AFRValue2, "Air/Fuel Ratio 2", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale1Gauge = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afrGasScale2Gauge = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + lambda1Gauge = lambdaValue, "Lambda", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + lambda2Gauge = lambdaValue2, "Lambda 2", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + VBattGauge = VBatt, "Battery", "V", 8, 21, 9, 10, 17, 19, 1, 1 + MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 + massAirFlowValueGa = mafMeasured, "MAF", "kg/h", 0, 50, -999, -999, 999, 999, 1, 1 + + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld +gaugeCategory = Sensors - Extra 1 + VSSGauge = vehicleSpeedKph, "Vehicle Speed", "kmh", 0, 200, 0, 5, 110, 130, 1, 1 + wheelSlipRatioGauge = wheelSlipRatio, "Wheel Slip Ratio", "", 0, 200, 0, 1, 3, 4, 3, 3 + turboSpeedGauge = turboSpeed, "Turbocharger Speed", "hz", 0, 200, 0, 1, 3, 4, 1, 1 + baroPressureGauge = baroPressure, "Barometric pressure", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 + internalMcuTemperatureGauge = internalMcuTemperature, "ECU temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + OilPressGauge = oilPressure, "Oil Pressure", "kPa", 0, 750, 35, 75, 550, 700, 0, 0 + AuxT1Gauge = auxTemp1, "Aux temp 1", "C", -40, 140, -15, 1, 95, 110, 1, 1 + AuxT2Gauge = auxTemp2, "Aux temp 2", "C", -40, 140, -15, 1, 95, 110, 1, 1 + lowFuelPressureGauge = lowFuelPressure, "Fuel pressure (low)", "kPa", 0, 700, 0, 0, 700, 700, 1, 0 + flexPercentGauge = flexPercent, "Flex Ethanol %", "%", 0, 100, 0, 0, 100, 100, 0, 0 + fuelTempGauge = fuelTemp, "Fuel Temperature", "C", 0, 100, 0, 0, 75, 100, 0, 0 + fuelTankLevelGauge = fuelTankLevel,"Fuel level", "%", 0, 100, 10, 20, 100, 100, 1, 1 + AuxL1Gauge = auxLinear1, "Aux linear #1", "", -100, 100, -100, -100, 100, 100, 2, 2 + AuxL2Gauge = auxLinear2, "Aux linear #2", "", -100, 100, -100, -100, 100, 100, 2, 2 + +gaugeCategory = Sensors - Extra 2 + accelerationLatGauge = accelerationLat, "Accel: Lateral", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationLonGauge = accelerationLon, "Accel: Longitudinal", "acc", -2, 2, -2, -1, 1, 2, 3, 1 + accelerationVertGauge = accelerationVert, "Accel: Vertical", "acc", 0, 1.5, 0.5, 0.6, 1.4, 1.5, 3, 1 + gyroYawGauge = gyroYaw, "Gyro: Yaw rate", "acc", -100, 100, -100, -100, 100, 100, 3, 1 + egt1Gauge = egt1, "EGT#1", "C", 0, 2000 + egt2Gauge = egt2, "EGT#2", "C", 0, 2000 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "RPM/s", -2000, 2000, -2000, 2000, -2000, 2000, 0, 0 + wastegatePosGauge = wastegatePositionSensor, "Wastegate position sensor", "%", 0, 100, 0, 0, 100, 100, 1, 1 + auxSpeed1Gauge = auxSpeed1, "Aux Freq Input1", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + auxSpeed2Gauge = auxSpeed2, "Aux Freq Input2", "hz", 0, 30000, 0, 0, 30000, 30000, 0, 0 + +gaugeCategory = VVT + vvtPositionB1IGauge = vvtPositionB1I, "VVT: bank 1 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB1EGauge = vvtPositionB1E, "VVT: bank 1 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2IGauge = vvtPositionB2I, "VVT: bank 2 intake", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtPositionB2EGauge = vvtPositionB2E, "VVT: bank 2 exhaust", "deg", -60, 60, -60, -60, 60, 60, 1, 1 + vvtTargets1Gauge = vvtTargets1, "VVT: bank 1 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets2Gauge = vvtTargets2, "VVT: bank 1 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets3Gauge = vvtTargets3, "VVT: bank 2 intake target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtTargets4Gauge = vvtTargets4, "VVT: bank 2 exhaust target", "deg", -60, 60, -60, -60, 60, 60, 0, 0 + vvtOutput1Gauge = vvtStatus1_output, "vvt: output 1", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput2Gauge = vvtStatus2_output, "vvt: output 2", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput3Gauge = vvtStatus3_output, "vvt: output 3", "", 00, 100, -60, -60, 60, 60, 0, 0 + vvtOutput4Gauge = vvtStatus4_output, "vvt: output 4", "", 00, 100, -60, -60, 60, 60, 0, 0 + + +gaugeCategory = Ignition + sparkCutReasonGauge = sparkCutReason,"Spark Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + baseIgnAdvGauge = baseIgnitionAdvance, "Ignition: Timing", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + correctedIgnAdvGauge = correctedIgnitionAdvance, "Timing: ignition", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 + dwellGauge = sparkDwell, "Dwell", "mSec", 0, 10, 0.5, 1.0, 6.0, 8.0, 1, 1 + coilDutyCycleGauge = coilDutyCycle, "Ignition: coil duty cycle", "%", 0, 110, 0, 0, 90, 100, 1, 1 + ignitionLoadGauge = ignitionLoad, "Ignition: load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + +gaugeCategory = Acceleration Enrichment + deltaTpsGauge = deltaTps, "AE: TPS change", "", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"AE: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "AE: wall amount", "mg", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "AE: wall correction extra", "mg", -20, 20, -100, -100, 100, 100, 1, 1 + +gaugeCategory = Fueling + ;Name Var Title Units Lo Hi LoD LoW HiW HiD vd ld + fuelCutReasonGauge = fuelCutReason,"Fuel Cut Code", "code", 0.0,0.0, 0.0,0.0, 0.0,0.0, 0,0 + tChargeGauge = sd_tCharge, "Fuel: Estimated charge temperature", "C", -40, 140, -15, 1, 95, 110, 1, 1 + baroCorrectionGauge = baroCorrection,"Fuel: Barometric pressure mult", "ratio", 0.5, 1.5, 0.6, 0.7, 1.3, 1.4, 1, 1 + crankingFuelGauge = crankingFuel_fuel, "Fuel: cranking", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + iatCorrectionGauge = running_intakeTemperatureCoefficient, "Fuel: IAT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + cltCorrectionGauge = running_coolantTemperatureCoefficient, "Fuel: CLT correction", "mult", 0, 3, 0, 0, 3, 3, 2, 2 + injectorDutyCycleGauge=injectorDutyCycle, "Fuel: injector duty cycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + injectorDutyCycleStg2Gauge=injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2","%", 0, 120, 10, 10, 100, 100, 1, 1 + actualLastInjectionGauge = actualLastInjection, "Fuel: Last inj pulse width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + actualLastInjectionStg2Gauge = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + veValueGauge = veValue, "fuel: VE", "", 0, 120, 10, 10, 100, 100, 1, 1 + + injectorLagMsGauge = m_deadtime, "Fuel: injector lag", "mSec", 0, 10, 0, 0, 10, 10, 3, 1 + fuelRunningGauge = running_fuel, "Fuel: running", "mg", 0, 100, 0, 0, 100, 100, 3, 1 + baseFuelGauge = running_baseFuel, "Fuel: base cycle mass", "mg", 0, 100, 0, 0, 100, 100, 2, 0 + fuelPidCorrectionGauge = fuelPidCorrection1, "Fuel: fuel trim", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelPidCorrectionGauge2= fuelPidCorrection2, "Fuel: fuel trim 2", "%", -10, 10, -8, -5, 5, 8, 3, 1 + fuelingLoadGauge = fuelingLoad, "Fuel: Load", "%", 0, 300, 0, 0, 300, 300, 1, 1 + totalFuelConsumptionGauge = totalFuelConsumption, "Fuel: Total consumed", "g", 0, 10000, 0, 0, 10000, 10000, 0, 0 + fuelFlowRateGauge = fuelFlowRate, "Fuel: Flow rate", "g/s", 0, 50, 0, 0, 50, 50, 2, 0 + targetLambdaGauge = targetLambda,"fuel: target lambda", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + currentTargetAfrGauge = targetAFR,"fuel: target AFR", "", 0.65, 1.2, 0.7, 0.75, 1.1, 1.15, 3, 2 + +gaugeCategory = Throttle Body (incl. ETB) + pedalPositionGauge = throttlePedalPosition, "Throttle pedal position", "%", 0, 120, 0, 0, 100, 100, 1, 1 + tpsADCGauge = tpsADC, "tps1 ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 + TPSGauge = TPSValue, "Throttle position", "%", 0, 100, 0, 0, 100, 100, 1, 1 + TPS2Gauge = TPS2Value, "Throttle position #2", "%", 0, 100, 0, 0, 100, 100, 1, 1 + + etbTargetGauge = etbTarget, "ETB: position target", "%", 0, 100, 0, 0, 100, 100, 1, 1 + etbErrorGauge = etbStatus_error, "ETB: position error", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps1SplitGauge = tps1Split, "TPS1 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + tps2SplitGauge = tps2Split, "TPS2 Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + accPedalSplitGauge = accPedalSplit, "Pedal Sensor Split", "%", -20, 20, -10, -5, 5, 10, 2, 0 + etbDutyCycleGauge = etb1DutyCycle, "ETB: Duty", "%", -100, 100, -75, -50, 50, 75, 0, 0 + +gaugeCategory = Sensors - Raw + rawTps1PrimaryGauge = rawTps1Primary, "Raw TPS 1 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps1SecondaryGauge = rawTps1Secondary, "Raw TPS 1 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2PrimaryGauge = rawTps2Primary, "Raw TPS 2 Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawTps2SecondaryGauge = rawTps2Secondary, "Raw TPS 2 Secondary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput1Gauge = rawAnalogInput1, "Raw Aux 1", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput2Gauge = rawAnalogInput2, "Raw Aux 2", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput3Gauge = rawAnalogInput3, "Raw Aux 3", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput4Gauge = rawAnalogInput4, "Raw Aux 4", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput5Gauge = rawAnalogInput5, "Raw Aux 5", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput6Gauge = rawAnalogInput6, "Raw Aux 6", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput7Gauge = rawAnalogInput7, "Raw Aux 7", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAnalogInput8Gauge = rawAnalogInput8, "Raw Aux 8", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsPrimaryGauge = rawPpsPrimary , "Raw Pedal Primary", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawPpsSecondaryGauge = rawPpsSecondary,"Raw Pedal Secondary","V",0, 5, 0, 0, 5, 5, 3, 0 + rawCltGauge = rawClt , "Raw CLT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawBatteryGauge = rawBattery , "Raw Battery", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIatGauge = rawIat , "Raw IAT", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawOilPressureGauge = rawOilPressure, "Raw Oil Pressure", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawIdlePositionSensorGauge = rawIdlePositionSensor, "Raw Idle Position", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawWastegatePositionGauge = rawWastegatePosition,"Raw Wastegate Position","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawLowFuelPressureGauge = rawLowFuelPressure,"Raw fuel pressure (low) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawHighFuelPressureGauge = rawHighFuelPressure,"Raw fuel pressure (high) voltage","V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMafGauge = rawMaf , "Raw MAF", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawMapGauge = rawMap , "Raw MAP", "V", 0, 5, 0, 0, 5, 5, 3, 0 + rawAfrGauge = rawAfr , "Raw EGO", "V", 0, 5, 0, 0, 5, 5, 3, 0 + vssEdgeCounterGauge = vssEdgeCounter, "Raw VSS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + issEdgeCounterGauge = issEdgeCounter, "Raw ISS", "counter", 0, 5, 0, 0, 5, 5, 0, 0 + +gaugeCategory = Transmission + desiredGearGauge = tcuDesiredGear, "TCU: Desired Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + currentGearGauge = tcuCurrentGear, "Current Gear", "gear", -1, 10, -1, -1, 10, 10, 0, 0 + detectedGearGauge = detectedGear, "Detected Gear", "gear", 0, 10, 0, 0, 10, 10, 0, 0 + speedToRpmRatioGauge = speedToRpmRatio, "Gearbox Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + ISSGauge = ISSValue, "TCU: Input Shaft Speed", "RPM", 0, {rpmHardLimit + 2000}, 200, {cranking_rpm}, {rpmHardLimit - 500}, {rpmHardLimit}, 0, 0 + tcRatioGauge = tcRatio, "TCU: Torque Converter Ratio", "", 0, 100, 0, 0, 100, 100, 4, 4 + shiftTimeGauge = lastShiftTime, "Last Shift Time", "S", 0, 2, 0, 0, 2, 2, 4, 4 + idealEngineTorqueGauge = idealEngineTorque, "idealEngineTorque", "", 0, 100, 0, 0, 100, 100, 4, 4 + +gaugeCategory = Knock + knock1Gauge = m_knockCyl1, "Knock Cyl 1", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock2Gauge = m_knockCyl2, "Knock Cyl 2", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock3Gauge = m_knockCyl3, "Knock Cyl 3", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock4Gauge = m_knockCyl4, "Knock Cyl 4", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock5Gauge = m_knockCyl5, "Knock Cyl 5", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock6Gauge = m_knockCyl6, "Knock Cyl 6", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock7Gauge = m_knockCyl7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock8Gauge = m_knockCyl8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock9Gauge = m_knockCyl9, "Knock Cyl 9", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock10Gauge = m_knockCyl10, "Knock Cyl 10", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock11Gauge = m_knockCyl11, "Knock Cyl 11", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knock12Gauge = m_knockCyl12, "Knock Cyl 12", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockLevelGauge = m_knockLevel,"Knock level", "dBv", -60, 10, -60, -60, 10, 10, 0, 0 + knockRetardGauge = m_knockRetard, "Knock retard", "deg", 0, 10, 0, 0, 10, 10, 1, 1 + knockCountGauge = m_knockCount, "Knock count", "count", 0, 10000, 0, 0, 10000, 10000, 0, 0 + +gaugeCategory = DynoView + accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2 + +gaugeCategory = GPPWM Outputs + gppwmGauge1 = gppwmOutput1, { stringValue(gpPwmNote1) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge2 = gppwmOutput2, { stringValue(gpPwmNote2) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge3 = gppwmOutput3, { stringValue(gpPwmNote3) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + gppwmGauge4 = gppwmOutput4, { stringValue(gpPwmNote4) }, "%", 0, 100, 0, 0, 100, 100, 1, 1 + +[WueAnalyze] + +; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition +#if LAMBDA + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, lambdaTableTbl, lambdaValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = lambdaTableTbl, afrTSCustom +#else + wueAnalyzeMap = wueAnalyzer_warmup_curve, wueAfrTargetOffsetCurve, afrTableTbl, AFRValue, coolant, running_coolantTemperatureCoefficient, egoCorrectionForVeAnalyze + lambdaTargetTables = afrTableTbl, afrTSCustom +#endif + + wuePercentOffset = 0 ; for working with 0 based enrichment set to 100 + option = disableLiveUpdates + option = burnOnSend + +; filter = std_DeadLambda ; Auto build + + filter = decelFilterMap,"After Start Enrich", engine, & , 4 , , false + filter = accelFilterTp, "TP Accel Enrich" , engine, & , 16, , false + filter = decelFilterTp, "TP Decel Enrich" , engine, & , 32, , false + filter = accelFilterMap,"MAP Accel Enrich" , engine, & , 64, , false + filter = decelFilterMap,"MAP Decel Enrich" , engine, & , 128, , false + ; this works, just another way to skin a cat + ;filter = decelFilter, "Decel Flag" , tpsaccden, > , 0, , false + filter = overrunFilter, "Overrun" , pulseWidth1, = , 0, , false + filter = highThrottle, "High Throttle" , throttle, > , 15, , true + filter = lowRpm, "Low RPM" , rpm, < , 300, , false + filter = std_Custom ; Standard Custom Expression Filter. + + +[FrontPage] + ; Gauges are numbered left to right, top to bottom. + ; + ; 1 2 3 4 + ; 5 6 7 8 + + gauge1 = RPMGauge + gauge2 = CLTGauge + gauge3 = TPSGauge + gauge4 = MAPGauge +#if LAMBDA + gauge5 = lambda1Gauge +#else + gauge5 = afr1Gauge +#endif + gauge6 = VBattGauge + gauge7 = dwellGauge + gauge8 = correctedIgnAdvGauge + + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + ; Line 1 + ; important status + ; this is required so that the "config error" feature works in TS + ; DO NOT CHANGE THIS LINE - TS is looking for an indicator with particular text/styling + ; you don't even have to show it by default + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + indicator = { hasCriticalError }, "Config Error", "Config Error", white, black, red, black + ; DO NOT CHANGE THIS LINE + ; DO NOT CHANGE THIS LINE + ; todo: do we want to drop this line since we have "config error" thing above? + indicator = { hasCriticalError }, "No errors", "CRITICAL ERROR", white, black, red, black + indicator = { needBurn }, "Settings saved", "Unsaved changes", white, black, yellow, black + indicator = { isWarnNow }, "No warnings", "Warning", white, black, yellow, black + indicator = { checkEngine }, "No Check Engine", "Check Engine", white, black, red, black + indicator = { isTriggerError}, "Trigger OK", "Trigger ERR", white, black, red, black + indicator = { fuelCutReason != 0 }, "Injection OK", { Fuel cut: bitStringValue(fuelIgnCutCodeList, fuelCutReason)}, white, black, yellow, black + indicator = { sparkCutReason != 0 }, "Ignition OK", { Ign cut: bitStringValue(fuelIgnCutCodeList, sparkCutReason)}, white, black, yellow, black + indicator = { etbErrorCode0 != 0 }, "ETB OK", { ETB: bitStringValue(etbCutCodeList, etbErrorCode0)}, white, black, yellow, black + + ; minor info + indicator = { isFanOn }, "Fan off", "Fan on", white, black, green, black + indicator = { isFan2On }, "Fan 2 off", "Fan 2 on", white, black, green, black + indicator = { isMainRelayOn }, "Main relay off", "Main relay on", white, black, green, black + ; Line 2 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isFuelPumpOn }, "Fuel pump off", "Fuel pump on", white, black, green, black + indicator = { clutchUpState }, "No clutch Up", "Clutch Up", white, black, red, black + indicator = { clutchDownState }, "No clutch down", "Clutch down", white, black, yellow, black + indicator = { brakePedalState }, "No braking", "Brake down", white, black, red, black + indicator = { acButtonState }, "AC Switch off", "AC Switch on", white, black, blue, white + indicator = { m_acEnabled }, "AC Relay off", "AC Relay on", white, black, blue, white + indicator = { isIdleClosedLoop }, "Not idling", "Idling", white, black, green, black + indicator = { isIdleCoasting }, "Not coasting", "Coasting", white, black, green, black + indicator = { dfcoActive }, "Not decel fuel cut", "Decel fuel cut", white, black, yellow, black + indicator = { isAboveAccelThreshold }, "No TPS accel", "TPS accel active", white, black, yellow, black + ; error codes + indicator = { isTpsError }, "TPS OK", "TPS error", white, black, red, black + + ; Line 3 + ; = expression, off-label, on-label, off-bg, off-fg, on-bg, on-fg + indicator = { isTps2Error }, "TPS 2 OK", "TPS 2 error", white, black, red, black + indicator = { isPedalError }, "Pedal OK", "Pedal error", white, black, red, black + indicator = { isCltError }, "CLT OK", "CLT error", white, black, red, black + indicator = { isIatError }, "IAT OK", "IAT error", white, black, red, black + ; not implemented + ; indicator = { ind_map_error}, "map", "map error", white, black, red, black + indicator = { sd_present }, "No SD card", "SD card present", white, black, green, black + indicator = { sd_logging_internal }, "No SD logging", "SD logging", white, black, green, black + indicator = { sd_msd }, "No SD USB", "SD USB", white, black, green, black + indicator = { etbRevLimitActive0 }, "No ETB RPM Limit", "ETB RPM Limit", white, black, yellow, black + + indicator = { wbo0_hasFault }, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, { WBO0: bitStringValue(wboFaultCodeList, faultCode0)}, white, black, red, black + + ; indicator = { isInjectionEnabled && fuelCutReason == 0 }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, { Inj: bitStringValue(injModeList, currentInjectionMode) }, white, black, white, black + ; indicator = { isIgnitionEnabled && sparkCutReason == 0 }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, { Ign: bitStringValue(ignModeList, currentIgnitionMode) }, white, black, white, black + +; looks like TS would append four system indicators below: Data Logging, ???, Not Connected, Protocol Error + +[KeyActions] + showPanel = spi, spiBuses + showPanel = con, connection + +; +; this section defines how we log output channels +; see [OutputChannels] +; +[Datalog] + ; Channel Label Type Format + entry = time, "Time", float, "%.3f" +entry = sd_present, "SD: Present", int, "%d" +entry = sd_logging_internal, "SD: Logging", int, "%d" +entry = triggerScopeReady, "triggerScopeReady", int, "%d" +entry = antilagTriggered, "antilagTriggered", int, "%d" +entry = isFanOn, "Radiator Fan", int, "%d" +entry = isO2HeaterOn, "isO2HeaterOn", int, "%d" +entry = checkEngine, "checkEngine", int, "%d" +entry = needBurn, "needBurn", int, "%d" +entry = sd_msd, "SD: MSD", int, "%d" +entry = isFan2On, "Radiator Fan 2", int, "%d" +entry = toothLogReady, "Tooth Logger Ready", int, "%d" +entry = isTpsError, "Error: TPS", int, "%d" +entry = isCltError, "Error: CLT", int, "%d" +entry = isMapError, "Error: MAP", int, "%d" +entry = isIatError, "Error: IAT", int, "%d" +entry = isTriggerError, "Error: Trigger", int, "%d" +entry = hasCriticalError, "Error: Active", int, "%d" +entry = isWarnNow, "Warning: Active", int, "%d" +entry = isPedalError, "Error: Pedal", int, "%d" +entry = isKnockChipOk, "isKnockChipOk", int, "%d" +entry = launchTriggered, "Launch Control Triggered", int, "%d" +entry = isTps2Error, "Error: TPS2", int, "%d" +entry = injectorFault, "Injector Fault", int, "%d" +entry = ignitionFault, "Ignition Fault", int, "%d" +entry = isMainRelayOn, "isMainRelayOn", int, "%d" +entry = isUsbConnected, "isUsbConnected", int, "%d" +entry = dfcoActive, "dfcoActive", int, "%d" +entry = RPMValue, "RPM", int, "%d" +entry = rpmAcceleration, "dRPM", int, "%d" +entry = speedToRpmRatio, "Gearbox Ratio", float, "%.3f" +entry = internalMcuTemperature, "CPU Temperature", int, "%d" +entry = coolant, "CLT", float, "%.3f" +entry = intake, "IAT", float, "%.3f" +entry = auxTemp1, "auxTemp1", float, "%.3f" +entry = auxTemp2, "auxTemp2", float, "%.3f" +entry = TPSValue, "TPS", float, "%.3f" +entry = throttlePedalPosition, "Throttle pedal position", float, "%.3f" +entry = tpsADC, "tpsADC", int, "%d" +entry = rawMaf, "rawMaf", float, "%.3f" +entry = mafMeasured, "MAF", float, "%.3f" +entry = MAPValue, "MAP", float, "%.3f" +entry = baroPressure, "baroPressure", float, "%.3f" +entry = lambdaValue, "Lambda", float, "%.3f" +entry = VBatt, "VBatt", float, "%.3f" +entry = oilPressure, "Oil Pressure", float, "%.3f" +entry = vvtPositionB1I, "VVT: bank 1 intake", float, "%.3f" +entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" +entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" +entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" +entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" +entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" +entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" +entry = revolutionCounterSinceStart, "revolutionCounterSinceStart", int, "%d" +entry = canReadCounter, "CAN: Rx", int, "%d" +entry = tpsAccelFuel, "Fuel: TPS AE add fuel ms", float, "%.3f" +entry = currentIgnitionMode, "Ignition: Mode", int, "%d" +entry = currentInjectionMode, "Fuel: Injection mode", int, "%d" +entry = coilDutyCycle, "Ignition: coil duty cycle", float, "%.3f" +entry = etbTarget, "ETB Target", float, "%.3f" +entry = etb1DutyCycle, "ETB: Duty", float, "%.3f" +entry = fuelTankLevel, "Fuel level", float, "%.3f" +entry = totalFuelConsumption, "Fuel: Total consumed", int, "%d" +entry = fuelFlowRate, "Fuel: Flow rate", float, "%.3f" +entry = TPS2Value, "TPS2", float, "%.3f" +entry = tuneCrc16, "Tune CRC16", int, "%d" +entry = veValue, "Fuel: VE", float, "%.3f" +entry = seconds, "Uptime", int, "%d" +entry = engineMode, "Engine Mode", int, "%d" +entry = firmwareVersion, "firmware", int, "%d" +entry = rawIdlePositionSensor, "rawIdlePositionSensor", float, "%.3f" +entry = rawWastegatePosition, "rawWastegatePosition", float, "%.3f" +entry = accelerationLat, "Accel: Lateral", float, "%.3f" +entry = accelerationLon, "Accel: Longitudinal", float, "%.3f" +entry = detectedGear, "Detected Gear", int, "%d" +entry = maxTriggerReentrant, "maxTriggerReentrant", int, "%d" +entry = rawLowFuelPressure, "rawLowFuelPressure", float, "%.3f" +entry = rawHighFuelPressure, "rawHighFuelPressure", float, "%.3f" +entry = lowFuelPressure, "Fuel pressure (low)", float, "%.3f" +entry = tcuDesiredGear, "TCU: Desired Gear", int, "%d" +entry = flexPercent, "Flex Ethanol %", float, "%.3f" +entry = wastegatePositionSensor, "Wastegate position sensor", float, "%.3f" +entry = highFuelPressure, "Fuel pressure (high)", float, "%.3f" +entry = calibrationValue, "calibrationValue", float, "%.3f" +entry = calibrationMode, "calibrationMode", int, "%d" +entry = idleStepperTargetPosition, "Idle: Stepper target position", int, "%d" +entry = tsConfigVersion, "tsConfigVersion", int, "%d" +entry = totalTriggerErrorCounter, "Trigger Error Counter", int, "%d" +entry = orderingErrorCounter, "orderingErrorCounter", int, "%d" +entry = warningCounter, "Warning: counter", int, "%d" +entry = lastErrorCode, "Warning: last", int, "%d" +entry = recentErrorCode1, "recentErrorCode 1", int, "%d" +entry = recentErrorCode2, "recentErrorCode 2", int, "%d" +entry = recentErrorCode3, "recentErrorCode 3", int, "%d" +entry = recentErrorCode4, "recentErrorCode 4", int, "%d" +entry = recentErrorCode5, "recentErrorCode 5", int, "%d" +entry = recentErrorCode6, "recentErrorCode 6", int, "%d" +entry = recentErrorCode7, "recentErrorCode 7", int, "%d" +entry = recentErrorCode8, "recentErrorCode 8", int, "%d" +entry = debugFloatField1, "debugFloatField1", float, "%.3f" +entry = debugFloatField2, "debugFloatField2", float, "%.3f" +entry = debugFloatField3, "debugFloatField3", float, "%.3f" +entry = debugFloatField4, "debugFloatField4", float, "%.3f" +entry = debugFloatField5, "debugFloatField5", float, "%.3f" +entry = debugFloatField6, "debugFloatField6", float, "%.3f" +entry = debugFloatField7, "debugFloatField7", float, "%.3f" +entry = debugIntField1, "debugIntField1", int, "%d" +entry = debugIntField2, "debugIntField2", int, "%d" +entry = debugIntField3, "debugIntField3", int, "%d" +entry = debugIntField4, "debugIntField4", int, "%d" +entry = debugIntField5, "debugIntField5", int, "%d" +entry = egt1, "EGT 1", 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 = rawPpsSecondary, "rawPpsSecondary", float, "%.3f" +entry = idlePositionSensor, "Idle: Position sensor", float, "%.3f" +entry = AFRValue, "Air/Fuel Ratio", float, "%.3f" +entry = VssAcceleration, "Vss Accel", float, "%.3f" +entry = lambdaValue2, "Lambda 2", float, "%.3f" +entry = AFRValue2, "Air/Fuel Ratio 2", float, "%.3f" +entry = vvtPositionB1E, "VVT: bank 1 exhaust", float, "%.3f" +entry = vvtPositionB2I, "VVT: bank 2 intake", float, "%.3f" +entry = vvtPositionB2E, "VVT: bank 2 exhaust", float, "%.3f" +entry = fuelPidCorrection1, "Fuel: Trim bank 1", float, "%.3f" +entry = fuelPidCorrection2, "Fuel: Trim bank 2", float, "%.3f" +entry = rawTps1Secondary, "rawTps1Secondary", float, "%.3f" +entry = rawTps2Primary, "rawTps2Primary", float, "%.3f" +entry = rawTps2Secondary, "rawTps2Secondary", float, "%.3f" +entry = accelerationVert, "Accel: Vertical", float, "%.3f" +entry = gyroYaw, "Gyro: Yaw rate", float, "%.3f" +entry = vvtTargets1, "vvtTargets 1", int, "%d" +entry = vvtTargets2, "vvtTargets 2", int, "%d" +entry = vvtTargets3, "vvtTargets 3", int, "%d" +entry = vvtTargets4, "vvtTargets 4", int, "%d" +entry = turboSpeed, "Turbocharger Speed", int, "%d" +entry = ignitionAdvanceCyl1, "Ign: Timing Cyl 1", float, "%.3f" +entry = ignitionAdvanceCyl2, "Ign: Timing Cyl 2", float, "%.3f" +entry = ignitionAdvanceCyl3, "Ign: Timing Cyl 3", float, "%.3f" +entry = ignitionAdvanceCyl4, "Ign: Timing Cyl 4", float, "%.3f" +entry = ignitionAdvanceCyl5, "Ign: Timing Cyl 5", float, "%.3f" +entry = ignitionAdvanceCyl6, "Ign: Timing Cyl 6", float, "%.3f" +entry = ignitionAdvanceCyl7, "Ign: Timing Cyl 7", float, "%.3f" +entry = ignitionAdvanceCyl8, "Ign: Timing Cyl 8", float, "%.3f" +entry = ignitionAdvanceCyl9, "Ign: Timing Cyl 9", float, "%.3f" +entry = ignitionAdvanceCyl10, "Ign: Timing Cyl 10", float, "%.3f" +entry = ignitionAdvanceCyl11, "Ign: Timing Cyl 11", float, "%.3f" +entry = ignitionAdvanceCyl12, "Ign: Timing Cyl 12", float, "%.3f" +entry = tps1Split, "tps1Split", float, "%.3f" +entry = tps2Split, "tps2Split", float, "%.3f" +entry = tps12Split, "tps12Split", float, "%.3f" +entry = accPedalSplit, "accPedalSplit", float, "%.3f" +entry = sparkCutReason, "Ign: Cut Code", int, "%d" +entry = fuelCutReason, "Fuel: Cut Code", int, "%d" +entry = mafEstimate, "Air: Flow estimate", float, "%.3f" +entry = instantRpm, "sync: instant RPM", int, "%d" +entry = rawMap, "rawMap", float, "%.3f" +entry = rawAfr, "rawAfr", float, "%.3f" +entry = calibrationValue2, "calibrationValue2", float, "%.3f" +entry = luaInvocationCounter, "Lua: Tick counter", int, "%d" +entry = luaLastCycleDuration, "Lua: Last tick duration", int, "%d" +entry = vssEdgeCounter, "vssEdgeCounter", int, "%d" +entry = issEdgeCounter, "issEdgeCounter", int, "%d" +entry = auxLinear1, "Aux linear #1", float, "%.3f" +entry = auxLinear2, "Aux linear #2", float, "%.3f" +entry = fallbackMap, "fallbackMap", float, "%.3f" +entry = instantMAPValue, "Instant MAP", float, "%.3f" +entry = maxLockedDuration, "maxLockedDuration", int, "%d" +entry = canWriteOk, "CAN: Tx OK", int, "%d" +entry = canWriteNotOk, "CAN: Tx err", int, "%d" +entry = triggerPrimaryFall, "triggerPrimaryFall", int, "%d" +entry = triggerPrimaryRise, "triggerPrimaryRise", int, "%d" +entry = triggerSecondaryFall, "triggerSecondaryFall", int, "%d" +entry = triggerSecondaryRise, "triggerSecondaryRise", int, "%d" +entry = triggerVvtFall, "triggerVvtFall", int, "%d" +entry = triggerVvtRise, "triggerVvtRise", int, "%d" +entry = triggerVvt2Fall, "triggerVvt2Fall", int, "%d" +entry = triggerVvt2Rise, "triggerVvt2Rise", int, "%d" +entry = starterState, "starterState", int, "%d" +entry = starterRelayDisable, "starterRelayDisable", int, "%d" +entry = multiSparkCounter, "Ign: Multispark count", int, "%d" +entry = extiOverflowCount, "extiOverflowCount", int, "%d" +entry = alternatorStatus_pTerm, "alternatorStatus_pTerm", float, "%.3f" +entry = alternatorStatus_iTerm, "alternatorStatus_iTerm", float, "%.3f" +entry = alternatorStatus_dTerm, "alternatorStatus_dTerm", float, "%.3f" +entry = alternatorStatus_output, "alternatorStatus_output", float, "%.3f" +entry = alternatorStatus_error, "alternatorStatus_error", float, "%.3f" +entry = alternatorStatus_resetCounter, "alternatorStatus_resetCounter", int, "%d" +entry = idleStatus_pTerm, "idleStatus_pTerm", float, "%.3f" +entry = idleStatus_iTerm, "idleStatus_iTerm", float, "%.3f" +entry = idleStatus_dTerm, "idleStatus_dTerm", float, "%.3f" +entry = idleStatus_output, "idleStatus_output", float, "%.3f" +entry = idleStatus_error, "idleStatus_error", float, "%.3f" +entry = idleStatus_resetCounter, "idleStatus_resetCounter", int, "%d" +entry = etbStatus_pTerm, "etbStatus_pTerm", float, "%.3f" +entry = etbStatus_iTerm, "etbStatus_iTerm", float, "%.3f" +entry = etbStatus_dTerm, "etbStatus_dTerm", float, "%.3f" +entry = etbStatus_output, "etbStatus_output", float, "%.3f" +entry = etbStatus_error, "etbStatus_error", float, "%.3f" +entry = etbStatus_resetCounter, "etbStatus_resetCounter", int, "%d" +entry = boostStatus_pTerm, "boostStatus_pTerm", float, "%.3f" +entry = boostStatus_iTerm, "boostStatus_iTerm", float, "%.3f" +entry = boostStatus_dTerm, "boostStatus_dTerm", float, "%.3f" +entry = boostStatus_output, "boostStatus_output", float, "%.3f" +entry = boostStatus_error, "boostStatus_error", float, "%.3f" +entry = boostStatus_resetCounter, "boostStatus_resetCounter", int, "%d" +entry = wastegateDcStatus_pTerm, "wastegateDcStatus_pTerm", float, "%.3f" +entry = wastegateDcStatus_iTerm, "wastegateDcStatus_iTerm", float, "%.3f" +entry = wastegateDcStatus_dTerm, "wastegateDcStatus_dTerm", float, "%.3f" +entry = wastegateDcStatus_output, "wastegateDcStatus_output", float, "%.3f" +entry = wastegateDcStatus_error, "wastegateDcStatus_error", float, "%.3f" +entry = wastegateDcStatus_resetCounter, "wastegateDcStatus_resetCounter", int, "%d" +entry = vvtStatus1_pTerm, "vvtStatus1_pTerm", float, "%.3f" +entry = vvtStatus1_iTerm, "vvtStatus1_iTerm", float, "%.3f" +entry = vvtStatus1_dTerm, "vvtStatus1_dTerm", float, "%.3f" +entry = vvtStatus1_output, "vvtStatus1_output", float, "%.3f" +entry = vvtStatus1_error, "vvtStatus1_error", float, "%.3f" +entry = vvtStatus1_resetCounter, "vvtStatus1_resetCounter", int, "%d" +entry = vvtStatus2_pTerm, "vvtStatus2_pTerm", float, "%.3f" +entry = vvtStatus2_iTerm, "vvtStatus2_iTerm", float, "%.3f" +entry = vvtStatus2_dTerm, "vvtStatus2_dTerm", float, "%.3f" +entry = vvtStatus2_output, "vvtStatus2_output", float, "%.3f" +entry = vvtStatus2_error, "vvtStatus2_error", float, "%.3f" +entry = vvtStatus2_resetCounter, "vvtStatus2_resetCounter", int, "%d" +entry = vvtStatus3_pTerm, "vvtStatus3_pTerm", float, "%.3f" +entry = vvtStatus3_iTerm, "vvtStatus3_iTerm", float, "%.3f" +entry = vvtStatus3_dTerm, "vvtStatus3_dTerm", float, "%.3f" +entry = vvtStatus3_output, "vvtStatus3_output", float, "%.3f" +entry = vvtStatus3_error, "vvtStatus3_error", float, "%.3f" +entry = vvtStatus3_resetCounter, "vvtStatus3_resetCounter", int, "%d" +entry = vvtStatus4_pTerm, "vvtStatus4_pTerm", float, "%.3f" +entry = vvtStatus4_iTerm, "vvtStatus4_iTerm", float, "%.3f" +entry = vvtStatus4_dTerm, "vvtStatus4_dTerm", float, "%.3f" +entry = vvtStatus4_output, "vvtStatus4_output", float, "%.3f" +entry = vvtStatus4_error, "vvtStatus4_error", float, "%.3f" +entry = vvtStatus4_resetCounter, "vvtStatus4_resetCounter", int, "%d" +entry = auxSpeed1, "Aux speed 1", int, "%d" +entry = auxSpeed2, "Aux speed 2", int, "%d" +entry = ISSValue, "TCU: Input Shaft Speed", int, "%d" +entry = rawAnalogInput1, "rawAnalogInput 1", float, "%.3f" +entry = rawAnalogInput2, "rawAnalogInput 2", float, "%.3f" +entry = rawAnalogInput3, "rawAnalogInput 3", float, "%.3f" +entry = rawAnalogInput4, "rawAnalogInput 4", float, "%.3f" +entry = rawAnalogInput5, "rawAnalogInput 5", float, "%.3f" +entry = rawAnalogInput6, "rawAnalogInput 6", float, "%.3f" +entry = rawAnalogInput7, "rawAnalogInput 7", float, "%.3f" +entry = rawAnalogInput8, "rawAnalogInput 8", float, "%.3f" +entry = gppwmOutput1, "GPPWM Output 1", float, "%.3f" +entry = gppwmOutput2, "GPPWM Output 2", float, "%.3f" +entry = gppwmOutput3, "GPPWM Output 3", float, "%.3f" +entry = gppwmOutput4, "GPPWM Output 4", float, "%.3f" +entry = gppwmXAxis1, "gppwmXAxis 1", int, "%d" +entry = gppwmXAxis2, "gppwmXAxis 2", int, "%d" +entry = gppwmXAxis3, "gppwmXAxis 3", int, "%d" +entry = gppwmXAxis4, "gppwmXAxis 4", int, "%d" +entry = gppwmYAxis1, "gppwmYAxis 1", float, "%.3f" +entry = gppwmYAxis2, "gppwmYAxis 2", float, "%.3f" +entry = gppwmYAxis3, "gppwmYAxis 3", float, "%.3f" +entry = gppwmYAxis4, "gppwmYAxis 4", float, "%.3f" +entry = rawBattery, "rawBattery", float, "%.3f" +entry = ignBlendParameter1, "ignBlendParameter 1", float, "%.3f" +entry = ignBlendParameter2, "ignBlendParameter 2", float, "%.3f" +entry = ignBlendParameter3, "ignBlendParameter 3", float, "%.3f" +entry = ignBlendParameter4, "ignBlendParameter 4", float, "%.3f" +entry = ignBlendBias1, "ignBlendBias 1", float, "%.3f" +entry = ignBlendBias2, "ignBlendBias 2", float, "%.3f" +entry = ignBlendBias3, "ignBlendBias 3", float, "%.3f" +entry = ignBlendBias4, "ignBlendBias 4", float, "%.3f" +entry = ignBlendOutput1, "ignBlendOutput 1", float, "%.3f" +entry = ignBlendOutput2, "ignBlendOutput 2", float, "%.3f" +entry = ignBlendOutput3, "ignBlendOutput 3", float, "%.3f" +entry = ignBlendOutput4, "ignBlendOutput 4", float, "%.3f" +entry = veBlendParameter1, "veBlendParameter 1", float, "%.3f" +entry = veBlendParameter2, "veBlendParameter 2", float, "%.3f" +entry = veBlendParameter3, "veBlendParameter 3", float, "%.3f" +entry = veBlendParameter4, "veBlendParameter 4", float, "%.3f" +entry = veBlendBias1, "veBlendBias 1", float, "%.3f" +entry = veBlendBias2, "veBlendBias 2", float, "%.3f" +entry = veBlendBias3, "veBlendBias 3", float, "%.3f" +entry = veBlendBias4, "veBlendBias 4", float, "%.3f" +entry = veBlendOutput1, "veBlendOutput 1", float, "%.3f" +entry = veBlendOutput2, "veBlendOutput 2", float, "%.3f" +entry = veBlendOutput3, "veBlendOutput 3", float, "%.3f" +entry = veBlendOutput4, "veBlendOutput 4", float, "%.3f" +entry = boostOpenLoopBlendParameter1, "boostOpenLoopBlendParameter 1", float, "%.3f" +entry = boostOpenLoopBlendParameter2, "boostOpenLoopBlendParameter 2", float, "%.3f" +entry = boostOpenLoopBlendBias1, "boostOpenLoopBlendBias 1", float, "%.3f" +entry = boostOpenLoopBlendBias2, "boostOpenLoopBlendBias 2", float, "%.3f" +entry = boostOpenLoopBlendOutput1, "boostOpenLoopBlendOutput 1", int, "%d" +entry = boostOpenLoopBlendOutput2, "boostOpenLoopBlendOutput 2", int, "%d" +entry = boostClosedLoopBlendParameter1, "boostClosedLoopBlendParameter 1", float, "%.3f" +entry = boostClosedLoopBlendParameter2, "boostClosedLoopBlendParameter 2", float, "%.3f" +entry = boostClosedLoopBlendBias1, "boostClosedLoopBlendBias 1", float, "%.3f" +entry = boostClosedLoopBlendBias2, "boostClosedLoopBlendBias 2", float, "%.3f" +entry = boostClosedLoopBlendOutput1, "boostClosedLoopBlendOutput 1", float, "%.3f" +entry = boostClosedLoopBlendOutput2, "boostClosedLoopBlendOutput 2", float, "%.3f" +entry = coilState1, "coilState1", int, "%d" +entry = coilState2, "coilState2", int, "%d" +entry = coilState3, "coilState3", int, "%d" +entry = coilState4, "coilState4", int, "%d" +entry = coilState5, "coilState5", int, "%d" +entry = coilState6, "coilState6", int, "%d" +entry = coilState7, "coilState7", int, "%d" +entry = coilState8, "coilState8", int, "%d" +entry = coilState9, "coilState9", int, "%d" +entry = coilState10, "coilState10", int, "%d" +entry = coilState11, "coilState11", int, "%d" +entry = coilState12, "coilState12", int, "%d" +entry = injectorState1, "injectorState1", int, "%d" +entry = injectorState2, "injectorState2", int, "%d" +entry = injectorState3, "injectorState3", int, "%d" +entry = injectorState4, "injectorState4", int, "%d" +entry = injectorState5, "injectorState5", int, "%d" +entry = injectorState6, "injectorState6", int, "%d" +entry = injectorState7, "injectorState7", int, "%d" +entry = injectorState8, "injectorState8", int, "%d" +entry = injectorState9, "injectorState9", int, "%d" +entry = injectorState10, "injectorState10", int, "%d" +entry = injectorState11, "injectorState11", int, "%d" +entry = injectorState12, "injectorState12", int, "%d" +entry = triggerChannel1, "triggerChannel1", int, "%d" +entry = triggerChannel2, "triggerChannel2", int, "%d" +entry = vvtChannel1, "bank 1 intake cam input", int, "%d" +entry = vvtChannel2, "bank 1 exhaust cam input", int, "%d" +entry = vvtChannel3, "bank 2 intake cam input", int, "%d" +entry = vvtChannel4, "bank 2 exhaust cam input", int, "%d" +entry = outputRequestPeriod, "outputRequestPeriod", int, "%d" +entry = mapFast, "mapFast", float, "%.3f" +entry = luaGauges1, "Lua: Gauge 1", float, "%.3f" +entry = luaGauges2, "Lua: Gauge 2", float, "%.3f" +entry = rawMaf2, "rawMaf2", float, "%.3f" +entry = mafMeasured2, "MAF #2", float, "%.3f" +entry = schedulingUsedCount, "schedulingUsedCount", int, "%d" +entry = vehicleSpeedKph, "Vehicle Speed", float, "%.3f" +entry = Gego, "Gego", float, "%.3f" +entry = testBenchIter, "testBenchIter", int, "%d" +entry = oilTemp, "oilTemp", float, "%.3f" +entry = fuelTemp, "fuelTemp", float, "%.3f" +entry = ambientTemp, "ambientTemp", float, "%.3f" +entry = compressorDischargeTemp, "compressorDischargeTemp", float, "%.3f" +entry = compressorDischargePressure, "compressorDischargePressure", float, "%.3f" +entry = throttleInletPressure, "throttleInletPressure", float, "%.3f" +entry = ignitionOnTime, "ignitionOnTime", int, "%d" +entry = engineRunTime, "engineRunTime", int, "%d" +entry = distanceTraveled, "distanceTraveled", float, "%.3f" +entry = afrGasolineScale, "Air/Fuel Ratio (Gas Scale)", float, "%.3f" +entry = afr2GasolineScale, "Air/Fuel Ratio 2 (Gas Scale)", float, "%.3f" +entry = wheelSlipRatio, "wheelSlipRatio", float, "%.3f" +entry = ignitorDiagnostic1, "ignitorDiagnostic 1", int, "%d" +entry = ignitorDiagnostic2, "ignitorDiagnostic 2", int, "%d" +entry = ignitorDiagnostic3, "ignitorDiagnostic 3", int, "%d" +entry = ignitorDiagnostic4, "ignitorDiagnostic 4", int, "%d" +entry = ignitorDiagnostic5, "ignitorDiagnostic 5", int, "%d" +entry = ignitorDiagnostic6, "ignitorDiagnostic 6", int, "%d" +entry = ignitorDiagnostic7, "ignitorDiagnostic 7", int, "%d" +entry = ignitorDiagnostic8, "ignitorDiagnostic 8", int, "%d" +entry = ignitorDiagnostic9, "ignitorDiagnostic 9", int, "%d" +entry = ignitorDiagnostic10, "ignitorDiagnostic 10", int, "%d" +entry = ignitorDiagnostic11, "ignitorDiagnostic 11", int, "%d" +entry = ignitorDiagnostic12, "ignitorDiagnostic 12", int, "%d" +entry = injectorDiagnostic1, "injectorDiagnostic 1", int, "%d" +entry = injectorDiagnostic2, "injectorDiagnostic 2", int, "%d" +entry = injectorDiagnostic3, "injectorDiagnostic 3", int, "%d" +entry = injectorDiagnostic4, "injectorDiagnostic 4", int, "%d" +entry = injectorDiagnostic5, "injectorDiagnostic 5", int, "%d" +entry = injectorDiagnostic6, "injectorDiagnostic 6", int, "%d" +entry = injectorDiagnostic7, "injectorDiagnostic 7", int, "%d" +entry = injectorDiagnostic8, "injectorDiagnostic 8", int, "%d" +entry = injectorDiagnostic9, "injectorDiagnostic 9", int, "%d" +entry = injectorDiagnostic10, "injectorDiagnostic 10", int, "%d" +entry = injectorDiagnostic11, "injectorDiagnostic 11", int, "%d" +entry = injectorDiagnostic12, "injectorDiagnostic 12", int, "%d" +entry = actualLastInjectionStage2, "Fuel: Last inj pulse width stg 2", float, "%.3f" +entry = injectorDutyCycleStage2, "Fuel: injector duty cycle stage 2", float, "%.3f" +entry = totalFuelCorrection, "Fuel: Total correction", float, "%.3f" +entry = running_postCrankingFuelCorrection, "Fuel: Post cranking mult", float, "%.3f" +entry = running_intakeTemperatureCoefficient, "Fuel: IAT correction", float, "%.3f" +entry = running_coolantTemperatureCoefficient, "Fuel: CLT correction", float, "%.3f" +entry = running_timeSinceCrankingInSecs, "running_timeSinceCrankingInSecs", float, "%.3f" +entry = running_baseFuel, "Fuel: base cycle mass", float, "%.3f" +entry = running_fuel, "Fuel: running", float, "%.3f" +entry = afrTableYAxis, "afrTableYAxis", float, "%.3f" +entry = targetLambda, "Fuel: target lambda", float, "%.3f" +entry = targetAFR, "Fuel: target AFR", float, "%.3f" +entry = stoichiometricRatio, "Fuel: Stoich ratio", float, "%.3f" +entry = sdTcharge_coff, "sdTcharge_coff", float, "%.3f" +entry = sdAirMassInOneCylinder, "Air: Cylinder airmass", float, "%.3f" +entry = normalizedCylinderFilling, "Air: Normalized cyl filling", float, "%.3f" +entry = brokenInjector, "brokenInjector", int, "%d" +entry = idealEngineTorque, "idealEngineTorque", int, "%d" +entry = injectorHwIssue, "injectorHwIssue", int, "%d" +entry = baseDwell, "Ignition: base dwell", float, "%.3f" +entry = sparkDwell, "Ignition: coil charge time", float, "%.3f" +entry = dwellDurationAngle, "Ignition: dwell duration", float, "%.3f" +entry = cltTimingCorrection, "Ign: CLT correction", float, "%.3f" +entry = timingIatCorrection, "Ign: IAT correction", float, "%.3f" +entry = timingPidCorrection, "Idle: Timing adjustment", float, "%.3f" +entry = baseIgnitionAdvance, "Ignition: Timing", float, "%.3f" +entry = correctedIgnitionAdvance, "Timing: ignition", float, "%.3f" +entry = tractionAdvanceDrop, "Traction: timing correction", float, "%.3f" +entry = dwellVoltageCorrection, "Ign: Dwell voltage correction", float, "%.3f" +entry = luaTimingAdd, "Ign: Lua timing add", float, "%.3f" +entry = luaTimingMult, "Ign: Lua timing mult", float, "%.3f" +entry = luaIgnitionSkip, "Ign: Lua Spark Skip", int, "%d" +entry = m_knockLevel, "Knock: Current level", float, "%.3f" +entry = m_knockCyl1, "Knock: Cyl 1", int, "%d" +entry = m_knockCyl2, "Knock: Cyl 2", int, "%d" +entry = m_knockCyl3, "Knock: Cyl 3", int, "%d" +entry = m_knockCyl4, "Knock: Cyl 4", int, "%d" +entry = m_knockCyl5, "Knock: Cyl 5", int, "%d" +entry = m_knockCyl6, "Knock: Cyl 6", int, "%d" +entry = m_knockCyl7, "Knock: Cyl 7", int, "%d" +entry = m_knockCyl8, "Knock: Cyl 8", int, "%d" +entry = m_knockCyl9, "Knock: Cyl 9", int, "%d" +entry = m_knockCyl10, "Knock: Cyl 10", int, "%d" +entry = m_knockCyl11, "Knock: Cyl 11", int, "%d" +entry = m_knockCyl12, "Knock: Cyl 12", int, "%d" +entry = m_knockRetard, "Knock: Retard", float, "%.3f" +entry = m_knockThreshold, "Knock: Threshold", float, "%.3f" +entry = m_knockCount, "Knock: Count", int, "%d" +entry = m_maximumRetard, "Knock: Max retard", float, "%.3f" +entry = tcuCurrentGear, "Current Gear", int, "%d" +entry = tcRatio, "TCU: Torque Converter Ratio", float, "%.3f" +entry = lastShiftTime, "lastShiftTime", float, "%.3f" +entry = tcu_currentRange, "TCU: Current Range", int, "%d" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = m_requested_pump, "GDI: HPFP duration", float, "%.3f" +entry = fuel_requested_percent, "GDI: requested_percent", float, "%.3f" +entry = fuel_requested_percent_pi, "GDI: percent_pi", float, "%.3f" +entry = noValve, "noValve", int, "%d" +entry = angleAboveMin, "angleAboveMin", int, "%d" +entry = isHpfpInactive, "isHpfpInactive", int, "%d" +entry = m_pressureTarget_kPa, "GDI: target pressure", float, "%.3f" +entry = nextLobe, "GDI: nextLobe", float, "%.3f" +entry = di_nextStart, "GDI: next start", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "Fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "Fuel: Injector pressure ratio", float, "%.3f" +entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" +entry = combinedConditions, "combinedConditions", int, "%d" +entry = launchActivatePinState, "launchActivatePinState", int, "%d" +entry = isLaunchPreCondition, "isLaunchPreCondition", int, "%d" +entry = isLaunchCondition, "isLaunchCondition", int, "%d" +entry = isSwitchActivated, "isSwitchActivated", int, "%d" +entry = isClutchActivated, "isClutchActivated", int, "%d" +entry = isValidInputPin, "isValidInputPin", int, "%d" +entry = activateSwitchCondition, "activateSwitchCondition", int, "%d" +entry = rpmCondition, "rpmCondition", int, "%d" +entry = speedCondition, "speedCondition", int, "%d" +entry = tpsCondition, "tpsCondition", int, "%d" +entry = isAntilagCondition, "isAntilagCondition", int, "%d" +entry = ALSMinRPMCondition, "ALSMinRPMCondition", int, "%d" +entry = ALSMaxRPMCondition, "ALSMaxRPMCondition", int, "%d" +entry = ALSMinCLTCondition, "ALSMinCLTCondition", int, "%d" +entry = ALSMaxCLTCondition, "ALSMaxCLTCondition", int, "%d" +entry = ALSMaxThrottleIntentCondition, "ALSMaxThrottleIntentCondition", int, "%d" +entry = isALSSwitchActivated, "isALSSwitchActivated", int, "%d" +entry = ALSActivatePinState, "ALSActivatePinState", int, "%d" +entry = ALSSwitchCondition, "ALSSwitchCondition", int, "%d" +entry = ALSTimerCondition, "ALSTimerCondition", int, "%d" +entry = fuelALSCorrection, "fuelALSCorrection", float, "%.3f" +entry = timingALSCorrection, "timingALSCorrection", float, "%.3f" +entry = timingALSSkip, "timingALSSkip", float, "%.3f" +entry = isTpsInvalid, "isTpsInvalid", int, "%d" +entry = m_shouldResetPid, "m_shouldResetPid", int, "%d" +entry = isBelowClosedLoopThreshold, "isBelowClosedLoopThreshold", int, "%d" +entry = isNotClosedLoop, "isNotClosedLoop", int, "%d" +entry = isZeroRpm, "isZeroRpm", int, "%d" +entry = hasInitBoost, "hasInitBoost", int, "%d" +entry = rpmTooLow, "rpmTooLow", int, "%d" +entry = tpsTooLow, "tpsTooLow", int, "%d" +entry = mapTooLow, "mapTooLow", int, "%d" +entry = isPlantValid, "isPlantValid", int, "%d" +entry = isBoostControlled, "isBoostControlled", int, "%d" +entry = luaTargetAdd, "Boost: Lua target add", float, "%.3f" +entry = boostOutput, "Boost: Output", float, "%.3f" +entry = luaTargetMult, "Boost: Lua target mult", float, "%.3f" +entry = openLoopPart, "Boost: Open loop", float, "%.3f" +entry = luaOpenLoopAdd, "Boost: Lua open loop add", float, "%.3f" +entry = boostControllerClosedLoopPart, "Boost: Closed loop", float, "%.3f" +entry = boostControlTarget, "Boost: Target", float, "%.3f" +entry = acButtonState, "AC switch", int, "%d" +entry = m_acEnabled, "AC enabled", int, "%d" +entry = engineTooSlow, "AC engine too slow", int, "%d" +entry = engineTooFast, "AC engine too fast", int, "%d" +entry = noClt, "AC no CLT", int, "%d" +entry = engineTooHot, "AC engine too hot", int, "%d" +entry = tpsTooHigh, "AC tps too high", int, "%d" +entry = isDisabledByLua, "AC disabled by Lua", int, "%d" +entry = acCompressorState, "AC compressor on", int, "%d" +entry = latest_usage_ac_control, "AC latest activity", int, "%d" +entry = acSwitchLastChangeTimeMs, "acSwitchLastChangeTimeMs", int, "%d" +entry = cranking0, "cranking0", int, "%d" +entry = notRunning0, "notRunning0", int, "%d" +entry = disabledWhileEngineStopped0, "disabledWhileEngineStopped0", int, "%d" +entry = brokenClt0, "brokenClt0", int, "%d" +entry = enabledForAc0, "enabledForAc0", int, "%d" +entry = hot0, "hot0", int, "%d" +entry = cold0, "cold0", int, "%d" +entry = disabledBySpeed0, "disabledBySpeed0", int, "%d" +;entry = cranking1, "cranking1", int, "%d" +;entry = notRunning1, "notRunning1", int, "%d" +;entry = disabledWhileEngineStopped1, "disabledWhileEngineStopped1", int, "%d" +;entry = brokenClt1, "brokenClt1", int, "%d" +;entry = enabledForAc1, "enabledForAc1", int, "%d" +;entry = hot1, "hot1", int, "%d" +;entry = cold1, "cold1", int, "%d" +;entry = disabledBySpeed1, "disabledBySpeed1", int, "%d" +entry = isPrime, "isPrime", int, "%d" +entry = engineTurnedRecently, "engineTurnedRecently", int, "%d" +entry = isFuelPumpOn, "isFuelPumpOn", int, "%d" +entry = ignitionOn, "ignitionOn", int, "%d" +entry = isBenchTest, "isBenchTest", int, "%d" +entry = hasIgnitionVoltage, "hasIgnitionVoltage", int, "%d" +entry = mainRelayState, "mainRelayState", int, "%d" +entry = delayedShutoffRequested, "delayedShutoffRequested", int, "%d" +entry = lua_fuelAdd, "Lua: Fuel add", float, "%.3f" +entry = lua_fuelMult, "Lua: Fuel mult", float, "%.3f" +entry = lua_clutchUpState, "lua_clutchUpState", int, "%d" +entry = lua_brakePedalState, "lua_brakePedalState", int, "%d" +entry = lua_acRequestState, "lua_acRequestState", int, "%d" +entry = lua_luaDisableEtb, "lua_luaDisableEtb", int, "%d" +entry = lua_luaIgnCut, "lua_luaIgnCut", int, "%d" +entry = sd_tCharge, "Air: Charge temperature estimate", float, "%.3f" +entry = sd_tChargeK, "Air: Charge temperature estimate K", float, "%.3f" +entry = crankingFuel_coolantTemperatureCoefficient, "Fuel: cranking CLT mult", float, "%.3f" +entry = crankingFuel_tpsCoefficient, "Fuel: cranking TPS mult", float, "%.3f" +entry = crankingFuel_durationCoefficient, "Fuel: cranking duration mult", float, "%.3f" +entry = crankingFuel_fuel, "Fuel: Cranking cycle mass", float, "%.3f" +entry = baroCorrection, "Fuel: Barometric pressure mult", float, "%.3f" +entry = hellenBoardId, "Detected Board ID", int, "%d" +entry = clutchUpState, "Clutch: up", int, "%d" +entry = clutchDownState, "Clutch: down", int, "%d" +entry = brakePedalState, "Brake switch", int, "%d" +entry = startStopState, "startStopState", int, "%d" +entry = smartChipState, "smartChipState", int, "%d" +entry = smartChipRestartCounter, "smartChipRestartCounter", int, "%d" +entry = smartChipAliveCounter, "smartChipAliveCounter", int, "%d" +entry = startStopPhysicalState, "startStopPhysicalState", int, "%d" +entry = acrActive, "Harley ACR Active", int, "%d" +entry = acrEngineMovedRecently, "acrEngineMovedRecently", int, "%d" +entry = heaterControlEnabled, "heaterControlEnabled", int, "%d" +entry = luaDigitalState0, "luaDigitalState0", int, "%d" +entry = luaDigitalState1, "luaDigitalState1", int, "%d" +entry = luaDigitalState2, "luaDigitalState2", int, "%d" +entry = luaDigitalState3, "luaDigitalState3", int, "%d" +entry = startStopStateToggleCounter, "startStopStateToggleCounter", int, "%d" +entry = egtValue1, "egtValue1", float, "%.3f" +entry = egtValue2, "egtValue2", float, "%.3f" +entry = luaSoftSparkSkip, "luaSoftSparkSkip", float, "%.3f" +entry = luaHardSparkSkip, "luaHardSparkSkip", float, "%.3f" +entry = tractionControlSparkSkip, "tractionControlSparkSkip", float, "%.3f" +entry = desiredRpmLimit, "User-defined RPM hard limit", int, "%d" +entry = fuelInjectionCounter, "Fuel: Injection counter", int, "%d" +entry = globalSparkCounter, "Ign: Spark counter", int, "%d" +entry = fuelingLoad, "Fuel: Load", float, "%.3f" +entry = ignitionLoad, "Ignition: load", float, "%.3f" +entry = veTableYAxis, "veTableYAxis", float, "%.3f" +entry = tpsFrom, "Fuel: TPS AE from", float, "%.3f" +entry = tpsTo, "Fuel: TPS AE to", float, "%.3f" +entry = deltaTps, "Fuel: TPS AE change", float, "%.3f" +entry = extraFuel, "extraFuel", float, "%.3f" +entry = valueFromTable, "valueFromTable", float, "%.3f" +entry = isAboveAccelThreshold, "Fuel: TPS AE Active", int, "%d" +entry = isBelowDecelThreshold, "isBelowDecelThreshold", int, "%d" +entry = isTimeToResetAccumulator, "Fuel: TPS AE: reset time", int, "%d" +entry = isFractionalEnrichment, "isFractionalEnrichment", int, "%d" +entry = belowEpsilon, "Fuel: TPS AE: below threshold", int, "%d" +entry = tooShort, "Fuel: TPS AE: too short", int, "%d" +entry = fractionalInjFuel, "fractionalInjFuel", float, "%.3f" +entry = accumulatedValue, "accumulatedValue", float, "%.3f" +entry = maxExtraPerCycle, "maxExtraPerCycle", float, "%.3f" +entry = maxExtraPerPeriod, "maxExtraPerPeriod", float, "%.3f" +entry = maxInjectedPerPeriod, "maxInjectedPerPeriod", float, "%.3f" +entry = cycleCnt, "cycleCnt", int, "%d" +entry = hwEventCounters1, "Hardware events since boot 1", int, "%d" +entry = hwEventCounters2, "Hardware events since boot 2", int, "%d" +entry = hwEventCounters3, "Hardware events since boot 3", int, "%d" +entry = hwEventCounters4, "Hardware events since boot 4", int, "%d" +entry = hwEventCounters5, "Hardware events since boot 5", int, "%d" +entry = hwEventCounters6, "Hardware events since boot 6", int, "%d" +entry = vvtCamCounter, "Sync: total cams front counter", int, "%d" +entry = mapVvt_MAP_AT_SPECIAL_POINT, "mapVvt_MAP_AT_SPECIAL_POINT", float, "%.3f" +entry = mapVvt_MAP_AT_DIFF, "mapVvt_MAP_AT_DIFF", float, "%.3f" +entry = mapVvt_MAP_AT_CYCLE_COUNT, "mapVvt_MAP_AT_CYCLE_COUNT", int, "%d" +entry = mapVvt_map_peak, "mapVvt_map_peak", int, "%d" +entry = currentEngineDecodedPhase, "Sync: Engine Phase", float, "%.3f" +entry = triggerToothAngleError, "Sync: trigger angle error", float, "%.3f" +entry = triggerIgnoredToothCount, "triggerIgnoredToothCount", int, "%d" +entry = mapCamPrevToothAngle, "Sync: MAP: prev angle", float, "%.3f" +entry = isDecodingMapCam, "isDecodingMapCam", int, "%d" +entry = crankSynchronizationCounter0, "sync: Crank sync counter0", int, "%d" +entry = vvtSyncGapRatio0, "vvtSyncGapRatio0", float, "%.3f" +entry = vvtToothDurations00, "vvtToothDurations00", int, "%d" +entry = vvtCurrentPosition0, "vvtCurrentPosition0", float, "%.3f" +entry = vvtToothPosition10, "vvtToothPosition 10", float, "%.3f" +entry = vvtToothPosition20, "vvtToothPosition 20", float, "%.3f" +entry = vvtToothPosition30, "vvtToothPosition 30", float, "%.3f" +entry = vvtToothPosition40, "vvtToothPosition 40", float, "%.3f" +entry = triggerSyncGapRatio0, "Trigger Sync Latest Ratio0", float, "%.3f" +entry = triggerStateIndex0, "triggerStateIndex0", int, "%d" +entry = vvtStateIndex0, "vvtStateIndex0", int, "%d" +;entry = crankSynchronizationCounter1, "sync: Crank sync counter1", int, "%d" +;entry = vvtSyncGapRatio1, "vvtSyncGapRatio1", float, "%.3f" +;entry = vvtToothDurations01, "vvtToothDurations01", int, "%d" +;entry = vvtCurrentPosition1, "vvtCurrentPosition1", float, "%.3f" +;entry = vvtToothPosition11, "vvtToothPosition 11", float, "%.3f" +;entry = vvtToothPosition21, "vvtToothPosition 21", float, "%.3f" +;entry = vvtToothPosition31, "vvtToothPosition 31", float, "%.3f" +;entry = vvtToothPosition41, "vvtToothPosition 41", float, "%.3f" +;entry = triggerSyncGapRatio1, "Trigger Sync Latest Ratio1", float, "%.3f" +;entry = triggerStateIndex1, "triggerStateIndex1", int, "%d" +;entry = vvtStateIndex1, "vvtStateIndex1", int, "%d" +;entry = crankSynchronizationCounter2, "sync: Crank sync counter2", int, "%d" +;entry = vvtSyncGapRatio2, "vvtSyncGapRatio2", float, "%.3f" +;entry = vvtToothDurations02, "vvtToothDurations02", int, "%d" +;entry = vvtCurrentPosition2, "vvtCurrentPosition2", float, "%.3f" +;entry = vvtToothPosition12, "vvtToothPosition 12", float, "%.3f" +;entry = vvtToothPosition22, "vvtToothPosition 22", float, "%.3f" +;entry = vvtToothPosition32, "vvtToothPosition 32", float, "%.3f" +;entry = vvtToothPosition42, "vvtToothPosition 42", float, "%.3f" +;entry = triggerSyncGapRatio2, "Trigger Sync Latest Ratio2", float, "%.3f" +;entry = triggerStateIndex2, "triggerStateIndex2", int, "%d" +;entry = vvtStateIndex2, "vvtStateIndex2", int, "%d" +;entry = crankSynchronizationCounter3, "sync: Crank sync counter3", int, "%d" +;entry = vvtSyncGapRatio3, "vvtSyncGapRatio3", float, "%.3f" +;entry = vvtToothDurations03, "vvtToothDurations03", int, "%d" +;entry = vvtCurrentPosition3, "vvtCurrentPosition3", float, "%.3f" +;entry = vvtToothPosition13, "vvtToothPosition 13", float, "%.3f" +;entry = vvtToothPosition23, "vvtToothPosition 23", float, "%.3f" +;entry = vvtToothPosition33, "vvtToothPosition 33", float, "%.3f" +;entry = vvtToothPosition43, "vvtToothPosition 43", float, "%.3f" +;entry = triggerSyncGapRatio3, "Trigger Sync Latest Ratio3", float, "%.3f" +;entry = triggerStateIndex3, "triggerStateIndex3", int, "%d" +;entry = vvtStateIndex3, "vvtStateIndex3", int, "%d" +;entry = crankSynchronizationCounter4, "sync: Crank sync counter4", int, "%d" +;entry = vvtSyncGapRatio4, "vvtSyncGapRatio4", float, "%.3f" +;entry = vvtToothDurations04, "vvtToothDurations04", int, "%d" +;entry = vvtCurrentPosition4, "vvtCurrentPosition4", float, "%.3f" +;entry = vvtToothPosition14, "vvtToothPosition 14", float, "%.3f" +;entry = vvtToothPosition24, "vvtToothPosition 24", float, "%.3f" +;entry = vvtToothPosition34, "vvtToothPosition 34", float, "%.3f" +;entry = vvtToothPosition44, "vvtToothPosition 44", float, "%.3f" +;entry = triggerSyncGapRatio4, "Trigger Sync Latest Ratio4", float, "%.3f" +;entry = triggerStateIndex4, "triggerStateIndex4", int, "%d" +;entry = vvtStateIndex4, "vvtStateIndex4", int, "%d" +entry = camResyncCounter, "sync: Phase Re-Sync Counter", int, "%d" +entry = m_hasSynchronizedPhase, "sync: Known Engine Phase", int, "%d" +entry = wallFuelCorrection, "fuel wallwetting injection time", float, "%.3f" +entry = wallFuel, "Fuel on the wall", float, "%.3f" +entry = idleState, "idleState", int, "%d" +entry = currentIdlePosition, "Idle: Position", float, "%.3f" +entry = baseIdlePosition, "idle: base value", float, "%.3f" +entry = idleClosedLoop, "Idle: Closed loop", float, "%.3f" +entry = iacByTpsTaper, "idle: iacByTpsTaper portion", float, "%.3f" +entry = throttlePedalUpState, "idle: throttlePedalUpState", int, "%d" +entry = mightResetPid, "idle: mightResetPid", int, "%d" +entry = shouldResetPid, "Idle: shouldResetPid", int, "%d" +entry = wasResetPid, "Idle: wasResetPid", int, "%d" +entry = mustResetPid, "Idle: mustResetPid", int, "%d" +entry = isCranking, "Idle: cranking", int, "%d" +entry = isIacTableForCoasting, "isIacTableForCoasting", int, "%d" +entry = notIdling, "notIdling", int, "%d" +entry = needReset, "Idle: reset", int, "%d" +entry = isInDeadZone, "Idle: dead zone", int, "%d" +entry = isBlipping, "isBlipping", int, "%d" +entry = useClosedLoop, "useClosedLoop", int, "%d" +entry = badTps, "badTps", int, "%d" +entry = looksLikeRunning, "looksLikeRunning", int, "%d" +entry = looksLikeCoasting, "looksLikeCoasting", int, "%d" +entry = looksLikeCrankToIdle, "looksLikeCrankToIdle", int, "%d" +entry = isIdleCoasting, "Idle: coasting", int, "%d" +entry = isIdleClosedLoop, "Idle: Closed loop active", int, "%d" +entry = idleTarget, "Idle: Target RPM", int, "%d" +entry = targetRpmByClt, "Idle: Target RPM base", int, "%d" +entry = targetRpmAc, "Idle: Target A/C RPM", int, "%d" +entry = iacByRpmTaper, "idle: iacByRpmTaper portion", float, "%.3f" +entry = luaAdd, "idle: Lua Adder", float, "%.3f" +entry = idlePosition0, "ETB: idlePosition0", float, "%.3f" +entry = trim0, "ETB: trim0", float, "%.3f" +entry = luaAdjustment0, "ETB: luaAdjustment0", float, "%.3f" +entry = m_wastegatePosition0, "DC: wastegatePosition0", float, "%.3f" +entry = etbFeedForward0, "etbFeedForward0", float, "%.3f" +entry = etbIntegralError0, "etbIntegralError0", float, "%.3f" +entry = etbCurrentTarget0, "etbCurrentTarget0", float, "%.3f" +entry = etbCurrentAdjustedTarget0, "etbCurrentAdjustedTarget0", float, "%.3f" +entry = etbRevLimitActive0, "etbRevLimitActive0", int, "%d" +entry = jamDetected0, "jamDetected0", int, "%d" +entry = etbDutyRateOfChange0, "ETB duty rate of change0", float, "%.3f" +entry = etbDutyAverage0, "ETB average duty0", float, "%.3f" +entry = etbTpsErrorCounter0, "ETB TPS error counter0", int, "%d" +entry = etbPpsErrorCounter0, "ETB pedal error counter0", int, "%d" +entry = etbErrorCode0, "etbErrorCode0", int, "%d" +entry = tcEtbDrop0, "tcEtbDrop0", int, "%d" +entry = jamTimer0, "ETB jam timer0", float, "%.3f" +;entry = idlePosition1, "ETB: idlePosition1", float, "%.3f" +;entry = trim1, "ETB: trim1", float, "%.3f" +;entry = luaAdjustment1, "ETB: luaAdjustment1", float, "%.3f" +;entry = m_wastegatePosition1, "DC: wastegatePosition1", float, "%.3f" +;entry = etbFeedForward1, "etbFeedForward1", float, "%.3f" +;entry = etbIntegralError1, "etbIntegralError1", float, "%.3f" +;entry = etbCurrentTarget1, "etbCurrentTarget1", float, "%.3f" +;entry = etbCurrentAdjustedTarget1, "etbCurrentAdjustedTarget1", float, "%.3f" +;entry = etbRevLimitActive1, "etbRevLimitActive1", int, "%d" +;entry = jamDetected1, "jamDetected1", int, "%d" +;entry = etbDutyRateOfChange1, "ETB duty rate of change1", float, "%.3f" +;entry = etbDutyAverage1, "ETB average duty1", float, "%.3f" +;entry = etbTpsErrorCounter1, "ETB TPS error counter1", int, "%d" +;entry = etbPpsErrorCounter1, "ETB pedal error counter1", int, "%d" +;entry = etbErrorCode1, "etbErrorCode1", int, "%d" +;entry = tcEtbDrop1, "tcEtbDrop1", int, "%d" +;entry = jamTimer1, "ETB jam timer1", float, "%.3f" +entry = faultCode0, "WBO: Fault code0", int, "%d" +entry = heaterDuty0, "WBO: Heater duty0", int, "%d" +entry = pumpDuty0, "WBO: Pump duty0", int, "%d" +entry = tempC0, "WBO: Temperature0", int, "%d" +entry = nernstVoltage0, "WBO: Nernst Voltage0", float, "%.3f" +entry = esr0, "WBO: ESR0", int, "%d" +;entry = faultCode1, "WBO: Fault code1", int, "%d" +;entry = heaterDuty1, "WBO: Heater duty1", int, "%d" +;entry = pumpDuty1, "WBO: Pump duty1", int, "%d" +;entry = tempC1, "WBO: Temperature1", int, "%d" +;entry = nernstVoltage1, "WBO: Nernst Voltage1", float, "%.3f" +;entry = esr1, "WBO: ESR1", int, "%d" +entry = dcOutput0, "DC: output0", float, "%.3f" +entry = isEnabled0_int, "DC: en0", int, "%d" +entry = isEnabled0, "isEnabled0", int, "%d" +entry = value0, "ETB: SENT value0", int, "%d" +entry = value1, "ETB: SENT value1", int, "%d" +entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" +entry = lambdaCurrentlyGood, "lambdaCurrentlyGood", int, "%d" +entry = lambdaMonitorCut, "lambdaMonitorCut", int, "%d" +entry = lambdaTimeSinceGood, "lambdaTimeSinceGood", float, "%.3f" + + +[Menu] + +menuDialog = main +; see #1653 +; menu = "Data Logging" +; subMenu = std_ms3SdConsole, "Browse / Import SD Card" + + menu = "&Base &Engine" + subMenu = engineChars, "Base engine" + subMenu = limitsAndFallback, "Limits and fallbacks" + subMenu = triggerConfiguration, "Trigger" + subMenu = trigger_advanced, "Advanced Trigger" + subMenu = triggerConfiguration_gap, "Trigger Gap Override" + subMenu = std_separator + subMenu = energySystems, "Battery and alternator" + subMenu = std_separator + + # Digital outputs + subMenu = outputsDialog, "Outputs" + subMenu = acSettings, "Air Conditioning" + subMenu = statusLeds, "Status LEDs" + + menu = "Fuel" + # basic + subMenu = injectorConfig, "Injection configuration" + subMenu = injectionSettings, "Injection hardware", 0, {isInjectionEnabled == 1} + subMenu = cylinderBankSelect, "Cylinder bank selection", 0, {isInjectionEnabled == 1} + subMenu = injectorNonlinear, "Injector small-pulse correction", 0, {isInjectionEnabled == 1} + + subMenu = stagedInjection, "Staged injection", 0, {isInjectionEnabled} + subMenu = stagedInjectionOutputs, "Staged injection outputs", 0, {isInjectionEnabled && enableStagedInjection} + subMenu = stagedInjectionTbl, "Staged injection % table", 0, {isInjectionEnabled && enableStagedInjection} + + groupMenu = "Cylinder fuel trims" + groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1" + groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2" + groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3" + groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4" + groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5" + groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6" + groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7" + groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8" + groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9" + groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10" + groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11" + groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12" + + subMenu = std_separator + + # Air mass model + subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1} + subMenu = veTableMap, "VE Table", 0, {isInjectionEnabled} + + groupMenu = "VE blend tables" + groupChildMenu = veBlend1Cfg, "VE blend 1 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend1Table, "VE blend table 1", 0, { isInjectionEnabled && veBlends1_blendParameter != 0 } + groupChildMenu = veBlend2Cfg, "VE blend 2 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend2Table, "VE blend table 2", 0, { isInjectionEnabled && veBlends2_blendParameter != 0 } + groupChildMenu = veBlend3Cfg, "VE blend 3 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend3Table, "VE blend table 3", 0, { isInjectionEnabled && veBlends3_blendParameter != 0 } + groupChildMenu = veBlend4Cfg, "VE blend 4 bias", 0, {isInjectionEnabled} + groupChildMenu = veBlend4Table, "VE blend table 4", 0, { isInjectionEnabled && veBlends4_blendParameter != 0 } + + subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1} + subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == 0} + subMenu = mapEstimateTableTbl, "MAP estimate table" + subMenu = std_separator + + # Fuel model +#if LAMBDA + subMenu = lambdaTableTbl, "Target lambda", 0, {isInjectionEnabled == 1} +#else + subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1} +#endif + subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1} + subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1} + subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1} + subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Injector model + subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1} + subMenu = std_separator + + # Accel enrichment + subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1} + subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1} + subMenu = tpsTspRpmCorrection, "TPS/TPS extra fuelRPM correction", 0, {isInjectionEnabled == 1} + + groupMenu = "Wall wetting AE" + groupChildMenu = wwTauCurves, "Evap time", 0, { complexWallModel != 0 } + groupChildMenu = wwBetaCurves, "Impact fraction", 0, { complexWallModel != 0 } + + menu = "Ignition" + subMenu = ignitionSettings, "Ignition settings" + subMenu = std_separator + + subMenu = ignitionTableTbl, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = ignitionTableMap, "Ignition advance", 0, {isIgnitionEnabled} + subMenu = cltTimingCorrCurve, "Ign CLT correction", 0, {isIgnitionEnabled == 1} + subMenu = ignitionIatCorrTableTbl, "Ign IAT correction", 0, {isIgnitionEnabled == 1} + subMenu = std_separator + + subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1} + groupMenu = "Ignition blend tables" + groupChildMenu = ignAdder1Cfg, "Ignition blend 1 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder1Table, "Ignition blend table 1", 0, { isIgnitionEnabled && ignBlends1_blendParameter != 0 } + groupChildMenu = ignAdder2Cfg, "Ignition blend 2 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder2Table, "Ignition blend table 2", 0, { isIgnitionEnabled && ignBlends2_blendParameter != 0 } + groupChildMenu = ignAdder3Cfg, "Ignition blend 3 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder3Table, "Ignition blend table 3", 0, { isIgnitionEnabled && ignBlends3_blendParameter != 0 } + groupChildMenu = ignAdder4Cfg, "Ignition blend 4 bias", 0, {isIgnitionEnabled} + groupChildMenu = ignAdder4Table, "Ignition blend table 4", 0, { isIgnitionEnabled && ignBlends4_blendParameter != 0 } + groupMenu = "Cylinder ign trims" + groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1" + groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2" + groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3" + groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4" + groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5" + groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6" + groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7" + groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8" + groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9" + groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10" + groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11" + groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12" + subMenu = std_separator + + subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1} + subMenu = softwareKnock, "Software knock" + subMenu = maxKnockRetardTbl, "Max knock retard" + + menu = "&Cranking" + subMenu = crankingDialog, "Cranking settings" + subMenu = postCrankingEnrichmentTbl,"After-start enrichment" + subMenu = primingFuelPulsePanel, "Priming pulse" + subMenu = std_separator + + subMenu = crankingCltCurve, "Fuel CLT multiplier" + subMenu = crankingCltCurveE100, "Fuel CLT multiplier (Flex Fuel E85)", 0, { flexSensorPin != 0 && flexCranking } + subMenu = crankingDurationCurve, "Fuel duration multiplier" + subMenu = crankingTpsCurve, "Fuel TPS multiplier" + subMenu = std_separator + + subMenu = crankingAdvanceCurve, "Cranking ignition advance", 0, {useSeparateAdvanceForCranking == 1} + subMenu = std_separator + + subMenu = cltCrankingCurve, "Cranking IAC CLT multiplier", 0, {overrideCrankingIacSetting == 1} + + menu = "&Idle" + subMenu = idleSettings, "Idle settings" + subMenu = idlehw, "Idle hardware" + subMenu = std_separator + subMenu = cltIdleRPMCurve, "Target RPM" + subMenu = cltIdleCurve, "CLT multiplier" + subMenu = std_separator + subMenu = idleTimingPidCorrDialog, "Closed-loop idle timing" + subMenu = iacPidMultTbl, "IAC PID multiplier", 0, {idleMode == 0 && useIacPidMultTable == 1} + subMenu = iacCoastingCurve, "Coasting IAC position", 0, {useIacTableForCoasting == 1} + subMenu = std_separator + subMenu = idleVeTableTbl, "Idle VE", 0, {useSeparateVeForIdle == 1} + subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1} + + menu = "&Advanced" + subMenu = smLaunchControl, "Launch Control" + subMenu = ignitionCylExtra, "Cylinder offsets", 0 + + subMenu = std_separator + subMenu = boostDialog, "Boost control" + subMenu = boostOpenLoopDialog, "Boost control open loop", { isBoostControlEnabled } + subMenu = boostOpenLoopGearAdderDialog, "Boost control open loop gear adder", { isBoostControlEnabled } + subMenu = boostPidDialog, "Boost control PID", { isBoostControlEnabled && boostType == 1 } + subMenu = boostTargetDialog, "Boost control target", { isBoostControlEnabled && boostType == 1 } + + groupMenu = "Boost blend tables" + groupChildMenu = boostOpenBlend1Cfg, "Open loop 1 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend1Table, "Open loop 1 adder", { isBoostControlEnabled && boostOpenLoopBlends1_blendParameter != 0 } + groupChildMenu = boostOpenBlend2Cfg, "Open loop 2 bias", { isBoostControlEnabled } + groupChildMenu = boostOpenBlend2Table, "Open loop 2 adder", { isBoostControlEnabled && boostOpenLoopBlends2_blendParameter != 0 } + groupChildMenu = boostClosedBlend1Cfg, "Closed loop 1 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 1 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends1_blendParameter != 0 } + groupChildMenu = boostClosedBlend2Cfg, "Closed loop 2 bias", { isBoostControlEnabled && boostType == 1 } + groupChildMenu = boostClosedBlend2Table, "Closed loop 2 adder", { isBoostControlEnabled && boostType == 1 && boostClosedLoopBlends2_blendParameter != 0 } + + subMenu = boostEtbPid, "ETB-style Wastegate Actuator", { etbFunctions1 == 4 || etbFunctions2 == 4 } + + subMenu = std_separator + subMenu = gppwm1, "General Purpose PWM 1" + subMenu = gppwm2, "General Purpose PWM 2" + subMenu = gppwm3, "General Purpose PWM 3" + subMenu = gppwm4, "General Purpose PWM 4" + + subMenu = std_separator + subMenu = etbDialog, "Electronic throttle body" + subMenu = etbTpsBiasCurve, "ETB bias curve (feed forward)" + subMenu = pedalToTpsTbl, "ETB pedal target" + subMenu = throttle2TrimTbl, "ETB #2 Trim", { tps2_1AdcChannel != 0 } + + subMenu = std_separator + subMenu = vvtPidDialog, "VVT outputs and PID", { vvtMode1 != 0 } + subMenu = vvtTable1Tbl, "VVT intake target", { vvtMode1 != 0 && vvtPins1 != 0 } + subMenu = vvtTable2Tbl, "VVT exhaust target", { vvtMode2 != 0 && vvtPins2 != 0 } + + subMenu = std_separator + subMenu = auxInputsDialog, "Lua Analog Inputs" + subMenu = luaDigitalInputsDialog, "Lua Digital Inputs" + subMenu = luaOutputs, "Lua Script PWM Outputs" + + groupMenu = "Lua Calibrations" + groupChildMenu = scriptSetting, "Lua Script Settings" + + groupChildMenu = scriptTable1TblSettings, "Script Table #1" + groupChildMenu = scriptTable2TblSettings, "Script Table #2" + groupChildMenu = scriptTable3TblSettings, "Script Table #3" + groupChildMenu = scriptTable4TblSettings, "Script Table #4" + + groupChildMenu = scriptCurve1Settings, "Script Curve #1" + groupChildMenu = scriptCurve2Settings, "Script Curve #2" + groupChildMenu = scriptCurve3Settings, "Script Curve #3" + groupChildMenu = scriptCurve4Settings, "Script Curve #4" + groupChildMenu = scriptCurve5Settings, "Script Curve #5" + groupChildMenu = scriptCurve6Settings, "Script Curve #6" + + subMenu = std_separator + subMenu = tcuControls, "Transmission Settings (alpha)" + subMenu = gearControls, "Gear Selection Settings (alpha)" + subMenu = inputSpeedSensor, "Input Speed Sensor (alpha)" + subMenu = tcuSolenoidTableTbl, "Shift Solenoids (alpha)" + subMenu = tccCurves, "TCC Lock/Unlock Speed (alpha)" + subMenu = pcPerGearDialog, "Line Pressure Per Gear (alpha)" + subMenu = pcPerShiftDialog, "Line Pressure Per Shift (alpha)" + subMenu = 32Dialog, "3-2 Shift Solenoid Percent by Speed (alpha)" + subMenu = rangeMatrixDialog, "Range Selector Input Matrix (alpha)" + + 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 = speedSensor, "Vehicle speed sensor" + subMenu = oilPressureSensor, "Oil pressure" + subMenu = oilTempSensor, "Oil temp sensor" + subMenu = fuelPressureSensor, "Fuel pressure" + subMenu = fuelTempSensor, "Fuel temp sensor" + subMenu = fuelLevelDialog, "Fuel level sensor" + subMenu = ambientTempSensor, "Ambient temp sensor" + subMenu = compressorDischargeTemperature, "Compressor discharge temp" + subMenu = wastegateIdlePos, "Wastegate and idle position sensors" + subMenu = std_separator + + subMenu = auxLinearSensors, "Aux Sensors" + + menu = "&Controller" + subMenu = ecuStimulator, "ECU stimulator" + subMenu = ioTest, "Bench test" + subMenu = injTest, "Injector test" + subMenu = engineTypeDialog, "Popular vehicles" + subMenu = std_separator + + subMenu = spiBuses, "SPI Buses" + subMenu = spiDevices, "SPI Devices" + subMenu = monitoringSettings, "rusEFI console" + subMenu = std_separator + + subMenu = canBusMain, "CAN Bus Communication" + subMenu = sdCard, "SD Card Logger" + subMenu = connection, "Connection" + subMenu = std_separator + + subMenu = std_separator + + subMenu = allPins1, "Full pinout 1/3" + subMenu = allPins2, "Full pinout 2/3" + subMenu = allPins3_1_and_2 "Full pinout 3/3" + 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 = tractionEtbTableTbl, "Traction Control ETB Drop" + subMenu = tractionTimingTableTbl, "Traction Control Timing Adjustment" + subMenu = tractionIgnitionSkipDialog, "Traction Control Skip Ignition" + subMenu = std_separator + + + ; TODO: move lambdaProtection to the fuel menu once ready + ; https://github.com/FOME-Tech/fome-fw/issues/75 + subMenu = lambdaProtection, "Lambda Protection", 0, { isInjectionEnabled } + subMenu = std_separator + + subMenu = kLineDialog, "K-Line" + subMenu = parkingLot, "Experimental/Broken" + subMenu = parkingLot2, "Experimental 2" + subMenu = harleyAcr, "HD" + subMenu = antiLagDialog, "Anti-Lag ALS" + subMenu = rotaryDialog, "Rotary" + subMenu = throttleEffectiveArea, "Throttle effective area" + + menu = "Help" + subMenu = helpGeneral, "rusEFI Info" + + menu = "&View" + subMenu = fuel_computerDialog, "fuel_computer" + subMenu = ignition_stateDialog, "ignition_state" + subMenu = knock_controllerDialog, "knock_controller" + subMenu = tcu_controllerDialog, "tcu_controller" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + subMenu = injector_modelDialog, "injector_model" + subMenu = launch_control_stateDialog, "launch_control_state" + subMenu = antilag_system_stateDialog, "antilag_system_state" + subMenu = boost_controlDialog, "boost_control" + subMenu = ac_controlDialog, "ac_control" + subMenu = fan_control0Dialog, "fan_control0" + subMenu = fuel_pump_controlDialog, "fuel_pump_control" + subMenu = main_relayDialog, "main_relay" + subMenu = engine_stateDialog, "engine_state" + subMenu = tps_accel_stateDialog, "tps_accel_state" + subMenu = trigger_centralDialog, "trigger_central" + subMenu = trigger_state0Dialog, "trigger_state0" + subMenu = trigger_state_primaryDialog, "trigger_state_primary" + subMenu = wall_fuel_stateDialog, "wall_fuel_state" + subMenu = idle_stateDialog, "idle_state" + subMenu = electronic_throttle0Dialog, "electronic_throttle0" + subMenu = wideband_state0Dialog, "wideband_state0" + subMenu = dc_motorsDialog, "dc_motors" + subMenu = sent_stateDialog, "sent_state" + subMenu = vvtDialog, "vvt" + subMenu = lambda_monitorDialog, "lambda_monitor" + + + +[ControllerCommands] +; commandName = command1, command2, commandn... +; command in standard ini format, a command name can be assigned to 1 to n commands that will be executed in order. +; This does not include any resultant protocol envelope data, only the response data itself. + +; WARNING!! These commands bypass TunerStudio's normal memory synchronization. If these commands +; alter mapped settings (Constant) memory in the controller, TunerStudio will have an out of sync condition +; and may create error messages. +; It is expected that these commands would not typically alter any ram mapped to a Constant. + +; +; see TS_IO_TEST_COMMAND in firmware code +; + +cmd_test_spk1 = "Z\x00\x12\x00\x01" +cmd_test_spk2 = "Z\x00\x12\x00\x02" +cmd_test_spk3 = "Z\x00\x12\x00\x03" +cmd_test_spk4 = "Z\x00\x12\x00\x04" +cmd_test_spk5 = "Z\x00\x12\x00\x05" +cmd_test_spk6 = "Z\x00\x12\x00\x06" +cmd_test_spk7 = "Z\x00\x12\x00\x07" +cmd_test_spk8 = "Z\x00\x12\x00\x08" +cmd_test_spk9 = "Z\x00\x12\x00\x09" +cmd_test_spk10 = "Z\x00\x12\x00\x0a" +cmd_test_spk11 = "Z\x00\x12\x00\x0b" +cmd_test_spk12 = "Z\x00\x12\x00\x0c" + +cmd_test_lua1 = "Z\x00\x20\x00\x01" +cmd_test_lua2 = "Z\x00\x20\x00\x02" +cmd_test_lua3 = "Z\x00\x20\x00\x03" +cmd_test_lua4 = "Z\x00\x20\x00\x04" +cmd_test_lua5 = "Z\x00\x20\x00\x05" +cmd_test_lua6 = "Z\x00\x20\x00\x06" +cmd_test_lua7 = "Z\x00\x20\x00\x07" +cmd_test_lua8 = "Z\x00\x20\x00\x08" + +cmd_test_inj1 = "Z\x00\x13\x00\x01" +cmd_test_inj2 = "Z\x00\x13\x00\x02" +cmd_test_inj3 = "Z\x00\x13\x00\x03" +cmd_test_inj4 = "Z\x00\x13\x00\x04" +cmd_test_inj5 = "Z\x00\x13\x00\x05" +cmd_test_inj6 = "Z\x00\x13\x00\x06" +cmd_test_inj7 = "Z\x00\x13\x00\x07" +cmd_test_inj8 = "Z\x00\x13\x00\x08" +cmd_test_inj9 = "Z\x00\x13\x00\x09" +cmd_test_inj10 = "Z\x00\x13\x00\x0a" +cmd_test_inj11 = "Z\x00\x13\x00\x0b" +cmd_test_inj12 = "Z\x00\x13\x00\x0c" + +cmd_test_cancel = "Z\x00\x16\x00\x0f" + +cmd_test_sol1 = "Z\x00\x19\x00\x01" +cmd_test_sol2 = "Z\x00\x19\x00\x02" +cmd_test_sol3 = "Z\x00\x19\x00\x03" +cmd_test_sol4 = "Z\x00\x19\x00\x04" +cmd_test_sol5 = "Z\x00\x19\x00\x05" +cmd_test_sol6 = "Z\x00\x19\x00\x06" + +cmd_test_main_relay = "Z\x00\x16\x00\x00" +cmd_test_fuel_pump = "Z\x00\x16\x00\x01" +cmd_test_starter_relay = "Z\x00\x16\x00\x02" +cmd_test_starter_disable_relay = "Z\x00\x16\x00\x03" +cmd_test_ac_relay = "Z\x00\x16\x00\x06" +cmd_test_fan_1 = "Z\x00\x16\x00\x04" +cmd_test_fan_2 = "Z\x00\x16\x00\x05" +cmd_test_check_engine_light = "Z\x00\x16\x00\x07" +cmd_test_idle_valve = "Z\x00\x16\x00\x08" +cmd_test_second_idle_valve = "Z\x00\x16\x00\x0e" +cmd_test_hpfp_valve = "Z\x00\x16\x00\x09" +cmd_test_acr_valve = "Z\x00\x16\x00\x1c" +cmd_test_acr2_valve = "Z\x00\x16\x00\x1d" +cmd_test_vvt0_valve = "Z\x00\x16\x00\x10" +cmd_test_vvt1_valve = "Z\x00\x16\x00\x11" +cmd_test_vvt2_valve = "Z\x00\x16\x00\x12" +cmd_test_vvt3_valve = "Z\x00\x16\x00\x13" + +cmd_calibrate_tps_1_closed = "Z\x00\x14\x00\x02" +cmd_calibrate_tps_1_wot = "Z\x00\x14\x00\x03" +cmd_calibrate_tps_2_closed = "Z\x00\x14\x00\x04" +cmd_calibrate_tps_2_wot = "Z\x00\x14\x00\x05" +cmd_calibrate_pedal_up = "Z\x00\x14\x00\x06" +cmd_calibrate_pedal_down = "Z\x00\x14\x00\x07" +cmd_tle8888_init = "Z\x00\x14\x00\x08" +cmd_mc33810_init = "Z\x00\x14\x00\x14" +cmd_write_config = "Z\x00\x14\x00\x0a" +cmd_etb_reset = "Z\x00\x14\x00\x0b" +cmd_etb_autotune = "Z\x00\x14\x00\x0C" +cmd_enable_self_stim = "Z\x00\x14\x00\x0D" +cmd_etb_auto_calibrate = "Z\x00\x14\x00\x0E" +cmd_disable_self_stim = "Z\x00\x14\x00\x0F" +cmd_etb_autotune_stop = "Z\x00\x14\x00\x10" +cmd_etb_auto_calibrate_2 = "Z\x00\x14\x00\x11" +cmd_wideband_firmare_update = "Z\x00\x14\x00\x12" +cmd_enable_ext_stim = "Z\x00\x14\x00\x13" +cmd_burn_without_flash = "Z\x00\x14\x00\x15" + +cmd_set_wideband_idx_0 = "Z\x00\x15\x00\x00" +cmd_set_wideband_idx_1 = "Z\x00\x15\x00\x01" + +cmd_stop_engine = "Z\x00\x79\x00\x00" + +; reboot ECU +cmd_reset_controller = "Z\x00\xbb\x00\x00" +; jump to DFU mode +cmd_dfu = "Z\x00\xba\x00\x00" +; jump to OpenBLT bootloader +cmd_openblt = "Z\x00\xbc\x00\x00" + +; See 'executeTSCommand' in firmware source code + +cmd_set_engine_type_HONDA_OBD1 = "Z\x00\x1e\x00\x42" + +cmd_set_engine_type_microRusEFI_VW_B6 = "Z\x00\x1e\x00\x3e" +cmd_set_engine_type_microRusEFI_MRE_BODY_CONTROL = "Z\x00\x1e\x00\x17" +cmd_set_engine_type_MRE_SECONDARY_CAN = "Z\x00\x1e\x00\x04" + +; cmd_set_engine_type_ = "Z\x00\x1e@@engine_type_e_ +cmd_set_engine_type_MITSUBISHI_3A92 = "Z\x00\x1e\x00\x0c" +cmd_set_engine_type_MITSUBISHI_4G93 = "Z\x00\x1e\x00\x10" +cmd_set_engine_type_TOYOTA_1NZ_FE = "Z\x00\x1e\x00\x0d" + +cmd_set_engine_type_MRE_M111 = "Z\x00\x1e\x00\x44" + +cmd_set_engine_type_MAZDA_MIATA_NA6 = "Z\x00\x1e\x00\x22" +cmd_set_engine_type_MAZDA_MIATA_NA94 = "Z\x00\x1e\x00\x50" + +cmd_set_engine_type_MAZDA_MIATA_NB2_36 = "Z\x00\x1e\x00\x56" + +cmd_set_engine_type_hellen_nissan_121_4 = "Z\x00\x1e\x00\x54" +cmd_set_engine_type_hellen_nissan_121_6 = "Z\x00\x1e\x00\x48" +cmd_set_engine_type_hellen_nissan_121_8 = "Z\x00\x1e\x00\x55" + +cmd_set_engine_type_hellen_121_vag_4 = "Z\x00\x1e\x00\x47" +cmd_set_engine_type_hellen_121_vag_5 = "Z\x00\x1e\x00\x4d" +cmd_set_engine_type_hellen_121_vag_v6 = "Z\x00\x1e\x00\x4e" +cmd_set_engine_type_hellen_121_vag_vr6 = "Z\x00\x1e\x00\x4f" +cmd_set_engine_type_hellen_121_vag_8 = "Z\x00\x1e\x00\x51" + +cmd_set_engine_type_hellen_128_merc_4 = "Z\x00\x1e\x00\x24" +cmd_set_engine_type_hellen_128_merc_6 = "Z\x00\x1e\x00\x58" +cmd_set_engine_type_hellen_128_merc_8 = "Z\x00\x1e\x00\x59" + +cmd_set_engine_type_hellen_coupe_bk1 = "Z\x00\x1e\x00\x52" +cmd_set_engine_type_hellen_coupe_bk2 = "Z\x00\x1e\x00\x5f" + +; MIATA_NA6_MAP = 41 +cmd_set_engine_type_Frankenso_Miata_NA6_MAP = "Z\x00\x1e\x00\x29" + +cmd_set_engine_type_FUEL_BENCH = "Z\x00\x1e\x00\x0f" + + + + + + + +; ETB_BENCH_ENGINE = 58 +cmd_set_engine_type_etb_test = "Z\x00\x1e\x00\x3A" +; ETB_BENCH_ENGINE = 59 +cmd_set_engine_type_8888_test = "Z\x00\x1e\x00\x3B" +cmd_set_engine_type_default = "Z\x00\x1f\x00\x00" + +[UserDefined] +indicatorPanel = fuel_computerIndicatorPanel, 2 + indicator = {injectorHwIssue}, "injectorHwIssue No", "injectorHwIssue Yes" + +dialog = fuel_computerDialog, "fuel_computer" + panel = fuel_computerIndicatorPanel + liveGraph = fuel_computer_1_Graph, "Graph", South + graphLine = totalFuelCorrection + graphLine = running_postCrankingFuelCorrection + graphLine = running_intakeTemperatureCoefficient + graphLine = running_coolantTemperatureCoefficient + liveGraph = fuel_computer_2_Graph, "Graph", South + graphLine = running_timeSinceCrankingInSecs + graphLine = running_baseFuel + graphLine = running_fuel + graphLine = afrTableYAxis + liveGraph = fuel_computer_3_Graph, "Graph", South + graphLine = targetLambda + graphLine = targetAFR + graphLine = stoichiometricRatio + graphLine = sdTcharge_coff + liveGraph = fuel_computer_4_Graph, "Graph", South + graphLine = sdAirMassInOneCylinder + graphLine = normalizedCylinderFilling + graphLine = brokenInjector + graphLine = unused88 + liveGraph = fuel_computer_5_Graph, "Graph", South + graphLine = idealEngineTorque + +indicatorPanel = ignition_stateIndicatorPanel, 2 + indicator = {luaIgnitionSkip}, "luaIgnitionSkip No", "luaIgnitionSkip Yes" + +dialog = ignition_stateDialog, "ignition_state" + panel = ignition_stateIndicatorPanel + liveGraph = ignition_state_1_Graph, "Graph", South + graphLine = baseDwell + graphLine = sparkDwell + graphLine = dwellDurationAngle + graphLine = cltTimingCorrection + liveGraph = ignition_state_2_Graph, "Graph", South + graphLine = timingIatCorrection + graphLine = timingPidCorrection + graphLine = baseIgnitionAdvance + graphLine = correctedIgnitionAdvance + liveGraph = ignition_state_3_Graph, "Graph", South + graphLine = tractionAdvanceDrop + graphLine = dwellVoltageCorrection + graphLine = luaTimingAdd + graphLine = luaTimingMult + + +dialog = knock_controllerDialog, "knock_controller" + liveGraph = knock_controller_1_Graph, "Graph", South + graphLine = m_knockLevel + graphLine = m_knockCyl1 + graphLine = m_knockCyl2 + graphLine = m_knockCyl3 + liveGraph = knock_controller_2_Graph, "Graph", South + graphLine = m_knockCyl4 + graphLine = m_knockCyl5 + graphLine = m_knockCyl6 + graphLine = m_knockCyl7 + liveGraph = knock_controller_3_Graph, "Graph", South + graphLine = m_knockCyl8 + graphLine = m_knockCyl9 + graphLine = m_knockCyl10 + graphLine = m_knockCyl11 + liveGraph = knock_controller_4_Graph, "Graph", South + graphLine = m_knockCyl12 + graphLine = m_knockRetard + graphLine = m_knockThreshold + graphLine = m_knockCount + liveGraph = knock_controller_5_Graph, "Graph", South + graphLine = m_maximumRetard + + +dialog = tcu_controllerDialog, "tcu_controller" + liveGraph = tcu_controller_1_Graph, "Graph", South + graphLine = tcuCurrentGear + graphLine = tcRatio + graphLine = lastShiftTime + graphLine = tcu_currentRange + +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + +indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 + indicator = {noValve}, "noValve No", "noValve Yes" + indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" + indicator = {isHpfpInactive}, "isHpfpInactive No", "isHpfpInactive Yes" + +dialog = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" + panel = high_pressure_fuel_pumpIndicatorPanel + liveGraph = high_pressure_fuel_pump_1_Graph, "Graph", South + graphLine = m_requested_pump + graphLine = fuel_requested_percent + graphLine = fuel_requested_percent_pi + graphLine = m_pressureTarget_kPa + liveGraph = high_pressure_fuel_pump_2_Graph, "Graph", South + graphLine = nextLobe + graphLine = di_nextStart + + +dialog = injector_modelDialog, "injector_model" + liveGraph = injector_model_1_Graph, "Graph", South + graphLine = m_deadtime + graphLine = pressureDelta + graphLine = pressureRatio + +indicatorPanel = launch_control_stateIndicatorPanel, 2 + indicator = {combinedConditions}, "combinedConditions No", "combinedConditions Yes" + indicator = {launchActivatePinState}, "launchActivatePinState No", "launchActivatePinState Yes" + indicator = {isLaunchPreCondition}, "isLaunchPreCondition No", "isLaunchPreCondition Yes" + indicator = {isLaunchCondition}, "isLaunchCondition No", "isLaunchCondition Yes" + indicator = {isSwitchActivated}, "isSwitchActivated No", "isSwitchActivated Yes" + indicator = {isClutchActivated}, "isClutchActivated No", "isClutchActivated Yes" + indicator = {isValidInputPin}, "isValidInputPin No", "isValidInputPin Yes" + indicator = {activateSwitchCondition}, "activateSwitchCondition No", "activateSwitchCondition Yes" + indicator = {rpmCondition}, "rpmCondition No", "rpmCondition Yes" + indicator = {speedCondition}, "speedCondition No", "speedCondition Yes" + indicator = {tpsCondition}, "tpsCondition No", "tpsCondition Yes" + +dialog = launch_control_stateDialog, "launch_control_state" + panel = launch_control_stateIndicatorPanel + liveGraph = launch_control_state_1_Graph, "Graph", South + graphLine = retardThresholdRpm + +indicatorPanel = antilag_system_stateIndicatorPanel, 2 + indicator = {isAntilagCondition}, "isAntilagCondition No", "isAntilagCondition Yes" + indicator = {ALSMinRPMCondition}, "ALSMinRPMCondition No", "ALSMinRPMCondition Yes" + indicator = {ALSMaxRPMCondition}, "ALSMaxRPMCondition No", "ALSMaxRPMCondition Yes" + indicator = {ALSMinCLTCondition}, "ALSMinCLTCondition No", "ALSMinCLTCondition Yes" + indicator = {ALSMaxCLTCondition}, "ALSMaxCLTCondition No", "ALSMaxCLTCondition Yes" + indicator = {ALSMaxThrottleIntentCondition}, "ALSMaxThrottleIntentCondition No", "ALSMaxThrottleIntentCondition Yes" + indicator = {isALSSwitchActivated}, "isALSSwitchActivated No", "isALSSwitchActivated Yes" + indicator = {ALSActivatePinState}, "ALSActivatePinState No", "ALSActivatePinState Yes" + indicator = {ALSSwitchCondition}, "ALSSwitchCondition No", "ALSSwitchCondition Yes" + indicator = {ALSTimerCondition}, "ALSTimerCondition No", "ALSTimerCondition Yes" + +dialog = antilag_system_stateDialog, "antilag_system_state" + panel = antilag_system_stateIndicatorPanel + liveGraph = antilag_system_state_1_Graph, "Graph", South + graphLine = fuelALSCorrection + graphLine = timingALSCorrection + graphLine = timingALSSkip + +indicatorPanel = boost_controlIndicatorPanel, 2 + indicator = {isTpsInvalid}, "isTpsInvalid No", "isTpsInvalid Yes" + indicator = {m_shouldResetPid}, "m_shouldResetPid No", "m_shouldResetPid Yes" + indicator = {isBelowClosedLoopThreshold}, "isBelowClosedLoopThreshold No", "isBelowClosedLoopThreshold Yes" + indicator = {isNotClosedLoop}, "isNotClosedLoop No", "isNotClosedLoop Yes" + indicator = {isZeroRpm}, "isZeroRpm No", "isZeroRpm Yes" + indicator = {hasInitBoost}, "hasInitBoost No", "hasInitBoost Yes" + indicator = {rpmTooLow}, "rpmTooLow No", "rpmTooLow Yes" + indicator = {tpsTooLow}, "tpsTooLow No", "tpsTooLow Yes" + indicator = {mapTooLow}, "mapTooLow No", "mapTooLow Yes" + indicator = {isPlantValid}, "isPlantValid No", "isPlantValid Yes" + indicator = {isBoostControlled}, "isBoostControlled No", "isBoostControlled Yes" + +dialog = boost_controlDialog, "boost_control" + panel = boost_controlIndicatorPanel + liveGraph = boost_control_1_Graph, "Graph", South + graphLine = luaTargetAdd + graphLine = boostOutput + graphLine = luaTargetMult + graphLine = openLoopPart + liveGraph = boost_control_2_Graph, "Graph", South + graphLine = luaOpenLoopAdd + graphLine = boostControllerClosedLoopPart + graphLine = boostControlTarget + +indicatorPanel = ac_controlIndicatorPanel, 2 + indicator = {m_acEnabled}, "m_acEnabled No", "m_acEnabled Yes" + indicator = {engineTooSlow}, "engineTooSlow No", "engineTooSlow Yes" + indicator = {engineTooFast}, "engineTooFast No", "engineTooFast Yes" + indicator = {noClt}, "noClt No", "noClt Yes" + indicator = {engineTooHot}, "engineTooHot No", "engineTooHot Yes" + indicator = {tpsTooHigh}, "tpsTooHigh No", "tpsTooHigh Yes" + indicator = {isDisabledByLua}, "isDisabledByLua No", "isDisabledByLua Yes" + indicator = {acCompressorState}, "acCompressorState No", "acCompressorState Yes" + +dialog = ac_controlDialog, "ac_control" + panel = ac_controlIndicatorPanel + liveGraph = ac_control_1_Graph, "Graph", South + graphLine = acButtonState + graphLine = latest_usage_ac_control + graphLine = acSwitchLastChangeTimeMs + +indicatorPanel = fan_control0IndicatorPanel, 2 + indicator = {cranking0}, "cranking No", "cranking Yes" + indicator = {notRunning0}, "notRunning No", "notRunning Yes" + indicator = {disabledWhileEngineStopped0}, "disabledWhileEngineStopped No", "disabledWhileEngineStopped Yes" + indicator = {brokenClt0}, "brokenClt No", "brokenClt Yes" + indicator = {enabledForAc0}, "enabledForAc No", "enabledForAc Yes" + indicator = {hot0}, "hot No", "hot Yes" + indicator = {cold0}, "cold No", "cold Yes" + indicator = {disabledBySpeed0}, "disabledBySpeed No", "disabledBySpeed Yes" + +dialog = fan_control0Dialog, "fan_control0" + panel = fan_control0IndicatorPanel + +indicatorPanel = fuel_pump_controlIndicatorPanel, 2 + indicator = {isPrime}, "isPrime No", "isPrime Yes" + indicator = {engineTurnedRecently}, "engineTurnedRecently No", "engineTurnedRecently Yes" + indicator = {isFuelPumpOn}, "isFuelPumpOn No", "isFuelPumpOn Yes" + indicator = {ignitionOn}, "ignitionOn No", "ignitionOn Yes" + +dialog = fuel_pump_controlDialog, "fuel_pump_control" + panel = fuel_pump_controlIndicatorPanel + +indicatorPanel = main_relayIndicatorPanel, 2 + indicator = {isBenchTest}, "isBenchTest No", "isBenchTest Yes" + indicator = {hasIgnitionVoltage}, "hasIgnitionVoltage No", "hasIgnitionVoltage Yes" + indicator = {mainRelayState}, "mainRelayState No", "mainRelayState Yes" + indicator = {delayedShutoffRequested}, "delayedShutoffRequested No", "delayedShutoffRequested Yes" + +dialog = main_relayDialog, "main_relay" + panel = main_relayIndicatorPanel + +indicatorPanel = engine_stateIndicatorPanel, 2 + indicator = {lua_clutchUpState}, "clutchUpState No", "clutchUpState Yes" + indicator = {lua_brakePedalState}, "brakePedalState No", "brakePedalState Yes" + indicator = {lua_acRequestState}, "acRequestState No", "acRequestState Yes" + indicator = {lua_luaDisableEtb}, "luaDisableEtb No", "luaDisableEtb Yes" + indicator = {lua_luaIgnCut}, "luaIgnCut No", "luaIgnCut Yes" + indicator = {startStopPhysicalState}, "startStopPhysicalState No", "startStopPhysicalState Yes" + indicator = {acrActive}, "acrActive No", "acrActive Yes" + indicator = {acrEngineMovedRecently}, "acrEngineMovedRecently No", "acrEngineMovedRecently Yes" + indicator = {heaterControlEnabled}, "heaterControlEnabled No", "heaterControlEnabled Yes" + indicator = {luaDigitalState0}, "luaDigitalState0 No", "luaDigitalState0 Yes" + indicator = {luaDigitalState1}, "luaDigitalState1 No", "luaDigitalState1 Yes" + indicator = {luaDigitalState2}, "luaDigitalState2 No", "luaDigitalState2 Yes" + indicator = {luaDigitalState3}, "luaDigitalState3 No", "luaDigitalState3 Yes" + +dialog = engine_stateDialog, "engine_state" + panel = engine_stateIndicatorPanel + liveGraph = engine_state_1_Graph, "Graph", South + graphLine = lua_fuelAdd + graphLine = lua_fuelMult + graphLine = sd_tCharge + graphLine = sd_tChargeK + liveGraph = engine_state_2_Graph, "Graph", South + graphLine = crankingFuel_coolantTemperatureCoefficient + graphLine = crankingFuel_tpsCoefficient + graphLine = crankingFuel_durationCoefficient + graphLine = crankingFuel_fuel + liveGraph = engine_state_3_Graph, "Graph", South + graphLine = baroCorrection + graphLine = hellenBoardId + graphLine = clutchUpState + graphLine = clutchDownState + liveGraph = engine_state_4_Graph, "Graph", South + graphLine = brakePedalState + graphLine = startStopState + graphLine = smartChipState + graphLine = smartChipRestartCounter + liveGraph = engine_state_5_Graph, "Graph", South + graphLine = smartChipAliveCounter + graphLine = startStopStateToggleCounter + graphLine = egtValue1 + graphLine = egtValue2 + liveGraph = engine_state_6_Graph, "Graph", South + graphLine = luaSoftSparkSkip + graphLine = luaHardSparkSkip + graphLine = tractionControlSparkSkip + graphLine = desiredRpmLimit + liveGraph = engine_state_7_Graph, "Graph", South + graphLine = fuelInjectionCounter + graphLine = globalSparkCounter + graphLine = fuelingLoad + graphLine = ignitionLoad + liveGraph = engine_state_8_Graph, "Graph", South + graphLine = veTableYAxis + +indicatorPanel = tps_accel_stateIndicatorPanel, 2 + indicator = {isAboveAccelThreshold}, "isAboveAccelThreshold No", "isAboveAccelThreshold Yes" + indicator = {isBelowDecelThreshold}, "isBelowDecelThreshold No", "isBelowDecelThreshold Yes" + indicator = {isTimeToResetAccumulator}, "isTimeToResetAccumulator No", "isTimeToResetAccumulator Yes" + indicator = {isFractionalEnrichment}, "isFractionalEnrichment No", "isFractionalEnrichment Yes" + indicator = {belowEpsilon}, "belowEpsilon No", "belowEpsilon Yes" + indicator = {tooShort}, "tooShort No", "tooShort Yes" + +dialog = tps_accel_stateDialog, "tps_accel_state" + panel = tps_accel_stateIndicatorPanel + liveGraph = tps_accel_state_1_Graph, "Graph", South + graphLine = tpsFrom + graphLine = tpsTo + graphLine = deltaTps + graphLine = extraFuel + liveGraph = tps_accel_state_2_Graph, "Graph", South + graphLine = valueFromTable + graphLine = fractionalInjFuel + graphLine = accumulatedValue + graphLine = maxExtraPerCycle + liveGraph = tps_accel_state_3_Graph, "Graph", South + graphLine = maxExtraPerPeriod + graphLine = maxInjectedPerPeriod + graphLine = cycleCnt + +indicatorPanel = trigger_centralIndicatorPanel, 2 + indicator = {isDecodingMapCam}, "isDecodingMapCam No", "isDecodingMapCam Yes" + +dialog = trigger_centralDialog, "trigger_central" + panel = trigger_centralIndicatorPanel + liveGraph = trigger_central_1_Graph, "Graph", South + graphLine = hwEventCounters1 + graphLine = hwEventCounters2 + graphLine = hwEventCounters3 + graphLine = hwEventCounters4 + liveGraph = trigger_central_2_Graph, "Graph", South + graphLine = hwEventCounters5 + graphLine = hwEventCounters6 + graphLine = vvtCamCounter + graphLine = mapVvt_MAP_AT_SPECIAL_POINT + liveGraph = trigger_central_3_Graph, "Graph", South + graphLine = mapVvt_MAP_AT_DIFF + graphLine = mapVvt_MAP_AT_CYCLE_COUNT + graphLine = mapVvt_map_peak + graphLine = currentEngineDecodedPhase + liveGraph = trigger_central_4_Graph, "Graph", South + graphLine = triggerToothAngleError + graphLine = triggerIgnoredToothCount + graphLine = mapCamPrevToothAngle + + +dialog = trigger_state0Dialog, "trigger_state0" + liveGraph = trigger_state0_1_Graph, "Graph", South + graphLine = crankSynchronizationCounter0 + graphLine = vvtSyncGapRatio0 + graphLine = vvtToothDurations00 + graphLine = vvtCurrentPosition0 + liveGraph = trigger_state0_2_Graph, "Graph", South + graphLine = vvtToothPosition10 + graphLine = vvtToothPosition20 + graphLine = vvtToothPosition30 + graphLine = vvtToothPosition40 + liveGraph = trigger_state0_3_Graph, "Graph", South + graphLine = triggerSyncGapRatio0 + graphLine = triggerStateIndex0 + graphLine = vvtStateIndex0 + +indicatorPanel = trigger_state_primaryIndicatorPanel, 2 + indicator = {m_hasSynchronizedPhase}, "m_hasSynchronizedPhase No", "m_hasSynchronizedPhase Yes" + +dialog = trigger_state_primaryDialog, "trigger_state_primary" + panel = trigger_state_primaryIndicatorPanel + liveGraph = trigger_state_primary_1_Graph, "Graph", South + graphLine = camResyncCounter + + +dialog = wall_fuel_stateDialog, "wall_fuel_state" + liveGraph = wall_fuel_state_1_Graph, "Graph", South + graphLine = wallFuelCorrection + graphLine = wallFuel + +indicatorPanel = idle_stateIndicatorPanel, 2 + indicator = {mightResetPid}, "mightResetPid No", "mightResetPid Yes" + indicator = {shouldResetPid}, "shouldResetPid No", "shouldResetPid Yes" + indicator = {wasResetPid}, "wasResetPid No", "wasResetPid Yes" + indicator = {mustResetPid}, "mustResetPid No", "mustResetPid Yes" + indicator = {isCranking}, "isCranking No", "isCranking Yes" + indicator = {isIacTableForCoasting}, "isIacTableForCoasting No", "isIacTableForCoasting Yes" + indicator = {notIdling}, "notIdling No", "notIdling Yes" + indicator = {needReset}, "needReset No", "needReset Yes" + indicator = {isInDeadZone}, "isInDeadZone No", "isInDeadZone Yes" + indicator = {isBlipping}, "isBlipping No", "isBlipping Yes" + indicator = {useClosedLoop}, "useClosedLoop No", "useClosedLoop Yes" + indicator = {badTps}, "badTps No", "badTps Yes" + indicator = {looksLikeRunning}, "looksLikeRunning No", "looksLikeRunning Yes" + indicator = {looksLikeCoasting}, "looksLikeCoasting No", "looksLikeCoasting Yes" + indicator = {looksLikeCrankToIdle}, "looksLikeCrankToIdle No", "looksLikeCrankToIdle Yes" + indicator = {isIdleCoasting}, "isIdleCoasting No", "isIdleCoasting Yes" + indicator = {isIdleClosedLoop}, "isIdleClosedLoop No", "isIdleClosedLoop Yes" + +dialog = idle_stateDialog, "idle_state" + panel = idle_stateIndicatorPanel + liveGraph = idle_state_1_Graph, "Graph", South + graphLine = idleState + graphLine = currentIdlePosition + graphLine = baseIdlePosition + graphLine = idleClosedLoop + liveGraph = idle_state_2_Graph, "Graph", South + graphLine = iacByTpsTaper + graphLine = throttlePedalUpState + graphLine = idleTarget + graphLine = targetRpmByClt + liveGraph = idle_state_3_Graph, "Graph", South + graphLine = targetRpmAc + graphLine = iacByRpmTaper + graphLine = luaAdd + +indicatorPanel = electronic_throttle0IndicatorPanel, 2 + indicator = {etbRevLimitActive0}, "etbRevLimitActive No", "etbRevLimitActive Yes" + indicator = {jamDetected0}, "jamDetected No", "jamDetected Yes" + +dialog = electronic_throttle0Dialog, "electronic_throttle0" + panel = electronic_throttle0IndicatorPanel + liveGraph = electronic_throttle0_1_Graph, "Graph", South + graphLine = idlePosition0 + graphLine = trim0 + graphLine = luaAdjustment0 + graphLine = m_wastegatePosition0 + liveGraph = electronic_throttle0_2_Graph, "Graph", South + graphLine = etbFeedForward0 + graphLine = etbIntegralError0 + graphLine = etbCurrentTarget0 + graphLine = etbCurrentAdjustedTarget0 + liveGraph = electronic_throttle0_3_Graph, "Graph", South + graphLine = etbDutyRateOfChange0 + graphLine = etbDutyAverage0 + graphLine = etbTpsErrorCounter0 + graphLine = etbPpsErrorCounter0 + liveGraph = electronic_throttle0_4_Graph, "Graph", South + graphLine = etbErrorCode0 + graphLine = tcEtbDrop0 + graphLine = jamTimer0 + + +dialog = wideband_state0Dialog, "wideband_state0" + liveGraph = wideband_state0_1_Graph, "Graph", South + graphLine = faultCode0 + graphLine = heaterDuty0 + graphLine = pumpDuty0 + graphLine = tempC0 + liveGraph = wideband_state0_2_Graph, "Graph", South + graphLine = nernstVoltage0 + graphLine = esr0 + +indicatorPanel = dc_motorsIndicatorPanel, 2 + indicator = {isEnabled0}, "isEnabled0 No", "isEnabled0 Yes" + +dialog = dc_motorsDialog, "dc_motors" + panel = dc_motorsIndicatorPanel + liveGraph = dc_motors_1_Graph, "Graph", South + graphLine = dcOutput0 + graphLine = isEnabled0_int + + +dialog = sent_stateDialog, "sent_state" + liveGraph = sent_state_1_Graph, "Graph", South + graphLine = value0 + graphLine = value1 + graphLine = errorRate + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + +indicatorPanel = lambda_monitorIndicatorPanel, 2 + indicator = {lambdaCurrentlyGood}, "lambdaCurrentlyGood No", "lambdaCurrentlyGood Yes" + indicator = {lambdaMonitorCut}, "lambdaMonitorCut No", "lambdaMonitorCut Yes" + +dialog = lambda_monitorDialog, "lambda_monitor" + panel = lambda_monitorIndicatorPanel + liveGraph = lambda_monitor_1_Graph, "Graph", South + graphLine = lambdaTimeSinceGood + + + + dialog = scriptTable1TblSettings, "", yAxis + field = "Name", scriptTableName1 + panel = scriptTable1Tbl + + dialog = scriptTable2TblSettings, "", yAxis + field = "Name", scriptTableName2 + panel = scriptTable2Tbl + + dialog = scriptTable3TblSettings, "", yAxis + field = "Name", scriptTableName3 + panel = scriptTable3Tbl + + dialog = scriptTable4TblSettings, "", yAxis + field = "Name", scriptTableName4 + panel = scriptTable4Tbl + + dialog = scriptCurve1Settings, "", yAxis + field = "Name", scriptCurveName1 + panel = scriptCurve1 + + dialog = scriptCurve2Settings, "", yAxis + field = "Name", scriptCurveName2 + panel = scriptCurve2 + + dialog = scriptCurve3Settings, "", yAxis + field = "Name", scriptCurveName3 + panel = scriptCurve3 + + dialog = scriptCurve4Settings, "", yAxis + field = "Name", scriptCurveName4 + panel = scriptCurve4 + + dialog = scriptCurve5Settings, "", yAxis + field = "Name", scriptCurveName5 + panel = scriptCurve5 + + dialog = scriptCurve6Settings, "", yAxis + field = "Name", scriptCurveName6 + panel = scriptCurve6 + + dialog = tChargeRpmTpsSettings, "RPM+TPS mode" + field = "We use these coefficients to approximate air/fuel charge" + field = "temperature based on CLT and IAT, depending on RPM and TPM" + field = "Low RPM/Low TPS", tChargeMinRpmMinTps + field = "Low RPM/High TPS", tChargeMinRpmMaxTps + field = "High RPM/Low TPS", tChargeMaxRpmMinTps + field = "High RPM/High TPS", tChargeMaxRpmMaxTps + + dialog = tChargeGeneralSettings, "" + field = "Mode", tChargeMode + field = "#These two parameters limit the estimate's rate of change" + field = "Increase rate limit", tChargeAirIncrLimit + field = "Decrease rate limit", tChargeAirDecrLimit + field = "" + + dialog = tChargeAirInterpSettings, "Airflow interpolation mode" + field = "Low flow coefficient", tChargeAirCoefMin + field = "High flow coefficient", tChargeAirCoefMax + field = "Max air flow", tChargeAirFlowMax + + dialog = tChargeSettings, "Charge temperature estimation" + panel = tChargeGeneralSettings + panel = tChargeRpmTpsSettings, { tChargeMode == 0} + panel = tChargeAirInterpSettings, { tChargeMode == 1} + panel = tchargeCurve, { tChargeMode == 2 } + + dialog = baseInjection, "Injection" + field = "Enabled", isInjectionEnabled + field = "Mode", injectionMode, {isInjectionEnabled == 1} + field = "#Batch injection with individual wiring" + field = "Alpha-N uses IAT density correction", alphaNUseIat, { fuelAlgorithm == 2 } + field = "Override VE table load axis", veOverrideMode, { isInjectionEnabled } + field = "Override AFR table load axis", afrOverrideMode, { isInjectionEnabled } + field = "Injection phase control mode", injectionTimingMode, { isInjectionEnabled } + + dialog = ignitionOutputs, "Ignition Outputs" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Ignition Output Mode", ignitionPinMode, {isIgnitionEnabled == 1} + field = "Ignition Output 1", ignitionPins1, {isIgnitionEnabled == 1} + ; see rusefi_config.txt comment next to 'ignitionPin2logic' which says + ; this section is auto-generated by FiringOrderTSLogic.java + field = "Ignition Output 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 29)))} + field = "Ignition Output 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 27) || (firingOrder == 28)))} + field = "Ignition Output 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 25) || (firingOrder == 26) || (firingOrder == 27) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 23) || (firingOrder == 26) || (firingOrder == 30) || (firingOrder == 31) || (firingOrder == 32)))} + field = "Ignition Output 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13) || (firingOrder == 22) || (firingOrder == 23) || (firingOrder == 29) || (firingOrder == 30)))} + field = "Ignition Output 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20) || (firingOrder == 22) || (firingOrder == 28)))} + field = "Ignition Output 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19) || (firingOrder == 26) || (firingOrder == 28) || (firingOrder == 32)))} + field = "Ignition Output 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15) || (firingOrder == 22)))} + field = "Ignition Output 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))} + field = "Ignition Output 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))} + field = "Ignition Output 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18) || (firingOrder == 22)))} + + + dialog = ignitionBasic, "" + field = "Enabled", isIgnitionEnabled + field = "Mode", ignitionMode, {isIgnitionEnabled} + field = "Maximum timing advance", maximumIgnitionTiming, {isIgnitionEnabled} + field = "Minimum timing advance", minimumIgnitionTiming, {isIgnitionEnabled} + field = "Individually wired Wasted Spark", twoWireBatchIgnition, {isIgnitionEnabled == 1 && ignitionMode == 2 } + field = "Override ignition table load axis", ignOverrideMode, {isIgnitionEnabled} + field = "#Use fixed timing while validating with a timing gun" + field = "Timing Mode", timingMode, {isIgnitionEnabled} + field = "Fixed Timing", fixedTiming, {isIgnitionEnabled == 1 && timingMode == 1} + + dialog = ignitionSettings, "", xAxis + panel = ignitionBasic + panel = ignitionOutputs, { uiMode == 0 || uiMode == 1 } + + dialog = baseEngineConfig, "Engine Configuration" + field = "Number of cylinders", cylindersCount + field = "Displacement", displacement + field = "Firing order", firingOrder + field = "Vehicle weight", vehicleWeight + + dialog = engineMetadata, "Engine Metadata" + field = "#These metadata are used by rusEFI Online" + field = "Engine Make", engineMake + field = "Manufacturer Engine Code", engineCode + field = "Vehicle Name", vehicleName + field = "Compression Ratio", compressionRatio + field = "Forced Induction?", isForcedInduction + + dialog = trigger_primary, "Primary Trigger" + topicHelp = "triggerHelp" + ; see also in firmware '[doesTriggerImplyOperationMode]' tag + field = "What kind of engine", twoStroke + field = "" + field = "Trigger type", trigger_type + field = "Total tooth count", trigger_customTotalToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Missing/skipped tooth count", trigger_customSkippedToothCount, {trigger_type == 0}, {trigger_type == 0} + field = "Skipped wheel location", skippedWheelOnCam, 1, { twoStroke == 0 && (trigger_type == 0 || trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) } + field = "" + field = "!Reminder that 4-stroke cycle is 720 degrees" + field = "!For well-known trigger types use '0' trigger angle offset" + field = "Trigger Angle Advance", globalTriggerAngleOffset + + field = "" + field = "" + + field = "#Cam is primary if you have cam sensor as part of trigger shape" + ; cam if + ; two-stroke, or + ; not crank trigger and ((vague trigger and cam choice) or not vague trigger) + field = "Cam Sensor (Primary channel)", triggerInputPins1, 1, {twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) ) } + field = "Crank Sensor (Primary channel)", triggerInputPins1, 1, { !(twoStroke == 1 || ( !(trigger_type == 2 || trigger_type == 5 || trigger_type == 10 || trigger_type == 12 || trigger_type == 20 || trigger_type == 21 || trigger_type == 26 || trigger_type == 27 || trigger_type == 33 || trigger_type == 38 || trigger_type == 39 || trigger_type == 44 || trigger_type == 45 || trigger_type == 46 || trigger_type == 53 || trigger_type == 55 || trigger_type == 57 || trigger_type == 58 || trigger_type == 61 || trigger_type == 62 || trigger_type == 68 || trigger_type == 70 || trigger_type == 71 || trigger_type == 72 || trigger_type == 74 || trigger_type == 75 || trigger_type == 76 || trigger_type == 77) && ( ( (trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) && skippedWheelOnCam) || !(trigger_type == 8 || trigger_type == 9 || trigger_type == 11 || trigger_type == 17 || trigger_type == 18 || trigger_type == 23 || trigger_type == 48 || trigger_type == 69 || trigger_type == 73) ) )) } + field = "Primary Edge", invertPrimaryTriggerSignal + field = "Secondary channel", triggerInputPins2, { triggerInputPins2 != 0 || (triggerInputPins1 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) ) } + field = "Secondary Edge", invertSecondaryTriggerSignal, {triggerInputPins2 != 0 && (trigger_type == 1 || trigger_type == 3 || trigger_type == 15 || trigger_type == 16 || trigger_type == 19 || trigger_type == 25 || trigger_type == 31 || trigger_type == 35 || trigger_type == 36 || trigger_type == 37 || trigger_type == 40 || trigger_type == 49 || trigger_type == 50 || trigger_type == 53 || trigger_type == 54 || trigger_type == 63 || trigger_type == 64) } + + dialog = trigger_cams, "Cam Inputs" + field = "!https://rusefi.com/s/vvt" + ; todo: code generator to hard-code all triggers not requiring VVT? + ; todo: https://github.com/rusefi/rusefi/issues/2077 + + field = "Cam mode (intake)", vvtMode1, {trigger_type != 3} + field = "2JZ Position", camDecoder2jzPosition, 1, {vvtMode1 == 2} + field = "2JZ Precision", camDecoder2jzPrecision, 1, {vvtMode1 == 2} + field = "Cam mode (exhaust)", vvtMode2, {trigger_type != 3} + field = "" + field = "Cam sensor bank 1 intake", camInputs1, { camInputs1 != 0 || (vvtMode1 != 0 ) } + field = "Cam sensor bank 1 exhaust", camInputs2, { camInputs2 != 0 || (vvtMode2 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 intake", camInputs3, { camInputs3 != 0 || (vvtMode1 != 0 && camInputs1 != 0 ) } + field = "Cam sensor bank 2 exhaust", camInputs4, { camInputs4 != 0 || (vvtMode2 != 0 && camInputs2 != 0 ) } + field = "Cam Edge Select", invertCamVVTSignal, { camInputs1 != 0 } + field = "" + field = "#Set offset so VVT indicates 0 degrees in default position" + field = "VVT offset bank 1 intake", vvtOffsets1, { camInputs1 != 0 } + field = "VVT offset bank 1 exhaust", vvtOffsets2, { camInputs2 != 0 } + field = "VVT offset bank 2 intake", vvtOffsets3, { camInputs3 != 0 } + field = "VVT offset bank 2 exhaust", vvtOffsets4, { camInputs4 != 0 } + field = "" + field = "Cam for engine sync resolution", engineSyncCam, { vvtMode1 != 0 || vvtMode2 != 0 } + + dialog = triggerConfiguration_gap, "Trigger Gap Override" + field = "!This is a pretty advanced feature for when you are debugging trigger synchronization" + field = "Override well known trigger gaps", overrideTriggerGaps + field = gapTrackingLengthOverride, gapTrackingLengthOverride, { overrideTriggerGaps == 1 } + field = "First gap from", triggerGapOverrideFrom1, { overrideTriggerGaps == 1 } + field = "First gap to", triggerGapOverrideTo1, { overrideTriggerGaps == 1 } + field = "Second gap from", triggerGapOverrideFrom2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Second gap to", triggerGapOverrideTo2, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 2 } + field = "Gap #3 from", triggerGapOverrideFrom3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #3 to", triggerGapOverrideTo3, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 3 } + field = "Gap #4 from", triggerGapOverrideFrom4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #4 to", triggerGapOverrideTo4, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 4 } + field = "Gap #5 from", triggerGapOverrideFrom5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Gap #5 to", triggerGapOverrideTo5, { overrideTriggerGaps == 1 && gapTrackingLengthOverride >= 5 } + field = "Override well known VVT gaps", overrideVvtTriggerGaps + field = gapVvtTrackingLengthOverride, gapVvtTrackingLengthOverride, { overrideVvtTriggerGaps == 1 } + field = "First VVT gap from", triggerVVTGapOverrideFrom1 + field = "First VVT gap to", triggerVVTGapOverrideTo1 + field = "Second VVT gap from", triggerVVTGapOverrideFrom2 + field = "Second VVT gap to", triggerVVTGapOverrideTo2 + field = "VVT gap #3 from", triggerVVTGapOverrideFrom3 + field = "VVT gap #3 to", triggerVVTGapOverrideTo3 + field = "VVT gap #4 from", triggerVVTGapOverrideFrom4 + field = "VVT gap #4 to", triggerVVTGapOverrideTo4 + + dialog = trigger_advanced, "Advanced Trigger" + field = "Require cam/VVT sync for ignition", isPhaseSyncRequiredForIgnition + field = "Maximum cam/VVT sync RPM", maxCamPhaseResolveRpm + field = "MAP readout angle", mapCamDetectionAnglePosition, 1, { vvtMode1 == 13 } + field = "Print verbose VVT sync details to console",verboseVVTDecoding + field = "Print verbose trigger sync to console", verboseTriggerSynchDetails + field = "Display logic signals", displayLogicLevelsInEngineSniffer + field = "Do not print messages in case of sync error", silentTriggerError + field = "Focus on inputs in engine sniffer", engineSnifferFocusOnInputs + field = "Enable noise filtering", useNoiselessTriggerDecoder, {trigger_type == 8 || trigger_type == 9} + panel = triggerConfiguration_gap + + dialog = triggerConfiguration, "", xAxis + panel = trigger_primary, {1}, { consumeObdSensors == 0 } + panel = trigger_cams, {1}, { consumeObdSensors == 0 } + +; Engine->Injection Settings + dialog = injChars, "Injector Settings", yAxis + field = "Injector flow", injector_flow, {isInjectionEnabled == 1} + field = "Injector flow units", injectorFlowAsMassFlow, {isInjectionEnabled == 1} + field = "Fuel rail pressure sensor", injectorPressureType, { isInjectionEnabled && (highPressureFuel_hwChannel || lowPressureFuel_hwChannel) } + field = "Injector flow compensation mode", injectorCompensationMode, { isInjectionEnabled } + field = "Injector reference pressure", fuelReferencePressure, { isInjectionEnabled && injectorCompensationMode != 0 } + + dialog = fuelParams, "Fuel characteristics", yAxis + field = "Stoichiometric ratio", stoichRatioPrimary, {isInjectionEnabled == 1} + field = "E100 stoichiometric ratio", stoichRatioSecondary, {isInjectionEnabled == 1 && flexSensorPin != 0 } + + dialog = injectorOutputSettings, "Injector Outputs", yAxis + field = "Use only first half of outputs for batch mode" + field = "# wire each output to the corresponding cylinder number" + field = "# rusEFI handles firing order" + field = "Injection Output 1", injectionPins1, {isInjectionEnabled == 1} + field = "Injection Output 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Injection Output 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Injection Output 4", injectionPins4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Injection Output 5 ", injectionPins5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Injection Output 6 ", injectionPins6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Injection Output 7 ", injectionPins7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Injection Output 8 ", injectionPins8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Injection Output 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Injection Output 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Injection Output 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Injection Output 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = cylinderBankSelect, "Cylinder Banks", yAxis + field = "Cylinder 1", cylinderBankSelect1, {isInjectionEnabled == 1} + field = "Cylinder 2", cylinderBankSelect2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1} + field = "Cylinder 3", cylinderBankSelect3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2} + field = "Cylinder 4", cylinderBankSelect4, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 3} + field = "Cylinder 5 ", cylinderBankSelect5, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 4} + field = "Cylinder 6 ", cylinderBankSelect6, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 5} + field = "Cylinder 7 ", cylinderBankSelect7, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 6} + field = "Cylinder 8 ", cylinderBankSelect8, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 7} + field = "Cylinder 9 ", cylinderBankSelect9, {isInjectionEnabled == 1 && cylindersCount > 8} + field = "Cylinder 10 ", cylinderBankSelect10, {isInjectionEnabled == 1 && cylindersCount > 9} + field = "Cylinder 11 ", cylinderBankSelect11, {isInjectionEnabled == 1 && cylindersCount > 10} + field = "Cylinder 12 ", cylinderBankSelect12, {isInjectionEnabled == 1 && cylindersCount > 11} + + dialog = injectorNonlinearPolynomial, "Polynomial Adder", yAxis + field = "Add nonlinearity below pulse", applyNonlinearBelowPulse + field = "constant", injectorCorrectionPolynomial1 + field = "x^1", injectorCorrectionPolynomial2 + field = "x^2", injectorCorrectionPolynomial3 + field = "x^3", injectorCorrectionPolynomial4 + field = "x^4", injectorCorrectionPolynomial5 + field = "x^5", injectorCorrectionPolynomial6 + field = "x^6", injectorCorrectionPolynomial7 + field = "x^7", injectorCorrectionPolynomial8 + + dialog = injectorNonlinearFord, "Ford-model Small Pulse Correction", yAxis + field = "Small pulse slope (ALOSL)", fordInjectorSmallPulseSlope + field = "Set this to 'mass flow'", injectorFlowAsMassFlow + field = "Large pulse slope (AHISL)", injector_flow + field = "Small pulse breakpoint (FUEL_BKPT)", fordInjectorSmallPulseBreakPoint + + dialog = injectorNonlinear + field = "Small pulse correction mode", injectorNonlinearMode + panel = injectorNonlinearPolynomial, {1}, { injectorNonlinearMode == 1 } + panel = injectorNonlinearFord, {1}, { injectorNonlinearMode == 2 } + + dialog = testLuaOut, "Lua Out Test" + commandButton = "Lua Out #1", cmd_test_lua1 + commandButton = "Lua Out #2", cmd_test_lua2 + commandButton = "Lua Out #3", cmd_test_lua3 + commandButton = "Lua Out #4", cmd_test_lua4 + commandButton = "Lua Out #5", cmd_test_lua5 + commandButton = "Lua Out #6", cmd_test_lua6 + commandButton = "Lua Out #7", cmd_test_lua7 + commandButton = "Lua Out #8", cmd_test_lua8 + commandButton = "Abort test", cmd_test_cancel + + dialog = testInjectors, "Injector Test" + commandButton = "Injector #1", cmd_test_inj1 + commandButton = "Injector #2", cmd_test_inj2, { cylindersCount >= 2 } + commandButton = "Injector #3", cmd_test_inj3, { cylindersCount >= 3 } + commandButton = "Injector #4", cmd_test_inj4, { cylindersCount >= 4 } + commandButton = "Injector #5", cmd_test_inj5, { cylindersCount >= 5 } + commandButton = "Injector #6", cmd_test_inj6, { cylindersCount >= 6 } + commandButton = "Injector #7", cmd_test_inj7, { cylindersCount >= 7 } + commandButton = "Injector #8", cmd_test_inj8, { cylindersCount >= 8 } + commandButton = "Injector #9", cmd_test_inj9, { cylindersCount >= 9 } + commandButton = "Injector #10", cmd_test_inj10, { cylindersCount >= 10 } + commandButton = "Injector #11", cmd_test_inj11, { cylindersCount >= 11 } + commandButton = "Injector #12", cmd_test_inj12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testSolenoids, "TCU Solenoid Test" + commandButton = "Solenoid #1", cmd_test_sol1 + commandButton = "Solenoid #2", cmd_test_sol2 + commandButton = "Solenoid #3", cmd_test_sol3 + commandButton = "Solenoid #4", cmd_test_sol4 + commandButton = "Solenoid #5", cmd_test_sol5 + commandButton = "Solenoid #6", cmd_test_sol6 + commandButton = "Abort test", cmd_test_cancel + + dialog = testOther + field = "Count", benchTestCount + field = "On Time", benchTestOnTime + field = "Off Time", benchTestOffTime + panel = testSolenoids + + dialog = injectionSettingsEast, "", yAxis + panel = testInjectors + field = "" + + dialog = injectionSettingsWest, "", yAxis + panel = injectorOutputSettings + field = "" + + dialog = injectionSettings, "", xAxis + panel = injectionSettingsWest + panel = injectionSettingsEast + + dialog = injectorConfig, "", yAxis + topicHelp = "fuelHelp" + panel = baseInjection + panel = injChars + panel = fuelParams + panel = injectorsDeadTime, {isInjectionEnabled} + + dialog = ignitionCylExtra, "Cylinder offsets" + field = "Offset angle for each cylinder if you have an odd fire" + field = "engine, like a v-twin or some V6/V10 engines" + field = "Odd Fire Engine", oddFireEngine + field = "#Positive numbers retard, negative numbers advance" + field = "Offset cyl 1", timing_offset_cylinder1 + field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1} + field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2} + field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3} + field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4} + field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5} + field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6} + field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7} + field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8} + field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9} + field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10} + field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11} + + dialog = stagedInjectionOutputs, "", yAxis + field = "Injection Stage 2 Output 1", injectionPinsStage21, {isInjectionEnabled && enableStagedInjection} + field = "Injection Stage 2 Output 2", injectionPinsStage22, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 1} + field = "Injection Stage 2 Output 3", injectionPinsStage23, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 2} + field = "Injection Stage 2 Output 4", injectionPinsStage24, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 3} + field = "Injection Stage 2 Output 5 ", injectionPinsStage25, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 4} + field = "Injection Stage 2 Output 6 ", injectionPinsStage26, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 5} + field = "Injection Stage 2 Output 7 ", injectionPinsStage27, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 6} + field = "Injection Stage 2 Output 8 ", injectionPinsStage28, {isInjectionEnabled && enableStagedInjection && injectionMode != 3 && cylindersCount > 7} + field = "Injection Stage 2 Output 9 ", injectionPinsStage29, {isInjectionEnabled && enableStagedInjection && cylindersCount > 8} + field = "Injection Stage 2 Output 10 ", injectionPinsStage210, {isInjectionEnabled && enableStagedInjection && cylindersCount > 9} + field = "Injection Stage 2 Output 11 ", injectionPinsStage211, {isInjectionEnabled && enableStagedInjection && cylindersCount > 10} + field = "Injection Stage 2 Output 12 ", injectionPinsStage212, {isInjectionEnabled && enableStagedInjection && cylindersCount > 11} + + dialog = stagedInjection, "", yAxis + field = "Enable", enableStagedInjection, {isInjectionEnabled} + field = "" + field = "Secondary injector flow", injectorSecondary_flow {isInjectionEnabled && enableStagedInjection} + field = "" + panel = injectorsSecondaryDeadTime, {isInjectionEnabled && enableStagedInjection} + + dialog = multisparkDwellParams, "Delay & Dwell" + field = "Spark duration", multisparkSparkDuration, {multisparkEnable} + field = "Subsequent spark dwell", multisparkDwell, {multisparkEnable} + + dialog = multisparkMain, "Configuration" + field = "Maximum engine speed", multisparkMaxRpm, {multisparkEnable} + field = "Fire sparks for this angle duration" multisparkMaxSparkingAngle, {multisparkEnable} + field = "Maximum extra spark count" multisparkMaxExtraSparkCount, {multisparkEnable} + + dialog = multisparkSettings, "Multispark" + field = "#WARNING! These settings have the potential to overheat ignition components" + field = "#and cause other nasty misbehavior. Use with care, at your own risk!" + field = "#Not recommended for use on distributor or wasted spark ignition systems." + field = "Enable multiple sparks", multisparkEnable + panel = multisparkMain + panel = multisparkDwellParams + + dialog = ignAdder1Cfg, "Ignition adder 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends1_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends1_yAxisOverride, {ignBlends1_blendParameter} + panel = ignAdder1Bias, {ignBlends1_blendParameter} + + dialog = ignAdder2Cfg, "Ignition adder 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends2_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends2_yAxisOverride, {ignBlends2_blendParameter} + panel = ignAdder2Bias, {ignBlends2_blendParameter} + + dialog = ignAdder3Cfg, "Ignition adder 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends3_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends3_yAxisOverride, {ignBlends3_blendParameter} + panel = ignAdder3Bias, {ignBlends3_blendParameter} + + dialog = ignAdder4Cfg, "Ignition adder 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the base ignition table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in 5.0 degrees of ignition timing added." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", ignBlends4_blendParameter + field = "Y axis override (set Zero for no override)", ignBlends4_yAxisOverride, {ignBlends4_blendParameter} + panel = ignAdder4Bias, {ignBlends4_blendParameter} + + dialog = veBlend1Cfg, "VE blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends1_blendParameter + field = "Y axis override (set Zero for no override)", veBlends1_yAxisOverride, {veBlends1_blendParameter} + panel = veBlend1Bias, {veBlends1_blendParameter} + + dialog = veBlend2Cfg, "VE blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends2_blendParameter + field = "Y axis override (set Zero for no override)", veBlends2_yAxisOverride, {veBlends2_blendParameter} + panel = veBlend2Bias, {veBlends2_blendParameter} + + dialog = veBlend3Cfg, "VE blend 3 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends3_blendParameter + field = "Y axis override (set Zero for no override)", veBlends3_yAxisOverride, {veBlends3_blendParameter} + panel = veBlend3Bias, {veBlends3_blendParameter} + + dialog = veBlend4Cfg, "VE blend 4 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the VE table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0% added to the VE. Note that this doesn't add 5% VE," + field = "instead, it adds 5% to the current VE value, multiplying VE by 1.05." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", veBlends4_blendParameter + field = "Y axis override (set Zero for no override)", veBlends4_yAxisOverride, {veBlends4_blendParameter} + panel = veBlend4Bias, {veBlends4_blendParameter} + + indicatorPanel = isBoostControlledPanel, 1 + indicator = {isBoostControlled}, "No Boost Control", "Boost Control Active" + + dialog = boostOpenBlend1Cfg, "Boost open loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends1_yAxisOverride, {boostOpenLoopBlends1_blendParameter} + panel = boostOpenLoopBlend1Bias, {boostOpenLoopBlends1_blendParameter} + + dialog = boostOpenBlend2Cfg, "Boost open loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the open loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost open loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + panel = isBoostControlledPanel + field = "Blend parameter", boostOpenLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostOpenLoopBlends2_yAxisOverride, {boostOpenLoopBlends2_blendParameter} + panel = boostOpenLoopBlend2Bias, {boostOpenLoopBlends2_blendParameter} + + dialog = boostClosedBlend1Cfg, "Boost closed loop blend 1 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends1_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends1_yAxisOverride, {boostClosedLoopBlends1_blendParameter} + panel = boostClosedLoopBlend1Bias, {boostClosedLoopBlends1_blendParameter} + + dialog = boostClosedBlend2Cfg, "Boost closed loop blend 2 config" + field = "#The bias table controls how much of the blend table" + field = "#is mixed in to the closed loop boost table. For example, a value of" + field = "#+10 in the table, with 50 as the current bias will result" + field = "#in +5.0 added to the boost closed loop %." + field = "#The X axis of the bias table is controlled by the selected blend" + field = "#parameter below." + field = "Blend parameter", boostClosedLoopBlends2_blendParameter + field = "Y axis override (set Zero for no override)", boostClosedLoopBlends2_yAxisOverride, {boostClosedLoopBlends2_blendParameter} + panel = boostClosedLoopBlend2Bias, {boostClosedLoopBlends2_blendParameter} + + dialog = dwellSettings, "", yAxis + panel = dwellCorrection + panel = dwellVoltageCorrection + + dialog = auxTempSensor1Sensor, "aux1 Thermistor Settings" + field = "Input channel", auxTempSensor1_adcChannel + field = "Pullup resistor", auxTempSensor1_bias_resistor, {auxTempSensor1_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor1_tempC_1, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor1_resistance_1, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor1_tempC_2, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor1_resistance_2, {auxTempSensor1_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor1_tempC_3, {auxTempSensor1_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor1_resistance_3, {auxTempSensor1_adcChannel != 0} + + dialog = auxTempSensor2Sensor, "aux2 Thermistor Settings" + field = "Input channel", auxTempSensor2_adcChannel + field = "Pullup resistor", auxTempSensor2_bias_resistor, {auxTempSensor2_adcChannel != 0} + + field = "#Here is three pairs of thermistor temperature and resistance." + field = "#Typical temperatures is -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", auxTempSensor2_tempC_1, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ LT", auxTempSensor2_resistance_1, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Middle temperature", auxTempSensor2_tempC_2, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ MT", auxTempSensor2_resistance_2, {auxTempSensor2_adcChannel != 0} + field = "" + field = "Highest temperature", auxTempSensor2_tempC_3, {auxTempSensor2_adcChannel != 0} + field = "Resistance @ HT", auxTempSensor2_resistance_3, {auxTempSensor2_adcChannel != 0} + + dialog = tpsSent1, "SENT TPS" + field = "Input #1", sentInputPins1 + field = "ETB type", sentEtbType, {sentInputPins1 != 0} + field = "Closed value", customSentTpsMin, {sentEtbType == 3 } + field = "Open value", customSentTpsMax, {sentEtbType == 3 } + + dialog = oilTempSensor, "Oil Temp Sensor Settings" + field = "Input channel", oilTempSensor_adcChannel + field = "Pullup resistor", oilTempSensor_bias_resistor, {oilTempSensor_adcChannel != 0} + + field = "Lowest temperature", oilTempSensor_tempC_1, {oilTempSensor_adcChannel != 0} + field = "Resistance @ LT", oilTempSensor_resistance_1, {oilTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", oilTempSensor_tempC_2, {oilTempSensor_adcChannel != 0} + field = "Resistance @ MT", oilTempSensor_resistance_2, {oilTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", oilTempSensor_tempC_3, {oilTempSensor_adcChannel != 0} + field = "Resistance @ HT", oilTempSensor_resistance_3, {oilTempSensor_adcChannel != 0} + + dialog = fuelTempSensor, "Fuel Temp Sensor Settings" + field = "Input channel", fuelTempSensor_adcChannel + field = "Pullup resistor", fuelTempSensor_bias_resistor, {fuelTempSensor_adcChannel != 0} + + field = "Lowest temperature", fuelTempSensor_tempC_1, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ LT", fuelTempSensor_resistance_1, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", fuelTempSensor_tempC_2, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ MT", fuelTempSensor_resistance_2, {fuelTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", fuelTempSensor_tempC_3, {fuelTempSensor_adcChannel != 0} + field = "Resistance @ HT", fuelTempSensor_resistance_3, {fuelTempSensor_adcChannel != 0} + + dialog = ambientTempSensor, "Ambient Temp Sensor Settings" + field = "!Put this sensor before any turbocharger/supercharger" + field = "!near the air filter." + field = "Input channel", ambientTempSensor_adcChannel + field = "Pullup resistor", ambientTempSensor_bias_resistor, {ambientTempSensor_adcChannel != 0} + + field = "Lowest temperature", ambientTempSensor_tempC_1, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ LT", ambientTempSensor_resistance_1, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Middle temperature", ambientTempSensor_tempC_2, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ MT", ambientTempSensor_resistance_2, {ambientTempSensor_adcChannel != 0} + field = "" + field = "Highest temperature", ambientTempSensor_tempC_3, {ambientTempSensor_adcChannel != 0} + field = "Resistance @ HT", ambientTempSensor_resistance_3, {ambientTempSensor_adcChannel != 0} + + dialog = compressorDischargeTemperature, "Compressor Discharge Temp Settings" + field = "!Put this sensor after the turbocharger/supercharger" + field = "!but before the intercooler." + field = "Input channel", compressorDischargeTemperature_adcChannel + field = "Pullup resistor", compressorDischargeTemperature_bias_resistor, {compressorDischargeTemperature_adcChannel != 0} + + field = "Lowest temperature", compressorDischargeTemperature_tempC_1, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ LT", compressorDischargeTemperature_resistance_1, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Middle temperature", compressorDischargeTemperature_tempC_2, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ MT", compressorDischargeTemperature_resistance_2, {compressorDischargeTemperature_adcChannel != 0} + field = "" + field = "Highest temperature", compressorDischargeTemperature_tempC_3, {compressorDischargeTemperature_adcChannel != 0} + field = "Resistance @ HT", compressorDischargeTemperature_resistance_3, {compressorDischargeTemperature_adcChannel != 0} + + dialog = tpsNum1, "Throttle Body #1" + field = "Primary sensor", tps1_1AdcChannel + field = "Primary min", tpsMin, {tps1_1AdcChannel != 0} + field = "Primary max", tpsMax, {tps1_1AdcChannel != 0} + field = "Secondary sensor", tps1_2AdcChannel, {tps1_1AdcChannel != 0} + field = "Secondary min", tps1SecondaryMin, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + field = "Secondary max", tps1SecondaryMax, {tps1_2AdcChannel != 0 && tps1_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsNum2, "Throttle Body #2" + field = "Primary sensor", tps2_1AdcChannel + field = "Primary min", tps2Min, {tps2_1AdcChannel != 0} + field = "Primary max", tps2Max, {tps2_1AdcChannel != 0} + field = "Secondary sensor", tps2_2AdcChannel, {tps2_1AdcChannel != 0} + field = "Secondary min", tps2SecondaryMin, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + field = "Secondary max", tps2SecondaryMax, {tps2_2AdcChannel != 0 && tps2_1AdcChannel != 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + + dialog = tpsLimits, "TPS Limits" + field = "TPS minimum valid value", tpsErrorDetectionTooLow, {tps1_1AdcChannel != 0} + field = "TPS maximum valid value", tpsErrorDetectionTooHigh, {tps1_1AdcChannel != 0} + + dialog = tpsSensorLeft + panel = tpsLimits + panel = tpsNum1 + panel = tpsNum2 + + dialog = pedalSensorLeft, "Accelerator pedal" + field = "Accelerator position sensor", throttlePedalPositionAdcChannel + field = "Up voltage", throttlePedalUpVoltage + commandButton = "Grab Up", cmd_calibrate_pedal_up + field = "Down (WOT) voltage", throttlePedalWOTVoltage + commandButton = "Grab Down", cmd_calibrate_pedal_down + field = "Accelerator position 2nd sensor", throttlePedalPositionSecondAdcChannel + field = "Up voltage", throttlePedalSecondaryUpVoltage + field = "Down (WOT) voltage", throttlePedalSecondaryWOTVoltage + field = "Error Detection Threshold", etbSplit + + dialog = pedalGauges + gauge = pedalPositionGauge + gauge = rawPpsPrimaryGauge + gauge = rawPpsSecondaryGauge + + dialog = tpsGauges + gauge = rawTps1PrimaryGauge + gauge = rawTps1SecondaryGauge + gauge = rawTps2PrimaryGauge + gauge = rawTps2SecondaryGauge + + dialog = pedalSensor, "Accelerator pedal", border + panel = pedalSensorLeft, West + panel = pedalGauges, East + + dialog = tpsSensor, "", border + panel = tpsSensorLeft, West + panel = tpsGauges, East + + dialog = wastegatePosConfig, "Wastegate position sensor" + field = "Input", wastegatePositionSensor + field = "Min (fully closed, most boost)", wastegatePositionMin + field = "Max (fully open, least boost)", wastegatePositionMax + + dialog = idlePosConfig, "Idle position sensor" + field = "Input", idlePositionChannel + field = "Min (valve closed, low idle)", idlePositionMin + field = "Max (valve open, high idle)", idlePositionMax + + dialog = wastegateIdlePosLeft, "" + panel = wastegatePosConfig + panel = idlePosConfig + + dialog = wastegateIdlePosGauges, "" + gauge = rawWastegatePositionGauge, West + gauge = wastegatePosGauge, East + gauge = rawIdlePositionSensorGauge + gauge = idlePosSensGauge + + dialog = wastegateIdlePos, "", border + panel = wastegateIdlePosLeft, West + panel = wastegateIdlePosGauges, East + + dialog = tractionIgnitionSkipDialog, "Traction Ignition Skip" + field = useHardSkipInTraction, useHardSkipInTraction + panel = tractionIgnitionSkipTableTbl + + dialog = mc33Dialog, "Low-Z injector control PT2001" + field = "SPI Chip Select", mc33816_cs + field = "SPI Device", mc33816spiDevice + field = "MC33816 rstb", mc33816_rstb + field = "MC33816 flag0", mc33816_flag0 + field = "MC33816 Driven", mc33816_driven + + field = "Boost voltage", mc33_hvolt + field = "Boost current target", mc33_i_boost + field = "Min boost time", mc33_t_min_boost + field = "Max boost time (timeout)", mc33_t_max_boost + + field = "Peak phase current target", mc33_i_peak + field = "Peak phase duration", mc33_t_peak_tot + field = "Peak phase loop off time", mc33_t_peak_off + field = "Peak -> Hold Bypass Time", mc33_t_bypass + + field = "Hold current target", mc33_i_hold + field = "Hold phase loop off time", mc33_t_hold_off + field = "Maximum injection duration", mc33_t_hold_tot + +; Sensor Inputs + dialog = otherSensorInputs, "Other Sensor Inputs" + field = "Clutch Down", clutchDownPin + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode + + field = "Clutch Up", clutchUpPin + field = "Clutch Up inverted", clutchUpPinInverted + field = "Clutch Up mode", clutchUpPinMode + field = "Throttle Up switch", throttlePedalUpPin + field = "Brake Pedal", brakePedalPin + field = "Brake Pedal Mode", brakePedalPinMode + field = "Flex fuel sensor", flexSensorPin + field = flexSensorInverted, flexSensorInverted + field = "Turbo Speed Sensor", turboSpeedSensorInputPin + field = "Turbo Speed Multiplier", turboSpeedSensorMultiplier + field = "Throttle inlet pressure sensor", throttleInletPressureChannel + field = "Compressor discharge pressure sensor", compressorDischargePressureChannel + + dialog = fuelLevelDialog, "Fuel Level Sensor" + field = "Input channel", fuelLevelSensor + panel = fuelLevelCurve + +; +; allXXX sections allows a quick overview of used I/O in order to address conflicts mostly, not really to +; configure the features. +; + dialog = allPinsSensors, "Sensors" + field = "Throttle pedal Position Channel", throttlePedalPositionAdcChannel + field = "Throttle pedal Position #2", throttlePedalPositionSecondAdcChannel + field = "Primary input channel", triggerInputPins1 + field = "Secondary channel", triggerInputPins2 + field = "Cam Sync/VVT input", camInputs1 + field = "CLT ADC input", clt_adcChannel + field = "IAT ADC input", iat_adcChannel + field = "vBatt ADC input", vbattAdcChannel + field = "TPS1 ADC input", tps1_1AdcChannel + field = "TPS2 ADC input", tps2_1AdcChannel + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + field = "AFR ADC input", afr_hwChannel + field = "AFR 2 ADC input", afr_hwChannel2 + field = "Baro ADC input", baroSensor_hwChannel + field = "MAP ADC input", map_sensor_hwChannel + field = "Fuel Level input", fuelLevelSensor + field = "Vehicle Speed input", vehicleSpeedSensorInputPin + field = "Clutch Down input", clutchDownPin + field = "Clutch Up input", clutchUpPin + field = "Brake pedal input", brakePedalPin + field = "A/C Switch", acSwitch + field = "Aux Temperature #1", auxTempSensor1_adcChannel + field = "Aux Temperature #2", auxTempSensor2_adcChannel + field = "Aux Fast Analog", auxFastSensor1_adcChannel + + dialog = allTriggerDebug, "Trigger Debug" + field = "trigger 1 debug", triggerInputDebugPins1 + field = "trigger 2 debug", triggerInputDebugPins2 + field = "cam 1 debug", camInputsDebug1 + field = "cam 2 debug", camInputsDebug2 + field = "cam 3 debug", camInputsDebug3 + field = "cam 4 debug", camInputsDebug4 + + dialog = allPinsMC33, "MC33816" + field = "Chip Select", mc33816_cs + field = rstb, mc33816_rstb + field = flag0, mc33816_flag0 + field = mc33816_driven, mc33816_driven + field = mc33816spiDevice, mc33816spiDevice + field = hpfpValvePin, hpfpValvePin + + dialog = allPins1_1 + field = "trigger stimulator output #1", triggerSimulatorPins1 + field = "trigger stimulator output #2", triggerSimulatorPins2 + field = "tle6240_cs", tle6240_cs + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "tle6240 SPI", tle6240spiDevice + + dialog = allPins1_2 + field = "Tachometer output", tachOutputPin + field = "Narrowband O2 heater output", o2heaterPin + field = "Idle Solenoid Primary output", idle_solenoidPin + field = "Idle Solenoid Secondary output",secondSolenoidPin + field = "Idle Stepper Dir", idle_stepperDirectionPin + field = "Idle Stepper Step", idle_stepperStepPin + field = "Idle Stepper Enable", stepperEnablePin + field = "Fuel Pump output", fuelPumpPin + field = "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 = "SPI4 MOSI", spi4mosiPin, {is_enabled_spi_4 == 1} + field = "SPI4 MISO", spi4misoPin, {is_enabled_spi_4 == 1} + field = "SPI4 SCK", spi4sckPin, {is_enabled_spi_4 == 1} + field = "SPI5 MOSI", spi5mosiPin, {is_enabled_spi_5 == 1} + field = "SPI5 MISO", spi5misoPin, {is_enabled_spi_5 == 1} + field = "SPI5 SCK", spi5sckPin, {is_enabled_spi_5 == 1} + field = "SPI6 MOSI", spi6mosiPin, {is_enabled_spi_6 == 1} + field = "SPI6 MISO", spi6misoPin, {is_enabled_spi_6 == 1} + field = "SPI6 SCK", spi6sckPin, {is_enabled_spi_6 == 1} + field = "hip9011CsPin", hip9011CsPin + field = "Saab CDM knock", cdmInputPin + field = "DRV8860 CS", drv8860_cs + field = "DRV8860 CS Mode", drv8860_csPinMode + field = "DRV8860 MISO pin", drv8860_miso + field = "DRV8860 SPI", drv8860spiDevice + + dialog = allPins3_1 + panel = allPinsSensors + + dialog = allPins3_2 + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "Aux Valve #1", auxValves1 + field = "Aux Valve #2", auxValves2 + field = "TLE8888 Chip Select", tle8888_cs + field = "TLE 8888 spi", tle8888spiDevice + field = "L9779 Chip Select", l9779_cs + field = "AUX Serial TX", auxSerialTxPin + field = "AUX Serial RX", auxSerialRxPin + field = "Start/Stop Button", startStopButtonPin + field = "Upshift Pin", tcuUpshiftButtonPin + field = "Downshift Pin", tcuDownshiftButtonPin + + dialog = allPins3_1_and_2, "All IO 3/3", xAxis + panel = allPins3_1 + panel = allPins3_2 + + dialog = allPins1_1_and_2, "", xAxis + panel = allPins1_1 + panel = allPins1_2 + + dialog = allPins1, "All IO 1/3", xAxis + panel = allPins1_1_and_2 + panel = allPins1_3 + + dialog = allPins2_1_and_2, "", xAxis + panel = allPins2_1 + panel = allPins2_2 + + dialog = allPins2, "All IO 2/3", xAxis + panel = allPins2_1_and_2 + panel = allPins2_3 + + dialog = clt_thermistor, "CLT sensor" + field = "Input channel", clt_adcChannel + field = "Pullup resistor", clt_bias_resistor, {clt_adcChannel != 0} + + settingSelector = "Common CLT Sensors" + settingOption = "GM CLT", clt_tempC_1=-40,clt_resistance_1=100000,clt_tempC_2=40,clt_resistance_2=1459,clt_tempC_3=130,clt_resistance_3=70,useLinearCltSensor=0 + settingOption = "Miata NA", clt_tempC_1=-20,clt_resistance_1=16150,clt_tempC_2=40,clt_resistance_2=1150,clt_tempC_3=80,clt_resistance_3=330,useLinearCltSensor=0 + settingOption = "Miata NB", clt_tempC_1=-10,clt_resistance_1=9000,clt_tempC_2=20,clt_resistance_2=2500,clt_tempC_3=80,clt_resistance_3=320,useLinearCltSensor=0 + settingOption = "Bosch Various", clt_tempC_1=0,clt_resistance_1=5896,clt_tempC_2=50,clt_resistance_2=834,clt_tempC_3=100,clt_resistance_3=187,useLinearCltSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", clt_tempC_1, {clt_adcChannel != 0} + field = "Resistance @ LT", clt_resistance_1, {clt_adcChannel != 0} + field = "" + field = "Middle temperature", clt_tempC_2, {clt_adcChannel != 0} + field = "Resistance @ MT", clt_resistance_2, {clt_adcChannel != 0} + field = "" + field = "Highest temperature", clt_tempC_3, {clt_adcChannel != 0} + field = "Resistance @ HT", clt_resistance_3, {clt_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearCltSensor, {clt_adcChannel != 0} + + dialog = cltGauges + gauge = CLTGauge + gauge = rawCltGauge + + dialog = cltSensor, "CLT Sensor", border + panel = clt_thermistor, West + panel = cltGauges, East + + dialog = iat_thermistor, "IAT sensor" + field = "Input channel", iat_adcChannel + field = "Pullup resistor", iat_bias_resistor, {iat_adcChannel != 0} + + settingSelector = "Common IAT Sensors", {iat_adcChannel != 0} + settingOption = "GM IAT", iat_tempC_1=8.9,iat_resistance_1=7000,iat_tempC_2=30.6,iat_resistance_2=1930,iat_tempC_3=63.3,iat_resistance_3=560,useLinearIatSensor=0 + settingOption = "Miata NA/NB", iat_tempC_1=-20,iat_resistance_1=16150,iat_tempC_2=40,iat_resistance_2=1150,iat_tempC_3=80,iat_resistance_3=330,useLinearIatSensor=0 + settingOption = "Miata MSM IAT2", iat_tempC_1=0,iat_resistance_1=112000,iat_tempC_2=40,iat_resistance_2=17000,iat_tempC_3=60,iat_resistance_3=8000,useLinearIatSensor=0 + settingOption = "Bosch Various", iat_tempC_1=-10,iat_resistance_1=9397,iat_tempC_2=30,iat_resistance_2=1707,iat_tempC_3=70,iat_resistance_3=436,useLinearIatSensor=0 + + field = "#Input three pairs of thermistor temperature and resistance." + field = "#Typical temperatures are -40 deg C, 0 deg C and 100 deg C" + field = "" + field = "Lowest temperature", iat_tempC_1, {iat_adcChannel != 0} + field = "Resistance @ LT", iat_resistance_1, {iat_adcChannel != 0} + field = "" + field = "Middle temperature", iat_tempC_2, {iat_adcChannel != 0} + field = "Resistance @ MT", iat_resistance_2, {iat_adcChannel != 0} + field = "" + field = "Highest temperature", iat_tempC_3, {iat_adcChannel != 0} + field = "Resistance @ HT", iat_resistance_3, {iat_adcChannel != 0} + field = "" + field = "Linear characteristic", useLinearIatSensor, {iat_adcChannel != 0} + + dialog = iatGauges + gauge = IATGauge + gauge = rawIatGauge + + dialog = iatSensor, "IAT Sensor", border + panel = iat_thermistor, West + panel = iatGauges, East + + dialog = oilp_settings, "Oil Pressure Sensor" + field = "Oil Pressure input", oilPressure_hwChannel + field = "low voltage", oilPressure_v1, {oilPressure_hwChannel != 0} + field = "low pressure", oilPressure_value1, {oilPressure_hwChannel != 0} + field = "high voltage", oilPressure_v2, {oilPressure_hwChannel != 0} + field = "high pressure", oilPressure_value2, {oilPressure_hwChannel != 0} + + dialog = oilPressureGauges + gauge = OilPressGauge + gauge = rawOilPressureGauge + + dialog = oilPressureSensor, "", border + panel = oilp_settings, West + panel = oilPressureGauges, East + + dialog = fuelp_settings, "Fuel Pressure Sensor" + field = "Fuel low pressure input", lowPressureFuel_hwChannel + field = "low voltage", lowPressureFuel_v1, {lowPressureFuel_hwChannel != 0} + field = "low pressure", lowPressureFuel_value1, {lowPressureFuel_hwChannel != 0} + field = "high voltage", lowPressureFuel_v2, {lowPressureFuel_hwChannel != 0} + field = "high pressure", lowPressureFuel_value2, {lowPressureFuel_hwChannel != 0} + field = "sensor type", fuelPressureSensorMode, {lowPressureFuel_hwChannel != 0} + + field = "Fuel high pressure input", highPressureFuel_hwChannel + field = "low voltage", highPressureFuel_v1, {highPressureFuel_hwChannel != 0} + field = "low pressure", highPressureFuel_value1, {highPressureFuel_hwChannel != 0} + field = "high voltage", highPressureFuel_v2, {highPressureFuel_hwChannel != 0} + field = "high pressure", highPressureFuel_value2, {highPressureFuel_hwChannel != 0} + + dialog = fuelPressureGauges + gauge = lowFuelPressureGauge + gauge = rawLowFuelPressureGauge + gauge = highFuelPressureGauge + gauge = rawHighFuelPressureGauge + + dialog = fuelPressureSensor, "", border + panel = fuelp_settings, West + panel = fuelPressureGauges, East + + dialog = auxLinearSensor1, "Aux Linear Sensor #1" + field = "Input", auxLinear1_hwChannel + field = "Low voltage", auxLinear1_v1, {auxLinear1_hwChannel != 0} + field = "Low value", auxLinear1_value1, {auxLinear1_hwChannel != 0} + field = "High voltage", auxLinear1_v2, {auxLinear1_hwChannel != 0} + field = "High value", auxLinear1_value2, {auxLinear1_hwChannel != 0} + + dialog = auxLinearSensor2, "Aux Linear Sensor #2" + field = "Input", auxLinear2_hwChannel + field = "Low voltage", auxLinear2_v1, {auxLinear2_hwChannel != 0} + field = "Low value", auxLinear2_value1, {auxLinear2_hwChannel != 0} + field = "High voltage", auxLinear2_v2, {auxLinear2_hwChannel != 0} + field = "High value", auxLinear2_value2, {auxLinear2_hwChannel != 0} + + dialog = auxLinearSensors + panel = auxLinearSensor1 + panel = auxLinearSensor2 + field = auxSpeedSensorInputPin1, auxSpeedSensorInputPin1 + field = auxSpeedSensorInputPin2, auxSpeedSensorInputPin2 + +; Sensors->MAP sensor + dialog = mapSensorAnalog, "MAP sensor", yAxis + field = "MAP input", map_sensor_hwChannel + field = "MAP type", map_sensor_type, { map_sensor_hwChannel != 0 } + field = "MAP value low point", map_sensor_lowValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage low point", mapLowValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP value high point", map_sensor_highValue, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + field = "MAP voltage high value", mapHighValueVoltage, { map_sensor_hwChannel != 0 && map_sensor_type == 0 } + + dialog = mapCommon, "MAP common settings" + field = "Low value threshold", mapErrorDetectionTooLow + field = "High value threshold", mapErrorDetectionTooHigh + field = "" + field = "Measure Map Only In One Cylinder", measureMapOnlyInOneCylinder + field = "Cylinder count to sample MAP", mapMinBufferLength + + dialog = mapSettings, "", yAxis + panel = mapCommon + panel = mapSensorAnalog + + dialog = baroSettings, "Baro sensor" + field = "Baro input", baroSensor_hwChannel + field = "Low Value", baroSensor_lowValue, {baroSensor_hwChannel != 0} + field = "High Value", baroSensor_highValue, {baroSensor_hwChannel != 0} + field = "Type", baroSensor_type, {baroSensor_hwChannel != 0} + field = "LPS2x Baro SCL", lps25BaroSensorScl, { baroSensor_hwChannel == 0} + field = "LPS2x Baro SDA", lps25BaroSensorSda, { baroSensor_hwChannel == 0} + + dialog = mapCurves, "MAP sampling", yAxis + field = "isMapAveragingEnabled", isMapAveragingEnabled + panel = map_samplingAngleCurve + panel = map_samplingWindowCurve + + dialog = mafSettings, "MAF sensor", yAxis + field = "MAF ADC input", mafAdcChannel + field = "MAF 2 ADC input", maf2AdcChannel + +; Sensors->EGO sensor + dialog = egoSettings_sensor, "EGO sensor" + settingSelector = "EGO Type" + settingOption = "BPSX", afr_v1=0,afr_value1=9,afr_v2=5,afr_value2=19 + settingOption = "Innovate", afr_v1=0,afr_value1=7.35,afr_v2=5,afr_value2=22.39 + settingOption = "14Point7", afr_v1=0,afr_value1=9.996,afr_v2=5,afr_value2=19.992 + settingOption = "PLX", afr_v1=0,afr_value1=10,afr_v2=5,afr_value2=20 + settingOption = "Narrow Band", afr_v1=0.1,afr_value1=15,afr_v2=0.9,afr_value2=14 + settingOption = "AEM", afr_v1=0.5,afr_value1=8.5,afr_v2=4.5,afr_value2=18 + + field = "Type", afr_type +; todo: only use these values for custom! + field = "low voltage", afr_v1 + field = "low value", afr_value1 + field = "high voltage", afr_v2 + field = "high value", afr_value2 + field = "Correction", egoValueShift + + dialog = egoSettings_IO1, "EGO Sensor 1 I/O" + field = "Input channel", afr_hwChannel,{afr_hwChannel != 0 || enableAemXSeries == 0 } + field = "Narrowband Heater output", o2heaterPin, { o2heaterPin != 0 || enableAemXSeries == 0 } + + dialog = egoSettings_IO2, "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 + panel = etbHbridgeHardwareNo2 + + dialog = stepperHbridgeHardwareNo1, "H-Bridge Hardware No1" + field = "No1 Direction #1", stepperDcIo1_directionPin1 + field = "No1 Direction #2", stepperDcIo1_directionPin2 + field = "No1 Control", stepperDcIo1_controlPin + field = "No1 Disable", stepperDcIo1_disablePin + + dialog = stepperHbridgeHardwareNo2, "H-Bridge Hardware No2" + field = "No2 Direction #1", stepperDcIo2_directionPin1 + field = "No2 Direction #2", stepperDcIo2_directionPin2 + field = "No2 Control", stepperDcIo2_controlPin + field = "No2 Disable", stepperDcIo2_disablePin + + dialog = stepperHbridgeHardware, "Stepper H-Bridge Hardware" + topicHelp = "stepperHbridgeHardwareHelp" + field = "Inverted driver pins", stepperDcInvertedPins + panel = stepperHbridgeHardwareNo1, { etbFunctions1 != 0 } + panel = stepperHbridgeHardwareNo2, { etbFunctions2 != 0 } + + dialog = idleStepperHw, "Stepper Controller Hardware" + topicHelp = "idleStepperHwHelp" + field = "Idle Stepper Step Pin", idle_stepperStepPin + field = "Idle Stepper Dir Pin", idle_stepperDirectionPin + field = "Idle Stepper Dir Pin Mode", stepperDirectionPinMode + field = "Idle Stepper Enable Pin", stepperEnablePin + field = "Idle Stepper Enable Pin Mode", stepperEnablePinMode + + dialog = stepperDirectDriveHardware, "Stepper Direct-Drive Hardware" + topicHelp = "stepperDirectDriveHardwareHelp" + field = "Stepper A+", stepper_raw_output1 + field = "Stepper A-", stepper_raw_output2 + field = "Stepper B+", stepper_raw_output3 + field = "Stepper B-", stepper_raw_output4 + + dialog = idleStepperHwType, "" + panel = idleStepperHw, { useStepperIdle && !useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperHbridgeHardware, { useStepperIdle && useHbridgesToDriveIdleStepper && !useRawOutputToDriveIdleStepper } + panel = stepperDirectDriveHardware, { useStepperIdle && !useHbridgesToDriveIdleStepper && useRawOutputToDriveIdleStepper } + + dialog = idleStepperGeneral, "" + field = "Drive stepper with dual H bridges", useHbridgesToDriveIdleStepper, useStepperIdle + field = "Drive stepper with PushPull outputs", useRawOutputToDriveIdleStepper, { useStepperIdle && !useHbridgesToDriveIdleStepper } + field = "Stepper reaction time", idleStepperReactionTime, useStepperIdle + field = "Stepper total steps", idleStepperTotalSteps, useStepperIdle + field = "Stepper parking extra steps, %", stepperParkingExtraSteps, useStepperIdle + field = "Force parking every restart", stepperForceParkingEveryRestart, useStepperIdle + + dialog = idleStepperMicro, "Micro-Stepping" + field = "Stepping Mode", stepperNumMicroSteps, useHbridgesToDriveIdleStepper + field = "Min. Duty Cycle", stepperMinDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + field = "Max. Duty Cycle", stepperMaxDutyCycle, { useHbridgesToDriveIdleStepper && stepperNumMicroSteps > 1 } + + dialog = idleStepper, "Stepper" + panel = idleStepperGeneral + panel = idleStepperHwType + panel = idleStepperMicro + + dialog = idleHwType, "Idle Valve Hardware", yAxis + panel = idleSolenoid + panel = idleStepper + + dialog = idlehw, "", yAxis + field = "!ECU reboot needed to apply these settings" + field = "Use Stepper", useStepperIdle + field = "Double Solenoid Mode", isDoubleSolenoidIdle + field = "Electronic throttle idle range", etbIdleThrottleRange + panel = idleHwType + + dialog = idlePidSettings, "Closed Loop Idle" + field = "P-factor", idleRpmPid_pFactor + field = "I-factor", idleRpmPid_iFactor + field = "derivativeFilterLoss", idle_derivativeFilterLoss + field = "antiwindupFreq", idle_antiwindupFreq + field = "D-factor", idleRpmPid_dFactor + field = "Min", idleRpmPid_minValue + field = "Max", idleRpmPid_maxValue + field = "iTerm Min", idlerpmpid_iTermMin + field = "iTerm Max", idlerpmpid_iTermMax + field = "PID Extra for low RPM", pidExtraForLowRpm + field = idleIncrementalPidCic, idleIncrementalPidCic + field = "use Cic Pid", useCicPidForIdle + field = "Use IAC PID Multiplier Table", useIacPidMultTable + + dialog = idleOpenLoop, "Open Loop Idle" + slider = "Open loop base position", manIdlePosition, horizontal + field = "A/C adder", acIdleExtraOffset + field = "A/C RPM target", acIdleRpmTarget + field = "Fan #1 adder", fan1ExtraIdle + field = "Fan #2 adder", fan2ExtraIdle + field = "Dashpot/Taper Initial IAC Adder", iacByTpsTaper + + dialog = idleGating, "Idle Detection Thresholds" + field = "TPS threshold", idlePidDeactivationTpsThreshold + field = "RPM upper limit", idlePidRpmUpperLimit + field = "RPM deadzone", idlePidRpmDeadZone + field = "Max vehicle speed", maxIdleVss + + dialog = idleExtra, "Extra Idle Features" + field = "Use idle ignition table", useSeparateAdvanceForIdle + field = "Use idle VE table", useSeparateVeForIdle + field = "Override Idle VE table load axis", idleVeOverrideMode, { useSeparateVeForIdle == 1 } + field = "Use idle tables for cranking taper", useSeparateIdleTablesForCrankingTaper + field = "Use coasting idle table", useIacTableForCoasting + field = "Dashpot coasting-to-idle Hold time", iacByTpsHoldTime + field = "Dashpot coasting-to-idle Decay time", iacByTpsDecayTime + + dialog = idleSettings, "", yAxis + field = "Idle control mode", idleMode + + field = "! Solenoid idle control is disabled at zero RPM" + +; gating applies both to open loop and closed loop! + panel = idleGating +; closed loop mode is an addition on top of open loop, so idleOpenLoop stays open even when closed loop is selected + panel = idleOpenLoop + panel = idlePidSettings, { idleMode == 0 } + panel = idleExtra + + dialog = idleTimingPidCorrDialog, "", yAxis + field = "" + field = "Enable closed loop idle ignition timing", useIdleTimingPidControl + field = "" + field = "#Gain is in degrees advance per rpm away from target" + field = "#A good starting point is 0.1 = 10 deg per 100 rpm" + field = "Proportional gain", idleTimingPid_pFactor, {useIdleTimingPidControl == 1} + field = "Integral gain", idleTimingPid_iFactor, {useIdleTimingPidControl == 1} + field = "Derivative gain", idleTimingPid_dFactor, {useIdleTimingPidControl == 1} + field = "" + field = "Min adjustment (retard)", idleTimingPid_minValue, {useIdleTimingPidControl == 1} + field = "Max adjustment (advance)", idleTimingPid_maxValue, {useIdleTimingPidControl == 1} + field = "" + field = "Soft entry time", idleTimingSoftEntryTime, {useIdleTimingPidControl == 1} + field = "" + field = "#Use debug mode 'Timing' to view idle timing adjustment" + +; Engine->Fan Settings + dialog = fan1Settings, "Fan 1" + field = "Output", fanPin, 1, { uiMode == 0 || uiMode == 1 } + field = "Output mode", fanPinMode, { uiMode == 0 || uiMode == 1 } + field = "On temperature", fanOnTemperature + field = "Off temperature", fanOffTemperature + field = "Enable with AC", enableFan1WithAc + field = "Disable when engine stopped", disableFan1WhenStopped + field = "Disable above vehicle speed", disableFan1AtSpeed + field = "Idle adder", fan1ExtraIdle + + dialog = fan2Settings, "Fan 2" + field = "Output", fan2Pin + field = "Output mode", fan2PinMode + field = "On temperature", fan2OnTemperature + field = "Off temperature", fan2OffTemperature + field = "Enable with AC", enableFan2WithAc + field = "Disable when engine stopped", disableFan2WhenStopped + field = "Disable above vehicle speed", disableFan2AtSpeed + field = "Idle adder", fan2ExtraIdle + + dialog = fanTest, "", xAxis + commandButton = "Test Fan 1", cmd_test_fan_1 + commandButton = "Test Fan 2", cmd_test_fan_2 + + indicatorPanel = fanIndicators, 2 + indicator = { isFanOn }, "fan 1 off", "fan 1 on", white, black, green, black + indicator = { isFan2On }, "fan 2 off", "fan 2 on", white, black, green, black + + dialog = acSettingsWest, "A/C Settings" + field = "A/C switch", acSwitch + field = "A/C switch mode", acSwitchMode + field = "A/C Relay", acRelayPin + field = "A/C Relay Mode", acRelayPinMode + field = "A/C compressor delay", acDelay + field = "Max RPM", maxAcRpm + field = "Max CLT", maxAcClt + field = "Max TPS", maxAcTps + field = "A/C Idle adder", acIdleExtraOffset + field = "A/C Idle RPM", acIdleRpmTarget + + dialog = acSettings, "", border + panel = acSettingsWest, West + panel = ac_controlIndicatorPanel, East + + dialog = fanSetting, "Fan Settings" + panel = fan1Settings + panel = fan2Settings + panel = fanTest + panel = fanIndicators + + dialog = fuelPumpDialog, "Fuel Pump" + field = "Output", fuelPumpPin + field = "Output mode", fuelPumpPinMode + field = "Prime duration", startUpFuelPumpDuration + commandButton = "Test Fuel Pump", cmd_test_fuel_pump + +; Controller->Actuator Outputs + dialog = mainRelayDialog, "Main relay output" + field = "Output", mainRelayPin + field = "Output mode", mainRelayPinMode + commandButton = "Test Main Relay", cmd_test_main_relay + + dialog = starterRelayDialog, "Starter Disable" + field = "Output", starterRelayDisablePin + field = "Output mode", starterRelayDisablePinMode + commandButton = "Test Starter Disable", cmd_test_starter_disable_relay + + dialog = startStopDialog, "Starter Control" + field = "Require Foot On Brake To Crank", requireFootOnBrakeToCrank + field = "Start/Stop Button input", startStopButtonPin + field = "Start/Stop Button input mode", startStopButtonMode + field = "Starter Control", starterControlPin, { starterControlPin != 0 || startStopButtonPin != 0} + field = "Start cranking maximum time", startCrankingDuration, {startStopButtonPin != 0} + field = "Suppress On Start Up (Ms)", startButtonSuppressOnStartUpMs, {startStopButtonPin != 0} + commandButton = "Test Starter Relay", cmd_test_starter_relay + +; Engine->MIL Settings + dialog = malfunctionDialog, "Check Engine Settings" + field = "Output", malfunctionIndicatorPin + field = "Output mode", malfunctionIndicatorPinMode + field = "Warning Period", warningPeriod + commandButton = "Test Check Engine", cmd_test_check_engine_light + + dialog = tachSettings, "Tachometer output" + field = "Output", tachOutputPin + field = "Output mode", tachOutputPinMode + field = "Pulse Mode", tachPulseDurationAsDutyCycle + field = "Pulse duration", tachPulseDuractionMs + field = "Pulse per Rev", tachPulsePerRev + + dialog = speedoSettings, "Speedometer output" + field = "Output", speedometerOutputPin + field = "Pulse per km", speedometerPulsePerKm, { speedometerOutputPin } + + dialog = outputsDialogLeft + panel = mainRelayDialog + panel = fuelPumpDialog + panel = tachSettings + + dialog = outputsDialogRight + panel = startStopDialog + panel = starterRelayDialog + panel = speedoSettings + panel = malfunctionDialog + + dialog = outputsDialog, "Outputs", border + panel = outputsDialogLeft, West + panel = fanSetting, Center + panel = outputsDialogRight, East + + dialog = statusLeds, "Status LEDs" + field = "Trigger error LED", triggerErrorPin + field = "Debug Trigger Sync", debugTriggerSync + + dialog = softwareKnockCfg, "Sense" + field = "Enable", enableSoftwareKnock + field = "Cylinder Bore", cylinderBore + field = "Knock filter frequency", knockBandCustom, {enableSoftwareKnock} + field = "knockDetectionWindowStart",knockDetectionWindowStart, {enableSoftwareKnock} + field = "knockSamplingDuration", knockSamplingDuration, {enableSoftwareKnock} + + field = "" + field = "Select the nearest sensor for each cylinder" + field = "Cylinder 1", knockBankCyl1, {enableSoftwareKnock} + field = "Cylinder 2", knockBankCyl2, {enableSoftwareKnock && cylindersCount >= 2} + field = "Cylinder 3", knockBankCyl3, {enableSoftwareKnock && cylindersCount >= 3} + field = "Cylinder 4", knockBankCyl4, {enableSoftwareKnock && cylindersCount >= 4} + field = "Cylinder 5", knockBankCyl5, {enableSoftwareKnock && cylindersCount >= 5} + field = "Cylinder 6", knockBankCyl6, {enableSoftwareKnock && cylindersCount >= 6} + field = "Cylinder 7", knockBankCyl7, {enableSoftwareKnock && cylindersCount >= 7} + field = "Cylinder 8", knockBankCyl8, {enableSoftwareKnock && cylindersCount >= 8} + field = "Cylinder 9", knockBankCyl9, {enableSoftwareKnock && cylindersCount >= 9} + field = "Cylinder 10", knockBankCyl10, {enableSoftwareKnock && cylindersCount >= 10} + field = "Cylinder 11", knockBankCyl11, {enableSoftwareKnock && cylindersCount >= 11} + field = "Cylinder 12", knockBankCyl12, {enableSoftwareKnock && cylindersCount >= 12} + + dialog = softwareKnockResponseCfg, "Response" + field = knockRetardAggression, knockRetardAggression + field = knockRetardReapplyRate, knockRetardReapplyRate + + dialog = softwareKnockLeft, "" + panel = softwareKnockCfg + panel = softwareKnockResponseCfg + + dialog = softwareKnock, "Software Knock", border + panel = softwareKnockLeft, West + panel = knockThresholdCurve, Center + +; Engine->hip9011 Settings + dialog = hipFunction, "HIP9011 Settings (knock decoder)" + field = "Enabled", isHip9011Enabled + field = "!ECU reboot needed to apply these settings" + field = "IntHold pin (hip9011 input)", hip9011IntHoldPin, {isHip9011Enabled == 1} + field = "IntHold pin (hip9011 input) mode", hip9011IntHoldPinMode, {isHip9011Enabled == 1} + field = "ChipSelect pin", hip9011CsPin, {isHip9011Enabled == 1} + field = "ChipSelect mode", hip9011CsPinMode, {isHip9011Enabled == 1} + field = "hip Output/stm input", hipOutputChannel, {isHip9011Enabled == 1} + field = "prescaler & SDO", hip9011PrescalerAndSDO, {isHip9011Enabled == 1} + field = "knockDetectionWindowStart", knockDetectionWindowStart, {isHip9011Enabled == 1} + field = "knockDetectionWindowEnd", knockDetectionWindowEnd, {isHip9011Enabled == 1} + field = "cylinder bore (mm)", cylinderBore, {isHip9011Enabled == 1} + field = "Band Freq override", knockBandCustom, {isHip9011Enabled == 1} + field = "SPI device", hip9011SpiDevice, {isHip9011Enabled == 1} + panel = knockThresholdCurve + + dialog = spiBuses, "SPI buses settings" + field = "!ECU reboot needed to apply these settings" + field = "SPI1 enable", is_enabled_spi_1 + field = "SPI1 MOSI", spi1mosiPin, {is_enabled_spi_1 == 1} + field = "SPI1mosi mode", spi1MosiMode, {is_enabled_spi_1 == 1} + field = "SPI1 MISO", spi1misoPin, {is_enabled_spi_1 == 1} + field = "SPI1miso mode", spi1MisoMode, {is_enabled_spi_1 == 1} + field = "SPI1 SCK", spi1sckPin, {is_enabled_spi_1 == 1} + field = "SPI1sck mode", spi1SckMode, {is_enabled_spi_1 == 1} + + field = "SPI2 enable", is_enabled_spi_2 + field = "SPI2 MOSI", spi2mosiPin, {is_enabled_spi_2 == 1} + field = "SPI2mosi mode", spi2MosiMode, {is_enabled_spi_2 == 1} + field = "SPI2 MISO", spi2misoPin, {is_enabled_spi_2 == 1} + field = "SPI2miso mode", spi2MisoMode, {is_enabled_spi_2 == 1} + field = "SPI2 SCK", spi2sckPin, {is_enabled_spi_2 == 1} + field = "SPI2sck mode", spi2SckMode, {is_enabled_spi_2 == 1} + + field = "SPI3 enable", is_enabled_spi_3 + field = "SPI3 MOSI", spi3mosiPin, {is_enabled_spi_3 == 1} + field = "SPI3mosi mode", spi3MosiMode, {is_enabled_spi_3 == 1} + field = "SPI3 MISO", spi3misoPin, {is_enabled_spi_3 == 1} + field = "SPI3miso mode", spi3MisoMode, {is_enabled_spi_3 == 1} + field = "SPI3 SCK", spi3sckPin, {is_enabled_spi_3 == 1} + field = "SPI3sck mode", spi3SckMode, {is_enabled_spi_3 == 1} + + field = "SPI4 enable", is_enabled_spi_4 + + field = "SPI5 enable", is_enabled_spi_5 + + field = "SPI6 enable", is_enabled_spi_6 + + dialog = spiDevices, "SPI devices settings" + field = "Use SPI accelerometer", useSpiImu + + dialog = stftPartitioning, "Region Configuration" + field = "Idle region RPM", stft_maxIdleRegionRpm + field = "Overrun region load", stft_maxOverrunLoad + field = "Power region load", stft_minPowerLoad + + dialog = stftPartitionSettingsMain, "Main Region", xAxis + field = "Time const", stft_cellCfgs4_timeConstant + field = "Max add", stft_cellCfgs4_maxAdd + field = "Max remove", stft_cellCfgs4_maxRemove + + dialog = stftPartitionSettingsIdle, "Idle Region", xAxis + field = "Time const", stft_cellCfgs1_timeConstant + field = "Max add", stft_cellCfgs1_maxAdd + field = "Max remove", stft_cellCfgs1_maxRemove + + dialog = stftPartitionSettingsPower, "Power Region", xAxis + field = "Time const", stft_cellCfgs3_timeConstant + field = "Max add", stft_cellCfgs3_maxAdd + field = "Max remove", stft_cellCfgs3_maxRemove + + dialog = stftPartitionSettingsOverrun, "Overrun Region", xAxis + field = "Time const", stft_cellCfgs2_timeConstant + field = "Max add", stft_cellCfgs2_maxAdd + field = "Max remove", stft_cellCfgs2_maxRemove + + dialog = fuelClosedLoopDialog, "Closed loop fuel correction" + field = "Enabled", fuelClosedLoopCorrectionEnabled + + field = "Startup delay" stft_startupDelay, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum CLT for correction", stft_minClt, {fuelClosedLoopCorrectionEnabled == 1} + field = "Minimum AFR for correction", stft_minAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Maximum AFR for correction", stft_maxAfr, {fuelClosedLoopCorrectionEnabled == 1} + field = "Adjustment deadband", stft_deadband, {fuelClosedLoopCorrectionEnabled == 1} + field = "Ignore error magnitude", stftIgnoreErrorMagnitude, {fuelClosedLoopCorrectionEnabled == 1} + + panel = stftPartitioning, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsMain, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsIdle, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsPower, {fuelClosedLoopCorrectionEnabled == 1} + panel = stftPartitionSettingsOverrun, {fuelClosedLoopCorrectionEnabled == 1} + + dialog = lambdaProtectionLeft, "" + field = "Enable lambda protection", lambdaProtectionEnable + field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" + panel = lambdaMaxDeviationTableTbl + + dialog = lambdaProtection, "Lambda Protection", border + panel = lambdaProtectionLeft, West + panel = lambdaProtectionRight, East + + dialog = vvtPidDialog0, "Configuration" + field = "Activation Delay", vvtActivationDelayMs + field = "Do not control below RPM", vvtControlMinRpm + field = "VVT solenoid bank 1 intake", vvtPins1 + field = "VVT solenoid bank 1 exhaust", vvtPins2 + field = "VVT solenoid bank 2 intake", vvtPins3 + field = "VVT solenoid bank 2 exhaust", vvtPins4 + field = "PWM frequency", vvtOutputFrequency, {vvtPins1 != 0 || vvtPins2 != 0} + field = "VVT solenoid intake cams control direction", invertVvtControlIntake, { vvtPins1 != 0 || vvtPins3 != 0 } + field = "VVT solenoid exhaust cams control direction", invertVvtControlExhaust, { vvtPins2 != 0 || vvtPins4 != 0 } + + dialog = vvtPidDialog1, "Intake PID" + field = "offset", auxPid1_offset, {vvtPins1 != 0} + field = "P factor", auxPid1_pFactor, {vvtPins1 != 0} + field = "I factor", auxPid1_iFactor, {vvtPins1 != 0} + field = "D factor", auxPid1_dFactor, {vvtPins1 != 0} + field = "Min", auxPid1_minValue, {vvtPins1 != 0} + field = "Max", auxPid1_maxValue, {vvtPins1 != 0} + commandButton = "Bench bank 1", cmd_test_vvt0_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt2_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog2, "Exhaust PID" + field = "offset", auxPid2_offset, {vvtPins2 != 0} + field = "P factor", auxPid2_pFactor, {vvtPins2 != 0} + field = "I factor", auxPid2_iFactor, {vvtPins2 != 0} + field = "D factor", auxPid2_dFactor, {vvtPins2 != 0} + field = "Min", auxPid2_minValue, {vvtPins2 != 0} + field = "Max", auxPid2_maxValue, {vvtPins2 != 0} + commandButton = "Bench bank 1", cmd_test_vvt1_valve, { engineTurnedRecently == 0 } + commandButton = "Bench bank 2", cmd_test_vvt3_valve, { engineTurnedRecently == 0 } + + dialog = vvtPidDialog, "VVT Configuration & PID", border + panel = vvtPidDialog0, West + panel = vvtPidDialog1, Center + panel = vvtPidDialog2, East + +; Engine->Battery & Alternator + dialog = batteryDialog, "Battery Settings", yAxis + field = "vBatt ADC input", vbattAdcChannel + field = "Battery Input Divider Coefficient", vbattDividerCoeff + dialog = alternator, "Alternator Settings", yAxis + field = "Enabled", isAlternatorControlEnabled + field = "Target", targetVBatt, {isAlternatorControlEnabled == 1} + field = "Control output", alternatorControlPin, {isAlternatorControlEnabled == 1} + field = "Control output mode", alternatorControlPinMode, {isAlternatorControlEnabled == 1} + field = "PWM frequency", alternatorPwmFrequency, {isAlternatorControlEnabled == 1} + field = "A/C duty adder", acRelayAlternatorDutyAdder, {isAlternatorControlEnabled == 1} + field = "#PID control" + field = "offset", alternatorControl_offset, {isAlternatorControlEnabled == 1} + field = "P factor", alternatorControl_pFactor, {isAlternatorControlEnabled == 1} + field = "I factor", alternatorControl_iFactor, {isAlternatorControlEnabled == 1} + field = "D factor", alternatorControl_dFactor, {isAlternatorControlEnabled == 1} + field = "Min", alternatorControl_minValue, {isAlternatorControlEnabled == 1} + field = "Max", alternatorControl_maxValue, {isAlternatorControlEnabled == 1} + field = "#% duty = Pterm + Iterm + Dterm + offset%" + + dialog = energySystems, "Battery and Alternator Settings", yAxis + panel = batteryDialog + panel = alternator + + dialog = speedSensorAnalog, "Speed sensor" + field = "Input", vehicleSpeedSensorInputPin + field = "Filter parameter", vssFilterReciprocal, { vehicleSpeedSensorInputPin != 0 } + +; +; We prefer quantities that users can actually measure or inspect without math, so we have +; two separate natural settings here without one 'sensor tooth to wheel revolution' ratio +; + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Speed sensor gear ratio", vssGearRatio, { vehicleSpeedSensorInputPin != 0 } + field = "Speed sensor tooth count", vssToothCount, { vehicleSpeedSensorInputPin != 0 } + + dialog = speedSensorCan, "CAN Vehicle Speed" + field = "Enable CAN VSS", enableCanVss, { canReadEnabled } + field = "CAN VSS type", canVssNbcType, { enableCanVss } + field = "CAN VSS scaling", canVssScaling, { canReadEnabled } + + dialog = speedSensorLeft, "", yAxis + panel = speedSensorAnalog, { enableCanVss == 0 } + panel = speedSensorCan + + dialog = gearDetection, "Gear Detection" + field = "Wheel revolutions per kilometer", driveWheelRevPerKm + field = "Final drive ratio", finalGearRatio + field = "" + field = "Forward gear count", totalGearsCount + field = "" + field = "1st gear", gearRatio1, { totalGearsCount >= 1 } + field = "2nd gear", gearRatio2, { totalGearsCount >= 2 } + field = "3rd gear", gearRatio3, { totalGearsCount >= 3 } + field = "4th gear", gearRatio4, { totalGearsCount >= 4 } + field = "5th gear", gearRatio5, { totalGearsCount >= 5 } + field = "6th gear", gearRatio6, { totalGearsCount >= 6 } + field = "7th gear", gearRatio7, { totalGearsCount >= 7 } + field = "8th gear", gearRatio8, { totalGearsCount >= 8 } + + dialog = speedSensor, "Speed sensor", xAxis + panel = speedSensorLeft + gauge = VSSGauge + panel = gearDetection + +; Engine->Other inputs + dialog = analogInputSettings, "Analog Input Settings" + field = "!ECU reboot needed to apply these settings" + field = "ADC vRef voltage", adcVcc + field = "Use fixed baro corr from MAP", useFixedBaroCorrFromMap + + +; 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 = "Enable extended rusEFI CAN broadcast", enableExtendedCanBroadcast + field = "rusEFI CAN data bus", canBroadcastUseChannelTwo + field = "rusEFI CAN data base address", verboseCanBaseAddress + field = "rusEFI CAN data address type", rusefiVerbose29b + field = "rusEFI CAN data period", canSleepPeriodMs + + dialog = canBus2, "Secondary CAN Bus" + + dialog = canBusMain, "CAN Bus Communication", yAxis + panel = canBus + + panel = canHw1 + + 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 = tle8888Dialog, "TLE8888", yAxis + field = "TLE8888 SPI", tle8888spiDevice + field = "TLE8888 Chip Select", tle8888_cs + field = "Trigger Input Mode", tle8888mode + field = "useTLE8888 cranking reset hack", useTLE8888_cranking_hack + field = "useTLE8888 stepper", useTLE8888_stepper + commandButton = "Reinitialize", cmd_tle8888_init + + dialog = l9779Dialog, "L9779", yAxis + field = "L9779 SPI", l9779spiDevice + field = "L9779 Chip Select", l9779_cs + + dialog = connection, "", yAxis + panel = tsPort + field = "uartConsoleSerialSpeed", uartConsoleSerialSpeed + panel = auxSerial + field = enableKline, enableKline + + dialog = monitoringSettings, "rusEFI Console Settings" + field = "Sensor Sniffer", sensorChartMode + field = " Threshold", sensorSnifferRpmThreshold + field = "Engine Sniffer Threshold", engineSnifferRpmThreshold + + dialog = 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 = dutyCycleLimiting, "Injector Duty Cycle Limiter" + field = "Instantaneous injector duty cycle limit", maxInjectorDutyInstant, {isInjectionEnabled} + field = "Sustained injector duty cycle limit", maxInjectorDutySustained, {isInjectionEnabled} + field = "Sustained injector duty cycle delay", maxInjectorDutySustainedTimeout, {isInjectionEnabled} + + dialog = limitsSettings, "Limits" + field = "Cut fuel on RPM limit", cutFuelOnHardLimit + field = "Cut spark on RPM limit", cutSparkOnHardLimit + field = "Use CLT-based RPM limit curve", useCltBasedRpmLimit, { cutFuelOnHardLimit || cutSparkOnHardLimit } + field = "RPM hard limit", rpmHardLimit, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + field = "RPM limit hysteresis", rpmHardLimitHyst + field = "Boost cut pressure", boostCutPressure + field = "Boost cut pressure hysteresis", boostCutPressureHyst + field = "Minimum oil pressure after start", minOilPressureAfterStart + panel = dutyCycleLimiting + + dialog = softRpmLimitSettings, "Soft RPM Limit" + field = "Window size", rpmSoftLimitWindowSize + field = "Timing retard", rpmSoftLimitTimingRetard, { cutSparkOnHardLimit } + field = "Fuel added", rpmSoftLimitFuelAdded, { cutFuelOnHardLimit } + + dialog = etbLimits, "Electronic Throttle Limiting" + field = "Smoothly close the throttle to limit RPM." + field = "Soft limiter start", etbRevLimitStart + field = "Soft limiter range", etbRevLimitRange + + dialog = limitsAndFallbackLeft + panel = limitsSettings + panel = softRpmLimitSettings, West, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && !useCltBasedRpmLimit } + panel = etbLimits + + dialog = limitsAndFallbackCenter, "CLT-based RPM Limit" + panel = cltRevLimitCurve + + dialog = limitsAndFallback, "Limits and fallbacks", border + panel = limitsAndFallbackLeft, West + panel = limitsAndFallbackCenter, Center, { (cutFuelOnHardLimit || cutSparkOnHardLimit) && useCltBasedRpmLimit } + +; Engine->Base Engine Settings + dialog = engineChars, "Base Engine Settings" + topicHelp = "baseHelp" + panel = baseEngineConfig + panel = engineMetadata + panel = 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 = primingFuelPulsePanel, "Priming fuel pulse" + field = "Priming delay", primingDelay + panel = primingPulse + + dialog = crankingAdv, "Advanced" + field = "Enable flood clear", isCylinderCleanupEnabled + field = "Enable faster engine spin-up", isFasterEngineSpinUpEnabled + field = "Use Advance Corrections for cranking", useAdvanceCorrectionsForCranking + field = "Use Flex Fuel cranking table", flexCranking + +; Cranking->Cranking Settings + dialog = crankingDialog, "Cranking Settings" + field = "Cranking RPM limit", cranking_rpm + panel = crankingFuel + panel = crankingIgnition + panel = crankingIAC + panel = crankingAdv + + dialog = TpsAccelPanel, "TPS" + field = "Set 'Debug Mode' to see detailed 'TPS acceleration enrichment' diagnostics" + field = "Length", tpsAccelLookback + field = "Accel Threshold", tpsAccelEnrichmentThreshold + field = "Decel Threshold", tpsDecelEnleanmentThreshold +; field = "Decel Multiplier", tpsDecelEnleanmentMultiplier + field = "#Accelerator Pump model:" + field = "Fraction Period", tpsAccelFractionPeriod + field = "Fraction Divisor", tpsAccelFractionDivisor + + dialog = WallWettingAccelPanel, "Wall Wetting (alpha version)" + field = "Wall fueling model type", complexWallModel + field = "evaporation time constant / tau", wwaeTau, { complexWallModel == 0 } + field = "added to wall coef / beta", wwaeBeta, { complexWallModel == 0 } + + +; Tuning->AccelEnrichment + dialog = AccelEnrich, "Accel/Decel Enrichment" + panel = TpsAccelPanel + panel = WallWettingAccelPanel + field = "No accel after RPM hard limit", noAccelAfterHardLimitPeriodSecs + + + dialog = wwTauCurves, "Wall wetting AE evaporation time" + field = "#Set a base evaporation time based on coolant temperature, and a multiplier based on MAP." + panel = wwTauCltCurve + panel = wwTauMapCurve + + dialog = wwBetaCurves, "Wall wetting AE impact fraction" + field = "#Set a base impact fraction based on coolant temperature, and a multiplier based on MAP." + panel = wwBetaCltCurve + panel = wwBetaMapCurve + + dialog = auxValvesIO, "Outputs" + field = "aux valve #1", auxValves1 + field = "aux valve #2", auxValves2 + + dialog = scriptSetting, "Setting" + field = "!Use rusEFI console for Lua script editing" + field = "Set number is not associated with the output number." + field = "Set number, only the cell number with some numbers." + field = "Name #1", scriptSettingName1 + field = "Setting #1", scriptSetting1 + field = "Name #2", scriptSettingName2 + field = "Setting #2", scriptSetting2 + field = "Name #3", scriptSettingName3 + field = "Setting #3", scriptSetting3 + field = "Name #4", scriptSettingName4 + field = "Setting #4", scriptSetting4 + field = "Name #5", scriptSettingName5 + field = "Setting #5", scriptSetting5 + field = "Name #6", scriptSettingName6 + field = "Setting #6", scriptSetting6 + + dialog = scriptSettingDialog, "Script Settings", border + panel = scriptSetting, East + + dialog = luaDigitalInputsLeftDialog + field = "Digital #1", luaDigitalInputPins1 + field = "Digital #2", luaDigitalInputPins2 + field = "Digital #3", luaDigitalInputPins3 + field = "Digital #4", luaDigitalInputPins4 + field = "Digital #5", luaDigitalInputPins5 + field = "Digital #6", luaDigitalInputPins6 + field = "Digital #7", luaDigitalInputPins7 + field = "Digital #8", luaDigitalInputPins8 + + dialog = luaDigitalInputsRightDialog + field = "Mode #1", luaDigitalInputPinModes1 + field = "Mode #2", luaDigitalInputPinModes2 + field = "Mode #3", luaDigitalInputPinModes3 + field = "Mode #4", luaDigitalInputPinModes4 + field = "Mode #5", luaDigitalInputPinModes5 + field = "Mode #6", luaDigitalInputPinModes6 + field = "Mode #7", luaDigitalInputPinModes7 + field = "Mode #8", luaDigitalInputPinModes8 + + dialog = luaDigitalInputsDialog, "Lua Digital Aux Inputs", border + panel = luaDigitalInputsLeftDialog, West + panel = luaDigitalInputsRightDialog, East + + dialog = auxInputsDialog, "Lua Analog Inputs" + field = "ADC #1", auxAnalogInputs1 + field = "ADC #2", auxAnalogInputs2 + field = "ADC #3", auxAnalogInputs3 + field = "ADC #4", auxAnalogInputs4 + field = "ADC #5", auxAnalogInputs5 + field = "ADC #6", auxAnalogInputs6 + field = "ADC #7", auxAnalogInputs7 + field = "ADC #8", auxAnalogInputs8 + + dialog = luaOutputs, "Lua Outputs" + field = "!Use rusEFI console for Lua script editing" + field = "#Call startPwm to initialize, then call" + field = "#setPwmDuty and setPwmFreq to vary duty/freq" + field = "#See rusefi.com/s/lua for more info" + field = "output #0", luaOutputPins1 + field = "output #1", luaOutputPins2 + field = "output #2", luaOutputPins3 + field = "output #3", luaOutputPins4 + field = "output #4", luaOutputPins5 + field = "output #5", luaOutputPins6 + field = "output #6", luaOutputPins7 + field = "output #7", luaOutputPins8 + + dialog = transmissionPanel + field = "TCU Enabled" tcuEnabled + field = "Gear Controller" gearControllerMode, { tcuEnabled } + field = "Transmission Controller" transmissionControllerMode, { tcuEnabled } + + dialog = shiftSolenoidPanel, "Shift Solenoids" + field = "Solenoid 1 output" tcu_solenoid1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 1 output Mode" tcu_solenoid_mode1, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output" tcu_solenoid2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 2 output Mode" tcu_solenoid_mode2, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output" tcu_solenoid3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 3 output Mode" tcu_solenoid_mode3, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output" tcu_solenoid4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 4 output Mode" tcu_solenoid_mode4, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output" tcu_solenoid5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 5 output Mode" tcu_solenoid_mode5, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output" tcu_solenoid6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "Solenoid 6 output Mode" tcu_solenoid_mode6, { tcuEnabled && (transmissionControllerMode == 1 || transmissionControllerMode == 2) } + field = "3-2 Solenoid output" tcu_32_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid output mode" tcu_32_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "3-2 Solenoid Frequency" tcu_32_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = otherSolenoidPanel, "Other Solenoids" + field = "TCC On/Off Solenoid Pin" tcu_tcc_onoff_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC On/Off Solenoid Pin Mode" tcu_tcc_onoff_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin" tcu_tcc_pwm_solenoid, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Pin Mode" tcu_tcc_pwm_solenoid_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "TCC PWM Solenoid Frequency" tcu_tcc_pwm_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin" tcu_pc_solenoid_pin, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Pin Mode" tcu_pc_solenoid_pin_mode, { tcuEnabled && (transmissionControllerMode == 2) } + field = "Pressure Control Solenoid Frequency" tcu_pc_solenoid_freq, { tcuEnabled && (transmissionControllerMode == 2) } + + dialog = buttonShiftInputPanel, "Switch/Button Shift" + field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled && gearControllerMode == 1 } + field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled && gearControllerMode == 1 } + + dialog = inputSpeedSensorPanel, "Input Speed Sensor" + field = "Input Pin", tcuInputSpeedSensorPin + field = "Filter parameter", issFilterReciprocal, { tcuInputSpeedSensorPin != 0 } + field = "Tooth Count", tcuInputSpeedSensorTeeth + +dialog = rangeMatrixInputPanel, "Range Selector Inputs" + field = "Input 1 Pin", tcu_rangeInput1, { tcuEnabled } + field = "Input 1 Pin Mode", tcu_rangeInputMode1, { tcuEnabled } + field = "Input 2 Pin", tcu_rangeInput2, { tcuEnabled } + field = "Input 2 Pin Mode", tcu_rangeInputMode2, { tcuEnabled } + field = "Input 3 Pin", tcu_rangeInput3, { tcuEnabled } + field = "Input 3 Pin Mode", tcu_rangeInputMode3, { tcuEnabled } + field = "Input 4 Pin", tcu_rangeInput4, { tcuEnabled } + field = "Input 4 Pin Mode", tcu_rangeInputMode4, { tcuEnabled } + +dialog = tcuControls, "Transmission Settings" + panel = transmissionPanel + panel = shiftSolenoidPanel + panel = otherSolenoidPanel + + dialog = gearControls, "Gear Selection Settings" + panel = buttonShiftInputPanel + panel = rangeMatrixInputPanel + + dialog = inputSpeedSensor, "Input Speed Sensor" + panel = inputSpeedSensorPanel + + dialog = tccCurves, "TCC Lock/Unlock Speed" + panel = tccLockCurve + + dialog = pcPerGearDialog, "Line Pressure Per Gear Steady State" + panel = pcPerGearCurve + + dialog = pcPerShiftDialog, "Line Pressure Per Shift" + panel = pcPerShiftCurve + + dialog = 32Dialog, "3-2 Shift Solenoid Percent by Speed" + panel = 32Curve + + dialog = rangeMatrixDocumentation, "Cell Values" + field = "0 = this pin must be low to reach this state" + field = "1 = this pin must be high to reach this state" + field = "2 = this pin is ignored for reaching this state" + field = "3 = this state is unreachable" + + dialog = rangeMatrixDialog, "Range Selector Input Matrix", border + panel = rangeMatrix, Center + panel = rangeMatrixDocumentation, South + +;Boost Open Loop + + dialog = boostDialog, "" + field = "Enable", isBoostControlEnabled + field = "Control Mode", boostType, { isBoostControlEnabled } + field = "Output", boostControlPin, { boostControlPin != 0 || isBoostControlEnabled } + field = "Output Mode", boostControlPinMode, { isBoostControlEnabled } + field = "Frequency", boostPwmFrequency, { isBoostControlEnabled } + field = "Safe duty cycle", boostControlSafeDutyCycle, { isBoostControlEnabled } + field = "No boost control below RPM", boostControlMinRpm, { isBoostControlEnabled } + field = "No boost control below TPS", boostControlMinTps, { isBoostControlEnabled } + field = "No boost control below MAP", boostControlMinMap, { isBoostControlEnabled } + + dialog = boostOpenLoopDialog, "", border + panel = boostTableTbl, Center + + dialog = boostOpenLoopGearAdderDialog, "", border + panel = boostOpenLoopGearAdderCurve, Center + +;Boost Closed Loop + + dialog = boostPidDialog, "" + topicHelp = "boostPidHelp" + field = "Enable closed loop above", minimumBoostClosedLoopMap, { isBoostControlEnabled && boostType == 1 } + field = "P Gain", boostPid_pFactor, { isBoostControlEnabled && boostType == 1 } + field = "I Gain", boostPid_iFactor, { isBoostControlEnabled && boostType == 1 } + field = "D Gain", boostPid_dFactor, { isBoostControlEnabled && boostType == 1 } + field = "Min adjustment", boostPid_minValue, { isBoostControlEnabled && boostType == 1 } + field = "Max adjustment", boostPid_maxValue, { isBoostControlEnabled && boostType == 1 } + + dialog = boostTargetDialog, "", card + panel = boostTable2Tbl + + dialog = boostEtbPid, "" + field = "This PID is controlling how DC motor reaches desired position" + field = "" + field = "!This section is for advanced users only!" + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "P gain", etbWastegatePid_pFactor, { isBoostControlEnabled } + field = "I gain", etbWastegatePid_iFactor, { isBoostControlEnabled } + field = "D gain", etbWastegatePid_dFactor, { isBoostControlEnabled } + field = "PID min", etbWastegatePid_minValue, { isBoostControlEnabled } + field = "PID max", etbWastegatePid_maxValue, { isBoostControlEnabled } + + help = boostPidHelp, "Boost Control PID" + text = "P = % per kPa error" + text = "I = % per kPa-seconds" + text = "D = % per kPa/sec" + text = "" + text = "If the boost error is 5kpa, and your P is set to 2, it will make a correction of 10%." + text = "If the boost error has been 5kPa for 2 second (10 kPa-seconds) and I is set to 0.1, it will make a correction of 1%" + text = "If the boost is changing at 10kPa/s and D is set to 0.5, it will make a correction of 5%." + text = "Those three terms are then added together, and limited by the PID min/max settings." + text = "" + text = "That is then added to the value from the open loop table, and sent to PWM the valve." + + help = veTableDialogHelp, "Volumetric Efficiency" + text = "Volumetric Efficiency is used to calculate fuel in Speed Density mode. VE incorporates pressure ratio as measured by MAP sensor in boost (no VE ever above 105%ish)" + webHelp = "https://rusefi.com/s/fuel" + + help = stepperHbridgeHardwareHelp, "Stepper driven by Dual H-bridge" + text = "In case you are using two H-bridges driving 4-wire stepper. H-brigde control signals connected to MCU pins configured here." + + help = idleStepperHwHelp, "Stepper drivern by step motor driver IC" + text = "In case you have some special IC that drives your stepper. MCU to IC control signals (DIR/STEP/EN) configured here" + + help = stepperDirectDriveHardwareHelp, "Stepper driven by 4 Push-Pull/Pull outputs" + text = "In case you have 4/6-wire stepper driven by 4 ECU outputs in Push-Pull or Pull mode. Set ECU outputs used for each phase here." + + help = iatFuelCorrCurveHelp, "IAT Fuel Correction" + text = "Charge temperature estimation coefficient is the more proper way to handle IAT for fuel purposes" + text = "Open question who if anyone needs IAT Fuel Correction when" + + help = fuelHelp, "Fuel Control" + text = "More about fuel control on the web" + webHelp = "https://rusefi.com/s/fuel" + + help = triggerHelp, "Trigger Settings" + text = "More about Trigger Settings on the web" + webHelp = "https://rusefi.com/s/trigger" + + help = etbHelp, "ETB Control" + text = "More about electronic throttle body on the web" + webHelp = "https://rusefi.com/s/etb" + + help = vrThresholdHelp, "VR Sensor Threshold" + text = "This is about rusEFI VR Discrete decoder" + webHelp = "https://rusefi.com/" + + help = tpsTpsHelp, "Acceleration Enrichment" + text = "More about Tps To Tps acceleration on the web" + webHelp = "https://rusefi.com/s/tpstps" + + help = baseHelp, "Base Settings Control" + text = "More about rusefi on the web" + webHelp = "https://rusefi.com/" + + dialog = veTableDialog + topicHelp = "veTableDialogHelp" + panel = veTableTbl, South + + dialog = veTableDialog3D, "VE Table" + topicHelp = "veTableDialogHelp" + panel = veTableMap, South + + dialog = etbPidDialog, "PID settings" + field = "pFactor", etb_pFactor + field = "iFactor", etb_iFactor + field = "dFactor", etb_dFactor + field = "pid min", etb_minValue + field = "pid max", etb_maxValue + field = "iTermMin", etb_iTermMin + field = "iTermMax", etb_iTermMax + + dialog = etbIdleDialog, "ETB Idle" + field = "ETB idle maximum angle", etbIdleThrottleRange + + dialog = etbDialogLeft + field = "https://rusefi.com/s/etb" + field = "Disable ETB if engine is stopped", disableEtbWhenEngineStopped + field = "Disable ETB Motor", pauseEtbControl + field = "H-Bridge #1 function", etbFunctions1 + field = "H-Bridge #2 function", etbFunctions2 + field = "PWM Frequency", etbFreq + field = "Minimum ETB position", etbMinimumPosition + field = "Maximum ETB position", etbMaximumPosition + field = "Jam detection integrator max", etbJamIntegratorLimit + field = "Jam detection timeout period", etbJamTimeout + field = "Duty Averaging Length", etbExpAverageLength + field = "Rate of change Averaging Length", etbRocExpAverageLength + ; we need the term about stepper idle in here, because there's a bug in TS that you can't have different visibility + ; criteria for the same panel when used in multiple places + ; todo: report bug to TS? + ; another todo: split panel into two panels so that we can enable/disable h-bridge #1 separately from h-bridge #2 + + dialog = etbAutotune, "PID Autotune" + field = "First step: calibrate TPS and hit 'Burn'" + commandButton = "Auto Calibrate ETB 1", cmd_etb_auto_calibrate, {etb1configured == 1 && tps1_1AdcChannel != 0 && calibrationMode == 0} + commandButton = "Auto Calibrate ETB 2", cmd_etb_auto_calibrate_2, {etb2configured == 1 && tps2_1AdcChannel != 0 && calibrationMode == 0} + field = "Second step" + commandButton = "Start ETB PID Autotune", cmd_etb_autotune, {(etb1configured == 1 || etb2configured == 1) && calibrationMode = 0} + commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop, {(etb1configured == 1 || etb2configured == 1) && calibrationMode >= 3 && calibrationMode <= 5} + + field = "!Set debug mode below to 'ETB Autotune' to show more detail" + field = "Debug mode", debugMode + + dialog = etbDialogRight + panel = etbIdleDialog,{ etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + commandButton = "Reset ETB", cmd_etb_reset + panel = etbPidDialog, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + panel = etbAutotune, { etbFunctions1 == 1 || etbFunctions1 == 2 || etbFunctions2 == 1 || etbFunctions2 == 2 } + + dialog = etbDialog, "Electronic Throttle Body", border + topicHelp = "etbHelp" + panel = etbDialogLeft, West + panel = etbDialogRight, East + + dialog = testSpark, "Spark" + commandButton = "Spark #1", cmd_test_spk1 + commandButton = "Spark #2", cmd_test_spk2, { cylindersCount >= 2 } + commandButton = "Spark #3", cmd_test_spk3, { cylindersCount >= 3 } + commandButton = "Spark #4", cmd_test_spk4, { cylindersCount >= 4 } + commandButton = "Spark #5", cmd_test_spk5, { cylindersCount >= 5 } + commandButton = "Spark #6", cmd_test_spk6, { cylindersCount >= 6 } + commandButton = "Spark #7", cmd_test_spk7, { cylindersCount >= 7 } + commandButton = "Spark #8", cmd_test_spk8, { cylindersCount >= 8 } + commandButton = "Spark #9", cmd_test_spk9, { cylindersCount >= 9 } + commandButton = "Spark #10", cmd_test_spk10, { cylindersCount >= 10 } + commandButton = "Spark #11", cmd_test_spk11, { cylindersCount >= 11 } + commandButton = "Spark #12", cmd_test_spk12, { cylindersCount >= 12 } + commandButton = "Abort test", cmd_test_cancel + + dialog = testMisc, "Misc" + commandButton = "A/C Relay", cmd_test_ac_relay + commandButton = "Idle Air Valve", cmd_test_idle_valve + commandButton = "Idle Second Air Valve", cmd_test_second_idle_valve + commandButton = "Stop Engine", cmd_stop_engine + commandButton = "Write Config", cmd_write_config + commandButton = "Reset ECU", cmd_reset_controller + commandButton = "Reset to DFU", cmd_dfu + commandButton = "Reset to OpenBLT", cmd_openblt + commandButton = "No flash Burn mode", cmd_burn_without_flash + + ; bench test + dialog = ioTest, "Bench Test & Commands", xAxis + panel = testSpark + panel = testInjectors + panel = testOther + panel = testLuaOut + panel = testMisc + + ; Injectors test + dialog = injTest_l, "Output test modes", yAxis + field = "Iterations", benchTestCount + field = "ON time", benchTestOffTime + field = "OFF time", benchTestOnTime + + dialog = injTest_r, "Reference gauges", yAxis + gauge = VBattGauge,North + gauge = testBenchIterGauge,South + + dialog = injTest, "", xAxis + panel = injTest_l + panel = injTest_r + + dialog = widebandConfig, "rusEFI Wideband Config" + field = "!Please connect exactly one wideband controller before pressing these buttons!" + commandButton = "Update Firmware", cmd_wideband_firmare_update + field = "!These buttons will set ALL connected controllers to the specified index." + field = "!Disconnect all controllers you don't want to set!" + commandButton = "Set Index 0", cmd_set_wideband_idx_0 + commandButton = "Set Index 1", cmd_set_wideband_idx_1 + field = "Wideband CAN bus", widebandOnSecondBus + field = "Force O2 sensor heating", forceO2Heating + + dialog = engineTypeDialog, "Popular vehicles" + field = "!These buttons send a command to rusEFI controller to apply preset values" + field = "!Once you send the command, please reconnect to rusEFI controller in order to read fresh values" + + commandButton = "Honda OBD1", cmd_set_engine_type_HONDA_OBD1 + +; commandButton = "Mitsubishi 3A92", cmd_set_engine_type_MITSUBISHI_3A92 +; commandButton = "Mitsubishi 4G93", cmd_set_engine_type_MITSUBISHI_4G93 + + + + commandButton = "Fuel Bench", cmd_set_engine_type_FUEL_BENCH + + + + + commandButton = "Hellen NB2 36 wheel", cmd_set_engine_type_MAZDA_MIATA_NB2_36 + + + + + + commandButton = "Reset firmware settings", cmd_set_engine_type_default + +; Board->ECU stimulator + dialog = ecuStimulator, "ECU stimulator" + field = "Trigger Simulator", triggerSimulatorRpm + commandButton = "Enable internal trigger simulation", cmd_enable_self_stim + commandButton = "Disable trigger simulation", cmd_disable_self_stim +; field = "" +; field = "digipot spi", digitalPotentiometerSpiDevice +; field = "digipot CS #0", digitalPotentiometerChipSelect1 +; field = "digipot CS #1", digitalPotentiometerChipSelect2 +; field = "digipot CS #2", digitalPotentiometerChipSelect3 +; field = "digipot CS #3", digitalPotentiometerChipSelect4 + field = "" + field = "Logic input channel 1", logicAnalyzerPins1 + field = "Logic input channel 2", logicAnalyzerPins2 + field = "Logic input channel 3", logicAnalyzerPins3 + field = "Logic input channel 4", logicAnalyzerPins4 + field = "" + field = "Engine chart size", engineChartSize + + ; Racing Features->Launch Control + dialog = smLaunchControlWest, "Launch Control Settings" + field = "Enable Launch Control", launchControlEnabled + field = "Activation Mode", launchActivationMode + + field = "Launch Button", launchActivatePin, { launchActivatePin != 0 || (launchActivationMode == 0 && launchControlEnabled == 1)} + field = "Launch Button inverted", launchActivateInverted + field = "Launch Button mode", launchActivatePinMode, {launchActivationMode == 0 && launchControlEnabled == 1} + + field = "Clutch Down", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "Clutch Down inverted", clutchDownPinInverted + field = "Clutch Down mode", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1} + field = "" + +; dead code field = "Rpm Threshold", launchRpmThreshold, {launchControlEnabled == 1} + field = "Speed Threshold", launchSpeedThreshold, {launchControlEnabled == 1} + field = "" + field = "Launch RPM", launchRpm, {launchControlEnabled == 1} + field = "Ignition Retard Adder", launchTimingRpmRange, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut RPM Adder", hardCutRpmRange, {launchControlEnabled == 1} + field = "TPS Threshold", launchTpsThreshold, {launchControlEnabled == 1} + field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1} + field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Fuel Added %", launchFuelAdderPercent, {launchControlEnabled == 1} + field = "Smooth Retard Mode", launchSmoothRetard, {launchControlEnabled == 1 && enableLaunchRetard == 1} + field = "Hard Cut Mode" + field = "Ignition Cut", launchSparkCutEnable, {launchControlEnabled == 1} + field = "Fuel Cut", launchFuelCutEnable, {launchControlEnabled == 1} + + + dialog = smLaunchControl, "", border + panel = smLaunchControlWest, West + panel = launch_control_stateDialog, East + + dialog = antiLagDialog, "AntiLag Settings" + field = "Enable AntiLag", antiLagEnabled + field = "Activation Mode", antiLagActivationMode + field = "Switch Input", ALSActivatePin, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button inverted", ALSActivateInverted, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS Button mode", ALSActivatePinMode, {antiLagActivationMode == 0 && antiLagEnabled == 1} + field = "ALS timeout", ALSMaxDuration, {antiLagEnabled == 1} + field = "Max TPS", ALSMaxTPS, {antiLagEnabled == 1} + field = "Min RPM", ALSMinRPM, {antiLagEnabled == 1} + field = "Max RPM", ALSMaxRPM, {antiLagEnabled == 1} + field = "Min CLT", ALSMinCLT, {antiLagEnabled == 1} + field = "Max CLT", ALSMaxCLT, {antiLagEnabled == 1} + field = "Idle Air Add", ALSIdleAdd, {antiLagEnabled == 1} + field = "ETB Air Add", ALSEtbAdd, {antiLagEnabled == 1} + panel = FuelAdderTableALS + panel = IgnRetardTableALS + panel = IgnSkipTableALS + + + dialog = coastingFuelCutControl, "Coasting Fuel Cutoff Settings" + field = "Enable Coasting Fuel Cutoff", coastingFuelCutEnabled + field = "No cut below CLT", coastingFuelCutClt, {coastingFuelCutEnabled == 1} + field = "RPM cut fuel above", coastingFuelCutRpmHigh, {coastingFuelCutEnabled == 1} + field = "RPM restore fuel below", coastingFuelCutRpmLow, {coastingFuelCutEnabled == 1} + field = "Vehicle speed cut above", coastingFuelCutVssHigh, {coastingFuelCutEnabled == 1} + field = "Vehicle speed restore below", coastingFuelCutVssLow, {coastingFuelCutEnabled == 1} + field = "Cut fuel below TPS", coastingFuelCutTps, {coastingFuelCutEnabled == 1} + field = "Cut fuel below MAP", coastingFuelCutMap, {coastingFuelCutEnabled == 1} + field = "Fuel cut delay", dfcoDelay, {coastingFuelCutEnabled == 1} + field = "Inhibit closed loop fuel after cut", noFuelTrimAfterDfcoTime, {coastingFuelCutEnabled == 1} + + dialog = rotaryDialog, "Rotary" + field = "Enable Trailing Sparks", enableTrailingSparks + field = "Trailing Spark Offset", trailingSparkAngle + field = "Trailing Pin 1", trailingCoilPins1 + field = "Trailing Pin 2", trailingCoilPins2 + field = "Trailing Pin 3", trailingCoilPins3 + field = "Trailing Pin 4", trailingCoilPins4 + + dialog = fancyHardwareDialog, "Fancy Boards" + field = "etbDutyThreshold", etbDutyThreshold + field = "etbDutyShutdownThreshold", etbDutyShutdownThreshold + + dialog = parkingLot2, "Experimental 2" + field = dacOutputPins1, dacOutputPins1 + field = dacOutputPins2, dacOutputPins2 + field = luaCanRxWorkaround, luaCanRxWorkaround + field = "Read RPM matching VSS profile", canInputBCM + field = auxSpeed1Multiplier, auxSpeed1Multiplier + field = useAuxSpeedForSlipRatio, useAuxSpeedForSlipRatio + field = useVssAsSecondWheelSpeed, useVssAsSecondWheelSpeed + field = brakeMeanEffectivePressureDifferential, brakeMeanEffectivePressureDifferential + + dialog = mc33810Dialog, "MC33810 IGN/INJ driver" + field = "SPI settings" + field = "mc33810_cs", mc33810_cs1 + field = "mc33810_csPinMode", mc33810_csPinMode + field = "Chip configuration" + field = "Maximum dwell (IGN pins mode only)", mc33810maxDwellTimer + field = "Disable auto recovery from OV/UV", mc33810DisableRecoveryMode + field = "Disable ING mode if you have no IGBT/MOSFETs on board and no feedback routed to IC" + field = "GD0 output disable IGN mode", mc33810Gpgd0Mode + field = "GD1 output disable IGN mode", mc33810Gpgd1Mode + field = "GD2 output disable IGN mode", mc33810Gpgd2Mode + field = "GD3 output disable IGN mode", mc33810Gpgd3Mode + commandButton = "Reinitialize", cmd_mc33810_init + + indicatorPanel = acrActiveDiagPanel, 1, { 1 } + indicator = { acrActive }, "ACR off", "ACR on", white, black, green, black + + dialog = harleyAcr, "Harley Automatic Compression Release" + field = "Pin", acrPin + field = "Pin 2", acrPin2 + field = "cutFuelInAcr", cutFuelInAcr + field = "#ACR is disabled after the specified number" + field = "#of revolutions, plus degrees of engine phase" + field = "Disable after revolutions", acrRevolutions + field = "Disable after engine phase", acrDisablePhase + commandButton = "ACR #1", cmd_test_acr_valve + commandButton = "ACR #2", cmd_test_acr2_valve + panel = acrActiveDiagPanel + + dialog = kLineDialog, "K Line" + field = kLineBaudRate, kLineBaudRate + field = verboseKLine, verboseKLine + field = hondaK, hondaK + field = kLineDoHondaSend, kLineDoHondaSend + field = kLinePeriodUs, kLinePeriodUs + + dialog = parkingLot, "Experimental/Broken" +; field = uiMode, uiMode + field = auxiliarySetting1, auxiliarySetting1 + field = can1ListenMode, can1ListenMode + field = can2ListenMode, can2ListenMode + field = rethrowHardFault, rethrowHardFault + field = canGpioType, canGpioType + field = "I understand ECU Locking", yesUnderstandLocking + field = "! Use console for unlocking" + field = "Tune read/write password", tuneHidingKey, { yesUnderstandLocking == 1 } + field = verboseQuad, verboseQuad +; field = useEeprom, useEeprom + field = "#System hacks" + field = "vvtBooleanForVerySpecialCases", vvtBooleanForVerySpecialCases + field = watchOutForLinearTime, watchOutForLinearTime + field = "TS over CAN debug", verboseIsoTp + field = "MAP Averaging Logic @", mapAveragingSchedulingAtIndex + field = "showHumanReadableWarning (affects Burn)", showHumanReadableWarning + field = "Warning Message", warning_message + field = "Ford/Toyota redundant TPS mode", useFordRedundantTps + field = "Secondary TPS maximum", tpsSecondaryMaximum, {useFordRedundantTps} + field = "Ford/Toyota redundant PPS mode", useFordRedundantPps + field = "Secondary PPS maximum", ppsSecondaryMaximum, {useFordRedundantPps} + + field = "consumeObdSensors", consumeObdSensors, { canReadEnabled == 1 && canWriteEnabled == 1} + field = "BRZ/FRS/GT86 pedal", allowIdenticalPps + field = "Artificial Misfire", artificialTestMisfire + field = "Always use instant RPM", alwaysInstantRpm + field = vinNumber, vinNumber + field = turbochargerFilter, turbochargerFilter + field = auxFrequencyFilter, auxFrequencyFilter + field = useBiQuadOnAuxSpeedSensors, useBiQuadOnAuxSpeedSensors + field = "TODO KS mode 4569", kickStartCranking + panel = allTriggerDebug + panel = torqueTableTbl + + help = helpGeneral, "rusEFI General Help" + webHelp = "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 + + 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} + commandButton = "HPFP Valve", cmd_test_hpfp_valve + field = "Valve peak current", mc33_hpfp_i_peak, {hpfpCamLobes != 0} + field = "Valve hold current", mc33_hpfp_i_hold, {hpfpCamLobes != 0} + field = "Valve hold off time", mc33_hpfp_i_hold_off, {hpfpCamLobes != 0} + field = "Valve maximum duration", mc33_hpfp_max_hold, {hpfpCamLobes != 0} + field = "Pump volume", hpfpPumpVolume, {hpfpCamLobes != 0} + field = "Minimum angle", hpfpMinAngle, {hpfpCamLobes != 0} + field = "Activation angle", hpfpActivationAngle, {hpfpCamLobes != 0} + field = "Target decay rate", hpfpTargetDecay, {hpfpCamLobes != 0} + field = "Proportional gain", hpfpPidP, {hpfpCamLobes != 0} + field = "Integral gain", hpfpPidI, {hpfpCamLobes != 0} + panel = hpfpDeadtimeCurve, {hpfpCamLobes != 0} + + indicatorPanel = IgnitionDiagPanel, 1, { 1 } + indicator = { ignitorDiagnostic1 > 1 }, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, { Ignition out 1: bitStringValue(outputDiagErrorList, ignitorDiagnostic1 )}, green, black, red, black + indicator = { ignitorDiagnostic2 > 1 }, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, { Ignition out 2: bitStringValue(outputDiagErrorList, ignitorDiagnostic2 )}, green, black, red, black + indicator = { ignitorDiagnostic3 > 1 }, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, { Ignition out 3: bitStringValue(outputDiagErrorList, ignitorDiagnostic3 )}, green, black, red, black + indicator = { ignitorDiagnostic4 > 1 }, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, { Ignition out 4: bitStringValue(outputDiagErrorList, ignitorDiagnostic4 )}, green, black, red, black + indicator = { ignitorDiagnostic5 > 1 }, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, { Ignition out 5: bitStringValue(outputDiagErrorList, ignitorDiagnostic5 )}, green, black, red, black + indicator = { ignitorDiagnostic6 > 1 }, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, { Ignition out 6: bitStringValue(outputDiagErrorList, ignitorDiagnostic6 )}, green, black, red, black + indicator = { ignitorDiagnostic7 > 1 }, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, { Ignition out 7: bitStringValue(outputDiagErrorList, ignitorDiagnostic7 )}, green, black, red, black + indicator = { ignitorDiagnostic8 > 1 }, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, { Ignition out 8: bitStringValue(outputDiagErrorList, ignitorDiagnostic8 )}, green, black, red, black + indicator = { ignitorDiagnostic9 > 1 }, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, { Ignition out 9: bitStringValue(outputDiagErrorList, ignitorDiagnostic9 )}, green, black, red, black + indicator = { ignitorDiagnostic10 > 1 }, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, {Ignition out 10: bitStringValue(outputDiagErrorList, ignitorDiagnostic10)}, green, black, red, black + indicator = { ignitorDiagnostic11 > 1 }, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, {Ignition out 11: bitStringValue(outputDiagErrorList, ignitorDiagnostic11)}, green, black, red, black + indicator = { ignitorDiagnostic12 > 1 }, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, {Ignition out 12: bitStringValue(outputDiagErrorList, ignitorDiagnostic12)}, green, black, red, black + + indicatorPanel = InjectionDiagPanel, 1, { 1 } + indicator = { injectorDiagnostic1 > 1 }, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, { Injector out 1: bitStringValue(outputDiagErrorList, injectorDiagnostic1 )}, green, black, red, black + indicator = { injectorDiagnostic2 > 1 }, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, { Injector out 2: bitStringValue(outputDiagErrorList, injectorDiagnostic2 )}, green, black, red, black + indicator = { injectorDiagnostic3 > 1 }, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, { Injector out 3: bitStringValue(outputDiagErrorList, injectorDiagnostic3 )}, green, black, red, black + indicator = { injectorDiagnostic4 > 1 }, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, { Injector out 4: bitStringValue(outputDiagErrorList, injectorDiagnostic4 )}, green, black, red, black + indicator = { injectorDiagnostic5 > 1 }, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, { Injector out 5: bitStringValue(outputDiagErrorList, injectorDiagnostic5 )}, green, black, red, black + indicator = { injectorDiagnostic6 > 1 }, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, { Injector out 6: bitStringValue(outputDiagErrorList, injectorDiagnostic6 )}, green, black, red, black + indicator = { injectorDiagnostic7 > 1 }, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, { Injector out 7: bitStringValue(outputDiagErrorList, injectorDiagnostic7 )}, green, black, red, black + indicator = { injectorDiagnostic8 > 1 }, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, { Injector out 8: bitStringValue(outputDiagErrorList, injectorDiagnostic8 )}, green, black, red, black + indicator = { injectorDiagnostic9 > 1 }, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, { Injector out 9: bitStringValue(outputDiagErrorList, injectorDiagnostic9 )}, green, black, red, black + indicator = { injectorDiagnostic10 > 1 }, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, {Injector out 10: bitStringValue(outputDiagErrorList, injectorDiagnostic10)}, green, black, red, black + indicator = { injectorDiagnostic11 > 1 }, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, {Injector out 11: bitStringValue(outputDiagErrorList, injectorDiagnostic11)}, green, black, red, black + indicator = { injectorDiagnostic12 > 1 }, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, {Injector out 12: bitStringValue(outputDiagErrorList, injectorDiagnostic12)}, green, black, red, black + + dialog = OutputDiagDialog, "Output diagnostic", xAxis + panel = IgnitionDiagPanel + panel = InjectionDiagPanel + +[Tools] + ;addTool = toolName, PanelName + addTool = veTableGenerator, "VE Table Generator", veTableTbl +#if LAMBDA +#else + addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl +#endif diff --git a/firmware/tunerstudio/generated/rusefi_kin.ini b/firmware/tunerstudio/generated/rusefi_kin.ini index 392fa6b359..f9c7270ba2 100644 --- a/firmware/tunerstudio/generated/rusefi_kin.ini +++ b/firmware/tunerstudio/generated/rusefi_kin.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA2", "PA3", "INVALID", "PD3", "INVALID", "INVALID", "INVALID", "PB12", "PB13", "INVALID", "PE2", "INVALID", "PC14", "PC15", "PC16", "PC17" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:37 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:07 UTC 2024 pageSize = 20860 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_m74_9.ini b/firmware/tunerstudio/generated/rusefi_m74_9.ini index d6a7519578..61acfe82b4 100644 --- a/firmware/tunerstudio/generated/rusefi_m74_9.ini +++ b/firmware/tunerstudio/generated/rusefi_m74_9.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","MAF/MAP sensor signal","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Pedal position sensor 1 signal PPS1","Pedal position sensor 2 signal PPS2","ETB TPS position sensor 1 signal","ETB TPS position sensor 2 signal" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:12 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:43 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index 40e26c9e91..06a3d3563b 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","18 - AN temp 1","23 - AN temp 2","24 - AN temp 3 or Hall Input","22 - AN temp 4 or Hall Input","28 - AN volt 10, Aux Reuse","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8, Aux Reuse","40 - AN volt 9, Aux Reuse","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6, Aux Reuse","30 - AN volt 7" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:11 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:41 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 568b10a564..94b6db95e1 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","18 - AN temp 1","23 - AN temp 2","24 - AN temp 3 or Hall Input","22 - AN temp 4 or Hall Input","28 - AN volt 10, Aux Reuse","INVALID","26 - AN volt 2","31 - AN volt 3","36 - AN volt 8, Aux Reuse","40 - AN volt 9, Aux Reuse","27 - AN volt 1","Battery Sense","19 - AN volt 4","20 - AN volt 5","32 - AN volt 6, Aux Reuse","30 - AN volt 7" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:09 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:39 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_nucleo_h743.ini b/firmware/tunerstudio/generated/rusefi_nucleo_h743.ini index ec3856b50b..5f7cccc7f0 100644 --- a/firmware/tunerstudio/generated/rusefi_nucleo_h743.ini +++ b/firmware/tunerstudio/generated/rusefi_nucleo_h743.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:31 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:03 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index b0d63dffd5..a2f7eb5ffc 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:19 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:50 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index 05d2a6d5d8..1518f74f6c 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:18 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:49 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index e9644a3ff3..d2d5130cef 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:22 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:52 UTC 2024 pageSize = 26236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index e18a91d491..573f31250f 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:20 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:51 UTC 2024 pageSize = 26236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_h7.ini b/firmware/tunerstudio/generated/rusefi_proteus_h7.ini index fe9d28c066..5b1227530f 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_h7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_h7.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","Analog Volt 5","Analog Volt 6","Analog Volt 7","Analog Volt 8","Analog Volt 9","Analog Volt 10","Analog Volt 11","Battery Sense","Analog Temp 3","Analog Temp 4","Analog Volt 1","Analog Volt 2","Analog Volt 3","Analog Volt 4","Analog Temp 1","Analog Temp 2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:23 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:54 UTC 2024 pageSize = 26236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_s105.ini b/firmware/tunerstudio/generated/rusefi_s105.ini index fe451b29cf..b0208d7819 100644 --- a/firmware/tunerstudio/generated/rusefi_s105.ini +++ b/firmware/tunerstudio/generated/rusefi_s105.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","56 - MAP","16 - TPS","19 - Knock","39 - CLT","INVALID","opt 55 - AFR 2","opt 21 - AC Press","18 - AFR 1","13 - Ignition switch in (15)","44 - +12 sense (MR)","INVALID","na 37 - MAF","INVALID","INVALID","40 - IAT" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:14 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:45 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_small-can-board.ini b/firmware/tunerstudio/generated/rusefi_small-can-board.ini index 4a7667507a..ecb5d8f213 100644 --- a/firmware/tunerstudio/generated/rusefi_small-can-board.ini +++ b/firmware/tunerstudio/generated/rusefi_small-can-board.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","INVALID","B2 - Analog/Digital Input","B3 - Analog/Digital Input","B4 - Analog/Digital Input","B5 - Analog/Digital Input","B7 - Analog/Digital Input","C1 - Analog/Digital Input 6","INVALID","INVALID","INVALID","A2 Battery Sense","INVALID","INVALID","C2 - Analog/Digital Input 7","C4 - Analog/Digital Input 8" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:08 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:38 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_stm32f413_nucleo.ini b/firmware/tunerstudio/generated/rusefi_stm32f413_nucleo.ini index d96f596d01..f3525dbb5b 100644 --- a/firmware/tunerstudio/generated/rusefi_stm32f413_nucleo.ini +++ b/firmware/tunerstudio/generated/rusefi_stm32f413_nucleo.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:27 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:59 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_stm32f429_nucleo.ini b/firmware/tunerstudio/generated/rusefi_stm32f429_nucleo.ini index 8e9f5eca6a..58f9aa0870 100644 --- a/firmware/tunerstudio/generated/rusefi_stm32f429_nucleo.ini +++ b/firmware/tunerstudio/generated/rusefi_stm32f429_nucleo.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:28 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:00 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_stm32f767_nucleo.ini b/firmware/tunerstudio/generated/rusefi_stm32f767_nucleo.ini index a679332b0e..33a4583692 100644 --- a/firmware/tunerstudio/generated/rusefi_stm32f767_nucleo.ini +++ b/firmware/tunerstudio/generated/rusefi_stm32f767_nucleo.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:30 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:02 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini index 2651a43a6b..2162e96f1a 100644 --- a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="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" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:39 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:09 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_t-b-g.ini b/firmware/tunerstudio/generated/rusefi_t-b-g.ini index 20acabfc94..e288aa4f15 100644 --- a/firmware/tunerstudio/generated/rusefi_t-b-g.ini +++ b/firmware/tunerstudio/generated/rusefi_t-b-g.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="Disabled", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:15 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:46 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini b/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini index 1769012552..f359865744 100644 --- a/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini +++ b/firmware/tunerstudio/generated/rusefi_tdg-pdm8.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","INVALID","INVALID","INVALID","INVALID","Battery Sense","INVALID","INVALID","INVALID","Sense 7","Sense 8","Sense 1","Sense 2","Sense 3","Sense 4","Sense 5","Sense 6" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:33 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:05 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 diff --git a/firmware/tunerstudio/generated/rusefi_uaefi.ini b/firmware/tunerstudio/generated/rusefi_uaefi.ini index b043348977..acf1324e34 100644 --- a/firmware/tunerstudio/generated/rusefi_uaefi.ini +++ b/firmware/tunerstudio/generated/rusefi_uaefi.ini @@ -98,11 +98,11 @@ enable2ndByteCanID = false #define adc_channel_e_list="NONE","D1 AUX1","C3 AUX2","INVALID","D6 PPS1","D13 TPS1","A7 Voltage From Key","INVALID","C15 Fuel Pressure / AUX3","C14 TPS2","INVALID","D9 MAP","On-board MAP","D16 CLT Coolant","D15 IAT","C4 PPS2" ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:44:57 UTC 2024 +; this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:17:27 UTC 2024 pageSize = 22236 page = 1 -engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",94="HELLEN_NB1_36",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" +engineType = bits, U16, 0, [0:6], 0="DEFAULT_FRANKENSO",22="BMW_M52",50="BMW_M73_MRE",51="BMW_M73_MRE_SLAVE",38="DISCOVERY_PDM",2="DODGE_NEON_1995",46="DODGE_NEON_2003_CRANK",64="DODGE_RAM",61="EEPROM_BENCH_ENGINE",58="ETB_BENCH_ENGINE",35="ET_UNUSED_35",55="ET_UNUSED_55",56="ET_UNUSED_56",105="FERRARI_F136",3="FORD_ASPIRE_1996",11="FORD_COYOTE",14="FORD_ESCORT_GT",7="FORD_INLINE_6_1995",40="FRANKENSO_BMW_M73_F",41="FRANKENSO_MIATA_NA6_MAP",49="FRANKENSO_QA_ENGINE",59="FRANKENSO_TEST_33810",15="FUEL_BENCH",98="GM_SBC",8="GY6_139QMB",6="HARLEY",84="HELLEN_121_NISSAN_4_CYL",72="HELLEN_121_NISSAN_6_CYL",85="HELLEN_121_NISSAN_8_CYL",87="HELLEN_121_NISSAN_ALMERA_N16",71="HELLEN_121_VAG_4_CYL",77="HELLEN_121_VAG_5_CYL",81="HELLEN_121_VAG_8_CYL",78="HELLEN_121_VAG_V6_CYL",79="HELLEN_121_VAG_VR6_CYL",36="HELLEN_128_MERCEDES_4_CYL",88="HELLEN_128_MERCEDES_6_CYL",89="HELLEN_128_MERCEDES_8_CYL",82="HELLEN_154_HYUNDAI_COUPE_BK1",95="HELLEN_154_HYUNDAI_COUPE_BK2",76="HELLEN_154_VAG",75="HELLEN_2CHAN_STIM_QC",74="HELLEN_4CHAN_STIM_QC",57="HELLEN_HONDA_BCM",43="HONDA_600",90="HONDA_K",66="HONDA_OBD1",91="HONDA_OBD2A",104="HYUNDAI_PB",60="L9779_BENCH_ENGINE",54="MAVERICK_X3",34="MAZDA_MIATA_NA6",80="MAZDA_MIATA_NA94",10="MAZDA_MIATA_NA96",83="MAZDA_MIATA_NB1",69="MAZDA_MIATA_NB2",86="MAZDA_MIATA_NB2_36",20="MAZDA_MIATA_NC",33="ME17_9_MISC",1="MIATA_PROTEUS_TCU",99="MINIMAL_PINS",12="MITSUBISHI_3A92",16="MITSUBISHI_4G93",31="MRE_BOARD_NEW_TEST",23="MRE_BODY_CONTROL",68="MRE_M111",4="MRE_SECONDARY_CAN",37="MRE_SUBARU_EJ18",62="MRE_VW_B6",5="NISSAN_PRIMERA",30="PROTEUS_ANALOG_PWM_TEST",63="PROTEUS_BMW_M73",27="PROTEUS_GM_LS_4",25="PROTEUS_LUA_DEMO",17="PROTEUS_M111",103="PROTEUS_NISSAN_VQ35",42="PROTEUS_QC_TEST_BOARD",73="PROTEUS_STIM_QC",39="PROTEUS_VW_B6",29="SACHS",92="SIMULATOR_CONFIG",70="SUBARU_EG33",100="TEST_100",101="TEST_101",18="TEST_33816",28="TEST_CRANK_ENGINE",48="TEST_DC_WASTEGATE_DISCOVERY",26="TEST_ENGINE",45="TEST_ENGINE_VVT",52="TEST_ISSUE_366_BOTH",53="TEST_ISSUE_366_RISE",19="TEST_ROTARY",13="TOYOTA_1NZ_FE",44="TOYOTA_2JZ_GTE_VVTi",102="UNUSED102",24="UNUSED24",47="UNUSED47",67="UNUSED67",9="UNUSED9",93="UNUSED93",94="UNUSED94",21="UNUSED_21",65="UNUSED_65",97="UNUSED_97",32="VW_ABA",96="WASTEGATE_PROTEUS_TEST" startButtonSuppressOnStartUpMs = scalar, U16, 2, "", 1, 0, 0, 32000, 0 sensorSnifferRpmThreshold = scalar, U16, 4, "RPM", 1, 0, 0, 10000, 0 launchRpm = scalar, U16, 6, "rpm", 1, 0, 0, 20000, 0 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 28b66944b8..5d59d6ec9b 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 config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 20:45:39 UTC 2024 +// this file was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt Wed Mar 06 23:18:08 UTC 2024 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -357,7 +357,6 @@ public class Fields { public static final int engine_type_e_HELLEN_2CHAN_STIM_QC = 75; public static final int engine_type_e_HELLEN_4CHAN_STIM_QC = 74; public static final int engine_type_e_HELLEN_HONDA_BCM = 57; - public static final int engine_type_e_HELLEN_NB1_36 = 94; public static final int engine_type_e_HONDA_600 = 43; public static final int engine_type_e_HONDA_K = 90; public static final int engine_type_e_HONDA_OBD1 = 66; @@ -414,6 +413,7 @@ public class Fields { public static final int engine_type_e_UNUSED67 = 67; public static final int engine_type_e_UNUSED9 = 9; public static final int engine_type_e_UNUSED93 = 93; + public static final int engine_type_e_UNUSED94 = 94; public static final int engine_type_e_UNUSED_21 = 21; public static final int engine_type_e_UNUSED_65 = 65; public static final int engine_type_e_UNUSED_97 = 97;