From 9faeb9c142980dd96a719afdd8f1581f371a076b Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 6 Sep 2020 03:38:02 +0000 Subject: [PATCH] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 64 ++++--- .../controllers/algo/rusefi_generated.h | 61 +++---- ...ngine_configuration_generated_structures.h | 64 ++++--- .../generated/fsio_enums_generated.def | 2 +- .../controllers/generated/fsio_getters.def | 2 +- firmware/controllers/generated/fsio_names.def | 2 +- .../controllers/generated/fsio_strings.def | 2 +- .../controllers/generated/rusefi_generated.h | 61 +++---- .../controllers/generated/signature_all.h | 6 +- .../generated/signature_frankenso_na6.h | 6 +- .../controllers/generated/signature_kin.h | 6 +- .../controllers/generated/signature_mre_f4.h | 6 +- .../controllers/generated/signature_mre_f7.h | 6 +- .../generated/signature_prometheus_405.h | 6 +- .../generated/signature_prometheus_469.h | 6 +- .../generated/signature_proteus_f4.h | 6 +- .../generated/signature_proteus_f7.h | 6 +- firmware/tunerstudio/generated/cache.zip | Bin 864593 -> 864899 bytes firmware/tunerstudio/generated/rusefi.ini | 63 +++---- .../generated/rusefi_frankenso_na6.ini | 63 +++---- .../tunerstudio/generated/rusefi_kinetis.ini | 63 +++---- .../tunerstudio/generated/rusefi_mre_f4.ini | 63 +++---- .../tunerstudio/generated/rusefi_mre_f7.ini | 63 +++---- .../generated/rusefi_prometheus_405.ini | 63 +++---- .../generated/rusefi_prometheus_469.ini | 63 +++---- .../generated/rusefi_proteus_f4.ini | 63 +++---- .../generated/rusefi_proteus_f7.ini | 63 +++---- .../com/rusefi/config/generated/Fields.java | 169 +++++++++--------- java_console/rusefi.xml | 2 +- 29 files changed, 548 insertions(+), 502 deletions(-) diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h index 8ff5f2cd94..2a9a979a79 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Sep 04 03:29:33 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Sep 06 03:37:45 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1513,9 +1513,14 @@ struct engine_configuration_s { */ uint8_t acIdleExtraMin; /** + * Optional Radiator Fan used with A/C * offset 762 */ - uint8_t unusedHere[2]; + output_pin_e acFanPin; + /** + * offset 763 + */ + pin_output_mode_e acFanPinMode; /** * offset 764 */ @@ -1826,15 +1831,16 @@ struct engine_configuration_s { bool unusedBit_251_29 : 1; /** offset 976 bit 30 */ - bool unusedBit_284_30 : 1; + bool unusedBit_285_30 : 1; /** offset 976 bit 31 */ - bool unusedBit_284_31 : 1; + bool unusedBit_285_31 : 1; /** * offset 980 */ etb_io etbIo[ETB_COUNT]; /** + * Wastegate control Solenoid * offset 988 */ output_pin_e boostControlPin; @@ -2633,76 +2639,76 @@ struct engine_configuration_s { bool unused1130 : 1; /** offset 2116 bit 8 */ - bool unusedBit_477_8 : 1; + bool unusedBit_478_8 : 1; /** offset 2116 bit 9 */ - bool unusedBit_477_9 : 1; + bool unusedBit_478_9 : 1; /** offset 2116 bit 10 */ - bool unusedBit_477_10 : 1; + bool unusedBit_478_10 : 1; /** offset 2116 bit 11 */ - bool unusedBit_477_11 : 1; + bool unusedBit_478_11 : 1; /** offset 2116 bit 12 */ - bool unusedBit_477_12 : 1; + bool unusedBit_478_12 : 1; /** offset 2116 bit 13 */ - bool unusedBit_477_13 : 1; + bool unusedBit_478_13 : 1; /** offset 2116 bit 14 */ - bool unusedBit_477_14 : 1; + bool unusedBit_478_14 : 1; /** offset 2116 bit 15 */ - bool unusedBit_477_15 : 1; + bool unusedBit_478_15 : 1; /** offset 2116 bit 16 */ - bool unusedBit_477_16 : 1; + bool unusedBit_478_16 : 1; /** offset 2116 bit 17 */ - bool unusedBit_477_17 : 1; + bool unusedBit_478_17 : 1; /** offset 2116 bit 18 */ - bool unusedBit_477_18 : 1; + bool unusedBit_478_18 : 1; /** offset 2116 bit 19 */ - bool unusedBit_477_19 : 1; + bool unusedBit_478_19 : 1; /** offset 2116 bit 20 */ - bool unusedBit_477_20 : 1; + bool unusedBit_478_20 : 1; /** offset 2116 bit 21 */ - bool unusedBit_477_21 : 1; + bool unusedBit_478_21 : 1; /** offset 2116 bit 22 */ - bool unusedBit_477_22 : 1; + bool unusedBit_478_22 : 1; /** offset 2116 bit 23 */ - bool unusedBit_477_23 : 1; + bool unusedBit_478_23 : 1; /** offset 2116 bit 24 */ - bool unusedBit_477_24 : 1; + bool unusedBit_478_24 : 1; /** offset 2116 bit 25 */ - bool unusedBit_477_25 : 1; + bool unusedBit_478_25 : 1; /** offset 2116 bit 26 */ - bool unusedBit_477_26 : 1; + bool unusedBit_478_26 : 1; /** offset 2116 bit 27 */ - bool unusedBit_477_27 : 1; + bool unusedBit_478_27 : 1; /** offset 2116 bit 28 */ - bool unusedBit_477_28 : 1; + bool unusedBit_478_28 : 1; /** offset 2116 bit 29 */ - bool unusedBit_477_29 : 1; + bool unusedBit_478_29 : 1; /** offset 2116 bit 30 */ - bool unusedBit_477_30 : 1; + bool unusedBit_478_30 : 1; /** offset 2116 bit 31 */ - bool unusedBit_477_31 : 1; + bool unusedBit_478_31 : 1; /** * set can_mode X * offset 2120 @@ -3660,4 +3666,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Sep 04 03:29:33 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Sep 06 03:37:45 UTC 2020 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index b7f980159d..1e30fad57a 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -6,6 +6,8 @@ #define accelerometerSpiDevice_offset 2712 #define acCutoffHighRpm_offset 1494 #define acCutoffLowRpm_offset 1492 +#define acFanPin_offset 762 +#define acFanPinMode_offset 763 #define acIdleExtraMin_offset 761 #define acIdleExtraOffset_offset 711 #define acIdleRpmBump_offset 1496 @@ -1146,8 +1148,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 1437541878 +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 1338850663 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1457,7 +1459,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.09.04.kin.1437541878" +#define TS_SIGNATURE "rusEFI 2020.09.06.kin.1338850663" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1503,35 +1505,34 @@ #define unusedAuxVoltage2_TODO_332_offset 2714 #define unusedBit4_1476_offset 1476 #define unusedBit_251_29_offset 976 -#define unusedBit_284_30_offset 976 -#define unusedBit_284_31_offset 976 +#define unusedBit_285_30_offset 976 +#define unusedBit_285_31_offset 976 #define unusedBit_34_31_offset 76 -#define unusedBit_477_10_offset 2116 -#define unusedBit_477_11_offset 2116 -#define unusedBit_477_12_offset 2116 -#define unusedBit_477_13_offset 2116 -#define unusedBit_477_14_offset 2116 -#define unusedBit_477_15_offset 2116 -#define unusedBit_477_16_offset 2116 -#define unusedBit_477_17_offset 2116 -#define unusedBit_477_18_offset 2116 -#define unusedBit_477_19_offset 2116 -#define unusedBit_477_20_offset 2116 -#define unusedBit_477_21_offset 2116 -#define unusedBit_477_22_offset 2116 -#define unusedBit_477_23_offset 2116 -#define unusedBit_477_24_offset 2116 -#define unusedBit_477_25_offset 2116 -#define unusedBit_477_26_offset 2116 -#define unusedBit_477_27_offset 2116 -#define unusedBit_477_28_offset 2116 -#define unusedBit_477_29_offset 2116 -#define unusedBit_477_30_offset 2116 -#define unusedBit_477_31_offset 2116 -#define unusedBit_477_8_offset 2116 -#define unusedBit_477_9_offset 2116 +#define unusedBit_478_10_offset 2116 +#define unusedBit_478_11_offset 2116 +#define unusedBit_478_12_offset 2116 +#define unusedBit_478_13_offset 2116 +#define unusedBit_478_14_offset 2116 +#define unusedBit_478_15_offset 2116 +#define unusedBit_478_16_offset 2116 +#define unusedBit_478_17_offset 2116 +#define unusedBit_478_18_offset 2116 +#define unusedBit_478_19_offset 2116 +#define unusedBit_478_20_offset 2116 +#define unusedBit_478_21_offset 2116 +#define unusedBit_478_22_offset 2116 +#define unusedBit_478_23_offset 2116 +#define unusedBit_478_24_offset 2116 +#define unusedBit_478_25_offset 2116 +#define unusedBit_478_26_offset 2116 +#define unusedBit_478_27_offset 2116 +#define unusedBit_478_28_offset 2116 +#define unusedBit_478_29_offset 2116 +#define unusedBit_478_30_offset 2116 +#define unusedBit_478_31_offset 2116 +#define unusedBit_478_8_offset 2116 +#define unusedBit_478_9_offset 2116 #define unusedFlexFuelSensor_offset 3100 -#define unusedHere_offset 762 #define unusedHereWeHave_offset 1464 #define unusedOldBiquad_offset 2332 #define unusedSomethingWasHere_offset 2417 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 27e38456e1..a67d1a7293 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1513,9 +1513,14 @@ struct engine_configuration_s { */ uint8_t acIdleExtraMin; /** + * Optional Radiator Fan used with A/C * offset 762 */ - uint8_t unusedHere[2]; + output_pin_e acFanPin; + /** + * offset 763 + */ + pin_output_mode_e acFanPinMode; /** * offset 764 */ @@ -1826,15 +1831,16 @@ struct engine_configuration_s { bool unusedBit_251_29 : 1; /** offset 976 bit 30 */ - bool unusedBit_284_30 : 1; + bool unusedBit_285_30 : 1; /** offset 976 bit 31 */ - bool unusedBit_284_31 : 1; + bool unusedBit_285_31 : 1; /** * offset 980 */ etb_io etbIo[ETB_COUNT]; /** + * Wastegate control Solenoid * offset 988 */ output_pin_e boostControlPin; @@ -2633,76 +2639,76 @@ struct engine_configuration_s { bool unused1130 : 1; /** offset 2116 bit 8 */ - bool unusedBit_477_8 : 1; + bool unusedBit_478_8 : 1; /** offset 2116 bit 9 */ - bool unusedBit_477_9 : 1; + bool unusedBit_478_9 : 1; /** offset 2116 bit 10 */ - bool unusedBit_477_10 : 1; + bool unusedBit_478_10 : 1; /** offset 2116 bit 11 */ - bool unusedBit_477_11 : 1; + bool unusedBit_478_11 : 1; /** offset 2116 bit 12 */ - bool unusedBit_477_12 : 1; + bool unusedBit_478_12 : 1; /** offset 2116 bit 13 */ - bool unusedBit_477_13 : 1; + bool unusedBit_478_13 : 1; /** offset 2116 bit 14 */ - bool unusedBit_477_14 : 1; + bool unusedBit_478_14 : 1; /** offset 2116 bit 15 */ - bool unusedBit_477_15 : 1; + bool unusedBit_478_15 : 1; /** offset 2116 bit 16 */ - bool unusedBit_477_16 : 1; + bool unusedBit_478_16 : 1; /** offset 2116 bit 17 */ - bool unusedBit_477_17 : 1; + bool unusedBit_478_17 : 1; /** offset 2116 bit 18 */ - bool unusedBit_477_18 : 1; + bool unusedBit_478_18 : 1; /** offset 2116 bit 19 */ - bool unusedBit_477_19 : 1; + bool unusedBit_478_19 : 1; /** offset 2116 bit 20 */ - bool unusedBit_477_20 : 1; + bool unusedBit_478_20 : 1; /** offset 2116 bit 21 */ - bool unusedBit_477_21 : 1; + bool unusedBit_478_21 : 1; /** offset 2116 bit 22 */ - bool unusedBit_477_22 : 1; + bool unusedBit_478_22 : 1; /** offset 2116 bit 23 */ - bool unusedBit_477_23 : 1; + bool unusedBit_478_23 : 1; /** offset 2116 bit 24 */ - bool unusedBit_477_24 : 1; + bool unusedBit_478_24 : 1; /** offset 2116 bit 25 */ - bool unusedBit_477_25 : 1; + bool unusedBit_478_25 : 1; /** offset 2116 bit 26 */ - bool unusedBit_477_26 : 1; + bool unusedBit_478_26 : 1; /** offset 2116 bit 27 */ - bool unusedBit_477_27 : 1; + bool unusedBit_478_27 : 1; /** offset 2116 bit 28 */ - bool unusedBit_477_28 : 1; + bool unusedBit_478_28 : 1; /** offset 2116 bit 29 */ - bool unusedBit_477_29 : 1; + bool unusedBit_478_29 : 1; /** offset 2116 bit 30 */ - bool unusedBit_477_30 : 1; + bool unusedBit_478_30 : 1; /** offset 2116 bit 31 */ - bool unusedBit_477_31 : 1; + bool unusedBit_478_31 : 1; /** * set can_mode X * offset 2120 @@ -3660,4 +3666,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 483d501941..b84142d097 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index 09f4f359bb..074d1a2a89 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index d2c0401424..0b0543af40 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index c9051882e8..3fe8875c24 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index f007650810..edba27d901 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -6,6 +6,8 @@ #define accelerometerSpiDevice_offset 2712 #define acCutoffHighRpm_offset 1494 #define acCutoffLowRpm_offset 1492 +#define acFanPin_offset 762 +#define acFanPinMode_offset 763 #define acIdleExtraMin_offset 761 #define acIdleExtraOffset_offset 711 #define acIdleRpmBump_offset 1496 @@ -1146,8 +1148,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 2054905942 +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 1612282055 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1457,7 +1459,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.09.04.all.2054905942" +#define TS_SIGNATURE "rusEFI 2020.09.06.all.1612282055" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1503,35 +1505,34 @@ #define unusedAuxVoltage2_TODO_332_offset 2714 #define unusedBit4_1476_offset 1476 #define unusedBit_251_29_offset 976 -#define unusedBit_284_30_offset 976 -#define unusedBit_284_31_offset 976 +#define unusedBit_285_30_offset 976 +#define unusedBit_285_31_offset 976 #define unusedBit_34_31_offset 76 -#define unusedBit_477_10_offset 2116 -#define unusedBit_477_11_offset 2116 -#define unusedBit_477_12_offset 2116 -#define unusedBit_477_13_offset 2116 -#define unusedBit_477_14_offset 2116 -#define unusedBit_477_15_offset 2116 -#define unusedBit_477_16_offset 2116 -#define unusedBit_477_17_offset 2116 -#define unusedBit_477_18_offset 2116 -#define unusedBit_477_19_offset 2116 -#define unusedBit_477_20_offset 2116 -#define unusedBit_477_21_offset 2116 -#define unusedBit_477_22_offset 2116 -#define unusedBit_477_23_offset 2116 -#define unusedBit_477_24_offset 2116 -#define unusedBit_477_25_offset 2116 -#define unusedBit_477_26_offset 2116 -#define unusedBit_477_27_offset 2116 -#define unusedBit_477_28_offset 2116 -#define unusedBit_477_29_offset 2116 -#define unusedBit_477_30_offset 2116 -#define unusedBit_477_31_offset 2116 -#define unusedBit_477_8_offset 2116 -#define unusedBit_477_9_offset 2116 +#define unusedBit_478_10_offset 2116 +#define unusedBit_478_11_offset 2116 +#define unusedBit_478_12_offset 2116 +#define unusedBit_478_13_offset 2116 +#define unusedBit_478_14_offset 2116 +#define unusedBit_478_15_offset 2116 +#define unusedBit_478_16_offset 2116 +#define unusedBit_478_17_offset 2116 +#define unusedBit_478_18_offset 2116 +#define unusedBit_478_19_offset 2116 +#define unusedBit_478_20_offset 2116 +#define unusedBit_478_21_offset 2116 +#define unusedBit_478_22_offset 2116 +#define unusedBit_478_23_offset 2116 +#define unusedBit_478_24_offset 2116 +#define unusedBit_478_25_offset 2116 +#define unusedBit_478_26_offset 2116 +#define unusedBit_478_27_offset 2116 +#define unusedBit_478_28_offset 2116 +#define unusedBit_478_29_offset 2116 +#define unusedBit_478_30_offset 2116 +#define unusedBit_478_31_offset 2116 +#define unusedBit_478_8_offset 2116 +#define unusedBit_478_9_offset 2116 #define unusedFlexFuelSensor_offset 3100 -#define unusedHere_offset 762 #define unusedHereWeHave_offset 1464 #define unusedOldBiquad_offset 2332 #define unusedSomethingWasHere_offset 2417 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index ff348effcd..323a06a658 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 2054905942 -#define TS_SIGNATURE "rusEFI 2020.09.04.all.2054905942" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 1612282055 +#define TS_SIGNATURE "rusEFI 2020.09.06.all.1612282055" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index e35bdfecfb..166d8dadc8 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD frankenso_na6 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 2999412063 -#define TS_SIGNATURE "rusEFI 2020.09.04.frankenso_na6.2999412063" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 2829417934 +#define TS_SIGNATURE "rusEFI 2020.09.06.frankenso_na6.2829417934" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index cef71622e5..7fb6e6665e 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 1437541878 -#define TS_SIGNATURE "rusEFI 2020.09.04.kin.1437541878" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 1338850663 +#define TS_SIGNATURE "rusEFI 2020.09.06.kin.1338850663" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 92a737861d..83c86f1f61 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f4 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 2178282765 -#define TS_SIGNATURE "rusEFI 2020.09.04.mre_f4.2178282765" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 2612522396 +#define TS_SIGNATURE "rusEFI 2020.09.06.mre_f4.2612522396" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 305cd27946..cda152bfbd 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre_f7 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 2178282765 -#define TS_SIGNATURE "rusEFI 2020.09.04.mre_f7.2178282765" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 2612522396 +#define TS_SIGNATURE "rusEFI 2020.09.06.mre_f7.2612522396" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 1ef65b0aac..58fdeaf75e 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_405 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 1837965800 -#define TS_SIGNATURE "rusEFI 2020.09.04.prometheus_405.1837965800" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 2012166521 +#define TS_SIGNATURE "rusEFI 2020.09.06.prometheus_405.2012166521" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 0b2da3f385..c54f8fb23c 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD prometheus_469 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 1837965800 -#define TS_SIGNATURE "rusEFI 2020.09.04.prometheus_469.1837965800" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 2012166521 +#define TS_SIGNATURE "rusEFI 2020.09.06.prometheus_469.2012166521" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 640cb56a55..9c973f7df0 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f4 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 1327836947 -#define TS_SIGNATURE "rusEFI 2020.09.04.proteus_f4.1327836947" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 1430730626 +#define TS_SIGNATURE "rusEFI 2020.09.06.proteus_f4.1430730626" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 546d388e5c..a31510605d 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD proteus_f7 -#define SIGNATURE_DATE 2020.09.04 -#define SIGNATURE_HASH 1327836947 -#define TS_SIGNATURE "rusEFI 2020.09.04.proteus_f7.1327836947" +#define SIGNATURE_DATE 2020.09.06 +#define SIGNATURE_HASH 1430730626 +#define TS_SIGNATURE "rusEFI 2020.09.06.proteus_f7.1430730626" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index a7446ff1c958e24ceae428ada23af1068be6217f..a0ea23a2c9d92e9921437f90e52aa1c41a46287b 100644 GIT binary patch delta 250593 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 HvA_Kv^$Ha_ delta 248994 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

lOUci2^7AD5SxJ7LCO^-TpW42n?~By8zOOi; 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 O5Xw0*Fvz~=0rCI?sF-j7 diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index df097d7837..9abedf522b 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.all.2054905942" + signature = "rusEFI 2020.09.06.all.1612282055" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.all.2054905942" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.all.1612282055" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index c34e89966b..8c63683d73 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.frankenso_na6.2999412063" + signature = "rusEFI 2020.09.06.frankenso_na6.2829417934" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.frankenso_na6.2999412063" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.frankenso_na6.2829417934" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:26 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:38 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "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","Injector 3Z","Injector 3Y","Injector 3W","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Coil 1H","INVALID","Coil 1F","INVALID","INVALID","INVALID","Injector 2M","INVALID","INVALID","INVALID","INVALID","INVALID","Injector 3U","INVALID","Injector 3X","INVALID","Injector 2N","Coil 1O","Coil 1P","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Injector 3V","Injector 3S","Injector 3T","Injector 2O","Injector 2P","INVALID","Coil 1L","INVALID","Coil 1I","INVALID","Coil 1M","INVALID","Coil 1G","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index 05045bb3a2..976b39ab67 100644 --- a/firmware/tunerstudio/generated/rusefi_kinetis.ini +++ b/firmware/tunerstudio/generated/rusefi_kinetis.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.kin.1437541878" + signature = "rusEFI 2020.09.06.kin.1338850663" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.kin.1437541878" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.kin.1338850663" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Sep 04 03:29:33 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Sep 06 03:37:45 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "N/A", "N/A", "PA10", "PA11", "PA12", "PA13", "N/A", "N/A", "N/A", "N/A", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "N/A", "N/A", "N/A", "N/A", "PB12", "PB13", "N/A", "N/A", "N/A", "N/A", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "N/A", "N/A", "N/A", "N/A", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "PD15", "PD16", "N/A", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index 3c46797956..43e877a8d0 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.mre_f4.2178282765" + signature = "rusEFI 2020.09.06.mre_f4.2612522396" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.mre_f4.2178282765" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.mre_f4.2612522396" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:24 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:36 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","AUX AV10 reuse","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX J2 PA15","AUX AV8 reuse","AUX AV9 reuse","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX J2 PB8","AUX J2 PB9","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX AV6 reuse","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX J2 PC12","INVALID","INVALID","INVALID","INVALID","12 - Ignition 4","11 - Ignition 3","10 - Ignition 2","9 - Ignition 1","INVALID","13 - GP Out 6","14 - GP Out 5","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","35 - GP Out 1","7 - Lowside 1","3 - Lowside 2","42 - Injector 4","41 - Injector 3","38 - Injector 2","37 - Injector 1","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","34 - GP Out 2","33 - GP Out 3","43 - GP Out 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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 49465fab64..7fa2654541 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.mre_f7.2178282765" + signature = "rusEFI 2020.09.06.mre_f7.2612522396" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.mre_f7.2178282765" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.mre_f7.2612522396" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:23 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:35 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","AUX AV10 reuse","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX J2 PA15","AUX AV8 reuse","AUX AV9 reuse","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX J2 PB8","AUX J2 PB9","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX AV6 reuse","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","AUX J2 PC12","INVALID","INVALID","INVALID","INVALID","12 - Ignition 4","11 - Ignition 3","10 - Ignition 2","9 - Ignition 1","INVALID","13 - GP Out 6","14 - GP Out 5","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","35 - GP Out 1","7 - Lowside 1","3 - Lowside 2","42 - Injector 4","41 - Injector 3","38 - Injector 2","37 - Injector 1","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","34 - GP Out 2","33 - GP Out 3","43 - GP Out 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", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index 25adccb7f9..8be01e3146 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.prometheus_405.1837965800" + signature = "rusEFI 2020.09.06.prometheus_405.2012166521" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.prometheus_405.1837965800" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.prometheus_405.2012166521" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:29 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:41 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "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","Injector 3Z","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index 7ddbbc136e..fbb5e59f2a 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.prometheus_469.1837965800" + signature = "rusEFI 2020.09.06.prometheus_469.2012166521" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.prometheus_469.1837965800" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.prometheus_469.2012166521" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:27 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:39 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "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","Injector 3Z","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index 76466a68ea..f42ed383e9 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.proteus_f4.1327836947" + signature = "rusEFI 2020.09.06.proteus_f4.1430730626" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.proteus_f4.1327836947" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.proteus_f4.1430730626" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:31 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:43 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Highside 2","Highside 1","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Lowside 8","Lowside 9","Lowside 10","Lowside 11","Lowside 12","Lowside 13","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Ign 5","Ign 4","Ign 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Ign 2","Ign 1","INVALID","INVALID","Lowside 1","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Highside 4","Highside 3","Lowside 14","Lowside 15","Lowside 16","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Ign 12","Ign 11","Ign 10","Ign 9","Ign 8","Ign 7","Ign 6","Lowside 2","Lowside 3","Lowside 4","Lowside 5","Lowside 6","Lowside 7","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index 60dfb28158..726cecf2a8 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.09.04.proteus_f7.1327836947" + signature = "rusEFI 2020.09.06.proteus_f7.1430730626" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.09.04.proteus_f7.1327836947" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.09.06.proteus_f7.1430730626" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:30 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:42 UTC 2020 pageSize = 20000 page = 1 @@ -396,7 +396,8 @@ page = 1 verboseCanBaseAddress = scalar, U32, 756, "", 1.0, 0, 0, 536870911, 0 mc33_hvolt = scalar, U08, 760, "v", 1.0, 0, 40, 70, 0 acIdleExtraMin = scalar, U08, 761, "Percent", 1.0, 0, 0, 255, 0 - unusedHere = array, U08, 762, [2], "units", 1.0, 0, -20, 100, 0 + acFanPin = bits, U08, 762, [0:7], "NONE","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Highside 2","Highside 1","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Lowside 8","Lowside 9","Lowside 10","Lowside 11","Lowside 12","Lowside 13","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Ign 5","Ign 4","Ign 3","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Ign 2","Ign 1","INVALID","INVALID","Lowside 1","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Highside 4","Highside 3","Lowside 14","Lowside 15","Lowside 16","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","Ign 12","Ign 11","Ign 10","Ign 9","Ign 8","Ign 7","Ign 6","Lowside 2","Lowside 3","Lowside 4","Lowside 5","Lowside 6","Lowside 7","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + acFanPinMode = bits, U08, 763, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes1 = bits, U08, 764, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes2 = bits, U08, 765, [0:1], "default", "default inverted", "open collector", "open collector inverted" gpioPinModes3 = bits, U08, 766, [0:1], "default", "default inverted", "open collector", "open collector inverted" @@ -558,8 +559,8 @@ page = 1 knockBankCyl12 = bits, U32, 976, [27:27], "Channel 1", "Channel 2" tcuEnabled = bits, U32, 976, [28:28], "false", "true" unusedBit_251_29 = bits, U32, 976, [29:29], "false", "true" - unusedBit_284_30 = bits, U32, 976, [30:30], "false", "true" - unusedBit_284_31 = bits, U32, 976, [31:31], "false", "true" + unusedBit_285_30 = bits, U32, 976, [30:30], "false", "true" + unusedBit_285_31 = bits, U32, 976, [31:31], "false", "true" etbIo1_directionPin1 = bits, U08, 980, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_directionPin2 = bits, U08, 981, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" etbIo1_controlPin1 = bits, U08, 982, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -831,30 +832,30 @@ page = 1 unused1128 = bits, U32, 2116, [5:5], "false", "true" unused1129 = bits, U32, 2116, [6:6], "false", "true" unused1130 = bits, U32, 2116, [7:7], "false", "true" - unusedBit_477_8 = bits, U32, 2116, [8:8], "false", "true" - unusedBit_477_9 = bits, U32, 2116, [9:9], "false", "true" - unusedBit_477_10 = bits, U32, 2116, [10:10], "false", "true" - unusedBit_477_11 = bits, U32, 2116, [11:11], "false", "true" - unusedBit_477_12 = bits, U32, 2116, [12:12], "false", "true" - unusedBit_477_13 = bits, U32, 2116, [13:13], "false", "true" - unusedBit_477_14 = bits, U32, 2116, [14:14], "false", "true" - unusedBit_477_15 = bits, U32, 2116, [15:15], "false", "true" - unusedBit_477_16 = bits, U32, 2116, [16:16], "false", "true" - unusedBit_477_17 = bits, U32, 2116, [17:17], "false", "true" - unusedBit_477_18 = bits, U32, 2116, [18:18], "false", "true" - unusedBit_477_19 = bits, U32, 2116, [19:19], "false", "true" - unusedBit_477_20 = bits, U32, 2116, [20:20], "false", "true" - unusedBit_477_21 = bits, U32, 2116, [21:21], "false", "true" - unusedBit_477_22 = bits, U32, 2116, [22:22], "false", "true" - unusedBit_477_23 = bits, U32, 2116, [23:23], "false", "true" - unusedBit_477_24 = bits, U32, 2116, [24:24], "false", "true" - unusedBit_477_25 = bits, U32, 2116, [25:25], "false", "true" - unusedBit_477_26 = bits, U32, 2116, [26:26], "false", "true" - unusedBit_477_27 = bits, U32, 2116, [27:27], "false", "true" - unusedBit_477_28 = bits, U32, 2116, [28:28], "false", "true" - unusedBit_477_29 = bits, U32, 2116, [29:29], "false", "true" - unusedBit_477_30 = bits, U32, 2116, [30:30], "false", "true" - unusedBit_477_31 = bits, U32, 2116, [31:31], "false", "true" + unusedBit_478_8 = bits, U32, 2116, [8:8], "false", "true" + unusedBit_478_9 = bits, U32, 2116, [9:9], "false", "true" + unusedBit_478_10 = bits, U32, 2116, [10:10], "false", "true" + unusedBit_478_11 = bits, U32, 2116, [11:11], "false", "true" + unusedBit_478_12 = bits, U32, 2116, [12:12], "false", "true" + unusedBit_478_13 = bits, U32, 2116, [13:13], "false", "true" + unusedBit_478_14 = bits, U32, 2116, [14:14], "false", "true" + unusedBit_478_15 = bits, U32, 2116, [15:15], "false", "true" + unusedBit_478_16 = bits, U32, 2116, [16:16], "false", "true" + unusedBit_478_17 = bits, U32, 2116, [17:17], "false", "true" + unusedBit_478_18 = bits, U32, 2116, [18:18], "false", "true" + unusedBit_478_19 = bits, U32, 2116, [19:19], "false", "true" + unusedBit_478_20 = bits, U32, 2116, [20:20], "false", "true" + unusedBit_478_21 = bits, U32, 2116, [21:21], "false", "true" + unusedBit_478_22 = bits, U32, 2116, [22:22], "false", "true" + unusedBit_478_23 = bits, U32, 2116, [23:23], "false", "true" + unusedBit_478_24 = bits, U32, 2116, [24:24], "false", "true" + unusedBit_478_25 = bits, U32, 2116, [25:25], "false", "true" + unusedBit_478_26 = bits, U32, 2116, [26:26], "false", "true" + unusedBit_478_27 = bits, U32, 2116, [27:27], "false", "true" + unusedBit_478_28 = bits, U32, 2116, [28:28], "false", "true" + unusedBit_478_29 = bits, U32, 2116, [29:29], "false", "true" + unusedBit_478_30 = bits, U32, 2116, [30:30], "false", "true" + unusedBit_478_31 = bits, U32, 2116, [31:31], "false", "true" can2NbcType = bits, U32, 2120, [0:3], "None", "FIAT", "VAG" , "MAZDA RX8", "BMW", "W202", "BMW E90", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2TxPin = bits, U08, 2124, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" can2RxPin = bits, U08, 2125, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" @@ -1275,6 +1276,7 @@ page = 1 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." useETBforIdleControl = "This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle." acIdleExtraMin = "Additional idle PID minValue while A/C is active" + acFanPin = "Optional Radiator Fan used with A/C" sdCardPeriodMs = "SD card logging period, in milliseconds" triggerErrorPin = "This pin is used for debugging - snap a logic analyzer on it and see if it's ever high" cdmInputPin = "Saab Combustion Detection Module knock signal input pin\nalso known as Saab Ion Sensing Module" @@ -1283,6 +1285,7 @@ page = 1 stftIgnoreErrorMagnitude = "If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.;" dcMotorIdleValve = "Used on some German vehicles around late 90s: cable-operated throttle and DC motor idle air valve.\nSet the primary TPS to the cable-operated throttle's sensor\nSet the secondary TPS to the mini ETB's position sensor(s)." consumeObdSensors = "This property is useful if using rusEFI as TCM or BCM only\nenable consumeObdSensors" + boostControlPin = "Wastegate control Solenoid" launchSpeedTreshold = "Disabled above this speed" launchRpmTreshold = "Disabled below this rpm" launchTimingRpmRange = "Range from Launch Rpm for Timing Retard to activate" 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 b13afa291c..69b00f7afe 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Sep 04 03:29:21 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Sep 06 03:37:33 UTC 2020 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -10,6 +10,8 @@ public class Fields { public static final int accelerometerSpiDevice_offset = 2712; public static final int acCutoffHighRpm_offset = 1494; public static final int acCutoffLowRpm_offset = 1492; + public static final int acFanPin_offset = 762; + public static final int acFanPinMode_offset = 763; public static final int acIdleExtraMin_offset = 761; public static final int acIdleExtraOffset_offset = 711; public static final int acIdleRpmBump_offset = 1496; @@ -1104,7 +1106,7 @@ public class Fields { public static final int servoOutputPins8_offset = 3147; public static final int showHumanReadableWarning_offset = 976; public static final int showSdCardWarning_offset = 76; - public static final int SIGNATURE_HASH = 2054905942; + public static final int SIGNATURE_HASH = 1612282055; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -1364,7 +1366,7 @@ public class Fields { public static final char TS_SD_R_COMMAND = 'r'; public static final char TS_SD_W_COMMAND = 'w'; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI 2020.09.04.all.2054905942"; + public static final String TS_SIGNATURE = "rusEFI 2020.09.06.all.1612282055"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final int tunerStudioSerialSpeed_offset = 728; public static final int twoWireBatchIgnition_offset = 1476; @@ -1407,35 +1409,34 @@ public class Fields { public static final int unusedAuxVoltage2_TODO_332_offset = 2714; public static final int unusedBit4_1476_offset = 1476; public static final int unusedBit_251_29_offset = 976; - public static final int unusedBit_284_30_offset = 976; - public static final int unusedBit_284_31_offset = 976; + public static final int unusedBit_285_30_offset = 976; + public static final int unusedBit_285_31_offset = 976; public static final int unusedBit_34_31_offset = 76; - public static final int unusedBit_477_10_offset = 2116; - public static final int unusedBit_477_11_offset = 2116; - public static final int unusedBit_477_12_offset = 2116; - public static final int unusedBit_477_13_offset = 2116; - public static final int unusedBit_477_14_offset = 2116; - public static final int unusedBit_477_15_offset = 2116; - public static final int unusedBit_477_16_offset = 2116; - public static final int unusedBit_477_17_offset = 2116; - public static final int unusedBit_477_18_offset = 2116; - public static final int unusedBit_477_19_offset = 2116; - public static final int unusedBit_477_20_offset = 2116; - public static final int unusedBit_477_21_offset = 2116; - public static final int unusedBit_477_22_offset = 2116; - public static final int unusedBit_477_23_offset = 2116; - public static final int unusedBit_477_24_offset = 2116; - public static final int unusedBit_477_25_offset = 2116; - public static final int unusedBit_477_26_offset = 2116; - public static final int unusedBit_477_27_offset = 2116; - public static final int unusedBit_477_28_offset = 2116; - public static final int unusedBit_477_29_offset = 2116; - public static final int unusedBit_477_30_offset = 2116; - public static final int unusedBit_477_31_offset = 2116; - public static final int unusedBit_477_8_offset = 2116; - public static final int unusedBit_477_9_offset = 2116; + public static final int unusedBit_478_10_offset = 2116; + public static final int unusedBit_478_11_offset = 2116; + public static final int unusedBit_478_12_offset = 2116; + public static final int unusedBit_478_13_offset = 2116; + public static final int unusedBit_478_14_offset = 2116; + public static final int unusedBit_478_15_offset = 2116; + public static final int unusedBit_478_16_offset = 2116; + public static final int unusedBit_478_17_offset = 2116; + public static final int unusedBit_478_18_offset = 2116; + public static final int unusedBit_478_19_offset = 2116; + public static final int unusedBit_478_20_offset = 2116; + public static final int unusedBit_478_21_offset = 2116; + public static final int unusedBit_478_22_offset = 2116; + public static final int unusedBit_478_23_offset = 2116; + public static final int unusedBit_478_24_offset = 2116; + public static final int unusedBit_478_25_offset = 2116; + public static final int unusedBit_478_26_offset = 2116; + public static final int unusedBit_478_27_offset = 2116; + public static final int unusedBit_478_28_offset = 2116; + public static final int unusedBit_478_29_offset = 2116; + public static final int unusedBit_478_30_offset = 2116; + public static final int unusedBit_478_31_offset = 2116; + public static final int unusedBit_478_8_offset = 2116; + public static final int unusedBit_478_9_offset = 2116; public static final int unusedFlexFuelSensor_offset = 3100; - public static final int unusedHere_offset = 762; public static final int unusedHereWeHave_offset = 1464; public static final int unusedOldBiquad_offset = 2332; public static final int unusedSomethingWasHere_offset = 2417; @@ -1820,6 +1821,8 @@ public class Fields { public static final Field VERBOSECANBASEADDRESS = Field.create("VERBOSECANBASEADDRESS", 756, FieldType.INT); public static final Field MC33_HVOLT = Field.create("MC33_HVOLT", 760, FieldType.INT8); public static final Field ACIDLEEXTRAMIN = Field.create("ACIDLEEXTRAMIN", 761, FieldType.INT8); + public static final Field ACFANPIN = Field.create("ACFANPIN", 762, FieldType.INT8, output_pin_e); + public static final Field ACFANPINMODE = Field.create("ACFANPINMODE", 763, FieldType.INT8, pin_output_mode_e); public static final Field GPIOPINMODES1 = Field.create("GPIOPINMODES1", 764, FieldType.INT8, pin_output_mode_e); public static final Field GPIOPINMODES2 = Field.create("GPIOPINMODES2", 765, FieldType.INT8, pin_output_mode_e); public static final Field GPIOPINMODES3 = Field.create("GPIOPINMODES3", 766, FieldType.INT8, pin_output_mode_e); @@ -1983,8 +1986,8 @@ public class Fields { public static final Field KNOCKBANKCYL12 = Field.create("KNOCKBANKCYL12", 976, FieldType.BIT, 27); public static final Field TCUENABLED = Field.create("TCUENABLED", 976, FieldType.BIT, 28); public static final Field UNUSEDBIT_251_29 = Field.create("UNUSEDBIT_251_29", 976, FieldType.BIT, 29); - public static final Field UNUSEDBIT_284_30 = Field.create("UNUSEDBIT_284_30", 976, FieldType.BIT, 30); - public static final Field UNUSEDBIT_284_31 = Field.create("UNUSEDBIT_284_31", 976, FieldType.BIT, 31); + public static final Field UNUSEDBIT_285_30 = Field.create("UNUSEDBIT_285_30", 976, FieldType.BIT, 30); + public static final Field UNUSEDBIT_285_31 = Field.create("UNUSEDBIT_285_31", 976, FieldType.BIT, 31); public static final Field ETBIO1_DIRECTIONPIN1 = Field.create("ETBIO1_DIRECTIONPIN1", 980, FieldType.INT8, brain_pin_e); public static final Field ETBIO1_DIRECTIONPIN2 = Field.create("ETBIO1_DIRECTIONPIN2", 981, FieldType.INT8, brain_pin_e); public static final Field ETBIO1_CONTROLPIN1 = Field.create("ETBIO1_CONTROLPIN1", 982, FieldType.INT8, brain_pin_e); @@ -2251,30 +2254,30 @@ public class Fields { public static final Field UNUSED1128 = Field.create("UNUSED1128", 2116, FieldType.BIT, 5); public static final Field UNUSED1129 = Field.create("UNUSED1129", 2116, FieldType.BIT, 6); public static final Field UNUSED1130 = Field.create("UNUSED1130", 2116, FieldType.BIT, 7); - public static final Field UNUSEDBIT_477_8 = Field.create("UNUSEDBIT_477_8", 2116, FieldType.BIT, 8); - public static final Field UNUSEDBIT_477_9 = Field.create("UNUSEDBIT_477_9", 2116, FieldType.BIT, 9); - public static final Field UNUSEDBIT_477_10 = Field.create("UNUSEDBIT_477_10", 2116, FieldType.BIT, 10); - public static final Field UNUSEDBIT_477_11 = Field.create("UNUSEDBIT_477_11", 2116, FieldType.BIT, 11); - public static final Field UNUSEDBIT_477_12 = Field.create("UNUSEDBIT_477_12", 2116, FieldType.BIT, 12); - public static final Field UNUSEDBIT_477_13 = Field.create("UNUSEDBIT_477_13", 2116, FieldType.BIT, 13); - public static final Field UNUSEDBIT_477_14 = Field.create("UNUSEDBIT_477_14", 2116, FieldType.BIT, 14); - public static final Field UNUSEDBIT_477_15 = Field.create("UNUSEDBIT_477_15", 2116, FieldType.BIT, 15); - public static final Field UNUSEDBIT_477_16 = Field.create("UNUSEDBIT_477_16", 2116, FieldType.BIT, 16); - public static final Field UNUSEDBIT_477_17 = Field.create("UNUSEDBIT_477_17", 2116, FieldType.BIT, 17); - public static final Field UNUSEDBIT_477_18 = Field.create("UNUSEDBIT_477_18", 2116, FieldType.BIT, 18); - public static final Field UNUSEDBIT_477_19 = Field.create("UNUSEDBIT_477_19", 2116, FieldType.BIT, 19); - public static final Field UNUSEDBIT_477_20 = Field.create("UNUSEDBIT_477_20", 2116, FieldType.BIT, 20); - public static final Field UNUSEDBIT_477_21 = Field.create("UNUSEDBIT_477_21", 2116, FieldType.BIT, 21); - public static final Field UNUSEDBIT_477_22 = Field.create("UNUSEDBIT_477_22", 2116, FieldType.BIT, 22); - public static final Field UNUSEDBIT_477_23 = Field.create("UNUSEDBIT_477_23", 2116, FieldType.BIT, 23); - public static final Field UNUSEDBIT_477_24 = Field.create("UNUSEDBIT_477_24", 2116, FieldType.BIT, 24); - public static final Field UNUSEDBIT_477_25 = Field.create("UNUSEDBIT_477_25", 2116, FieldType.BIT, 25); - public static final Field UNUSEDBIT_477_26 = Field.create("UNUSEDBIT_477_26", 2116, FieldType.BIT, 26); - public static final Field UNUSEDBIT_477_27 = Field.create("UNUSEDBIT_477_27", 2116, FieldType.BIT, 27); - public static final Field UNUSEDBIT_477_28 = Field.create("UNUSEDBIT_477_28", 2116, FieldType.BIT, 28); - public static final Field UNUSEDBIT_477_29 = Field.create("UNUSEDBIT_477_29", 2116, FieldType.BIT, 29); - public static final Field UNUSEDBIT_477_30 = Field.create("UNUSEDBIT_477_30", 2116, FieldType.BIT, 30); - public static final Field UNUSEDBIT_477_31 = Field.create("UNUSEDBIT_477_31", 2116, FieldType.BIT, 31); + public static final Field UNUSEDBIT_478_8 = Field.create("UNUSEDBIT_478_8", 2116, FieldType.BIT, 8); + public static final Field UNUSEDBIT_478_9 = Field.create("UNUSEDBIT_478_9", 2116, FieldType.BIT, 9); + public static final Field UNUSEDBIT_478_10 = Field.create("UNUSEDBIT_478_10", 2116, FieldType.BIT, 10); + public static final Field UNUSEDBIT_478_11 = Field.create("UNUSEDBIT_478_11", 2116, FieldType.BIT, 11); + public static final Field UNUSEDBIT_478_12 = Field.create("UNUSEDBIT_478_12", 2116, FieldType.BIT, 12); + public static final Field UNUSEDBIT_478_13 = Field.create("UNUSEDBIT_478_13", 2116, FieldType.BIT, 13); + public static final Field UNUSEDBIT_478_14 = Field.create("UNUSEDBIT_478_14", 2116, FieldType.BIT, 14); + public static final Field UNUSEDBIT_478_15 = Field.create("UNUSEDBIT_478_15", 2116, FieldType.BIT, 15); + public static final Field UNUSEDBIT_478_16 = Field.create("UNUSEDBIT_478_16", 2116, FieldType.BIT, 16); + public static final Field UNUSEDBIT_478_17 = Field.create("UNUSEDBIT_478_17", 2116, FieldType.BIT, 17); + public static final Field UNUSEDBIT_478_18 = Field.create("UNUSEDBIT_478_18", 2116, FieldType.BIT, 18); + public static final Field UNUSEDBIT_478_19 = Field.create("UNUSEDBIT_478_19", 2116, FieldType.BIT, 19); + public static final Field UNUSEDBIT_478_20 = Field.create("UNUSEDBIT_478_20", 2116, FieldType.BIT, 20); + public static final Field UNUSEDBIT_478_21 = Field.create("UNUSEDBIT_478_21", 2116, FieldType.BIT, 21); + public static final Field UNUSEDBIT_478_22 = Field.create("UNUSEDBIT_478_22", 2116, FieldType.BIT, 22); + public static final Field UNUSEDBIT_478_23 = Field.create("UNUSEDBIT_478_23", 2116, FieldType.BIT, 23); + public static final Field UNUSEDBIT_478_24 = Field.create("UNUSEDBIT_478_24", 2116, FieldType.BIT, 24); + public static final Field UNUSEDBIT_478_25 = Field.create("UNUSEDBIT_478_25", 2116, FieldType.BIT, 25); + public static final Field UNUSEDBIT_478_26 = Field.create("UNUSEDBIT_478_26", 2116, FieldType.BIT, 26); + public static final Field UNUSEDBIT_478_27 = Field.create("UNUSEDBIT_478_27", 2116, FieldType.BIT, 27); + public static final Field UNUSEDBIT_478_28 = Field.create("UNUSEDBIT_478_28", 2116, FieldType.BIT, 28); + public static final Field UNUSEDBIT_478_29 = Field.create("UNUSEDBIT_478_29", 2116, FieldType.BIT, 29); + public static final Field UNUSEDBIT_478_30 = Field.create("UNUSEDBIT_478_30", 2116, FieldType.BIT, 30); + public static final Field UNUSEDBIT_478_31 = Field.create("UNUSEDBIT_478_31", 2116, FieldType.BIT, 31); public static final Field CAN2NBCTYPE = Field.create("CAN2NBCTYPE", 2120, FieldType.INT); public static final Field CAN2TXPIN = Field.create("CAN2TXPIN", 2124, FieldType.INT8, brain_pin_e); public static final Field CAN2RXPIN = Field.create("CAN2RXPIN", 2125, FieldType.INT8, brain_pin_e); @@ -2848,6 +2851,8 @@ public class Fields { VERBOSECANBASEADDRESS, MC33_HVOLT, ACIDLEEXTRAMIN, + ACFANPIN, + ACFANPINMODE, GPIOPINMODES1, GPIOPINMODES2, GPIOPINMODES3, @@ -3009,8 +3014,8 @@ public class Fields { KNOCKBANKCYL12, TCUENABLED, UNUSEDBIT_251_29, - UNUSEDBIT_284_30, - UNUSEDBIT_284_31, + UNUSEDBIT_285_30, + UNUSEDBIT_285_31, ETBIO1_DIRECTIONPIN1, ETBIO1_DIRECTIONPIN2, ETBIO1_CONTROLPIN1, @@ -3273,30 +3278,30 @@ public class Fields { UNUSED1128, UNUSED1129, UNUSED1130, - UNUSEDBIT_477_8, - UNUSEDBIT_477_9, - UNUSEDBIT_477_10, - UNUSEDBIT_477_11, - UNUSEDBIT_477_12, - UNUSEDBIT_477_13, - UNUSEDBIT_477_14, - UNUSEDBIT_477_15, - UNUSEDBIT_477_16, - UNUSEDBIT_477_17, - UNUSEDBIT_477_18, - UNUSEDBIT_477_19, - UNUSEDBIT_477_20, - UNUSEDBIT_477_21, - UNUSEDBIT_477_22, - UNUSEDBIT_477_23, - UNUSEDBIT_477_24, - UNUSEDBIT_477_25, - UNUSEDBIT_477_26, - UNUSEDBIT_477_27, - UNUSEDBIT_477_28, - UNUSEDBIT_477_29, - UNUSEDBIT_477_30, - UNUSEDBIT_477_31, + UNUSEDBIT_478_8, + UNUSEDBIT_478_9, + UNUSEDBIT_478_10, + UNUSEDBIT_478_11, + UNUSEDBIT_478_12, + UNUSEDBIT_478_13, + UNUSEDBIT_478_14, + UNUSEDBIT_478_15, + UNUSEDBIT_478_16, + UNUSEDBIT_478_17, + UNUSEDBIT_478_18, + UNUSEDBIT_478_19, + UNUSEDBIT_478_20, + UNUSEDBIT_478_21, + UNUSEDBIT_478_22, + UNUSEDBIT_478_23, + UNUSEDBIT_478_24, + UNUSEDBIT_478_25, + UNUSEDBIT_478_26, + UNUSEDBIT_478_27, + UNUSEDBIT_478_28, + UNUSEDBIT_478_29, + UNUSEDBIT_478_30, + UNUSEDBIT_478_31, CAN2NBCTYPE, CAN2TXPIN, CAN2RXPIN, diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index 010c3e2d59..b4d293ee2a 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +