From 578256ec864dac7e4bc3aab976e4c0d69a333d2e Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Fri, 28 May 2021 07:41:15 +0000 Subject: [PATCH] Auto-generated configs and docs --- .../controllers/algo/auto_generated_enums.cpp | 4 +++- ...ngine_configuration_generated_structures.h | 4 ++-- .../controllers/algo/rusefi_generated.h | 10 +++++----- .../controllers/algo/auto_generated_enums.cpp | 4 +++- ...ngine_configuration_generated_structures.h | 4 ++-- .../controllers/algo/rusefi_generated.h | 10 +++++----- .../controllers/algo/auto_generated_enums.cpp | 4 +++- ...ngine_configuration_generated_structures.h | 4 ++-- .../controllers/algo/rusefi_generated.h | 10 +++++----- .../controllers/algo/auto_generated_enums.cpp | 4 +++- ...ngine_configuration_generated_structures.h | 4 ++-- .../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 | 10 +++++----- .../controllers/generated/signature_all.h | 6 +++--- .../generated/signature_frankenso_na6.h | 6 +++--- .../generated/signature_hellen121nissan.h | 6 +++--- .../generated/signature_hellen121vag.h | 6 +++--- .../generated/signature_hellen128.h | 6 +++--- .../generated/signature_hellen72.h | 6 +++--- .../generated/signature_hellenNA6.h | 6 +++--- .../generated/signature_hellen_cypress.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 +++--- .../generated/signature_subaru_eg33_f7.h | 6 +++--- firmware/tunerstudio/generated/cache.zip | Bin 1507122 -> 1507234 bytes firmware/tunerstudio/generated/rusefi.ini | 14 +++++++------- .../generated/rusefi_frankenso_na6.ini | 14 +++++++------- .../generated/rusefi_hellen121nissan.ini | 14 +++++++------- .../generated/rusefi_hellen121vag.ini | 14 +++++++------- .../generated/rusefi_hellen128.ini | 14 +++++++------- .../tunerstudio/generated/rusefi_hellen72.ini | 14 +++++++------- .../generated/rusefi_hellenNA6.ini | 14 +++++++------- .../generated/rusefi_hellen_cypress.ini | 14 +++++++------- .../tunerstudio/generated/rusefi_kinetis.ini | 14 +++++++------- .../tunerstudio/generated/rusefi_mre_f4.ini | 14 +++++++------- .../tunerstudio/generated/rusefi_mre_f7.ini | 14 +++++++------- .../generated/rusefi_prometheus_405.ini | 14 +++++++------- .../generated/rusefi_prometheus_469.ini | 14 +++++++------- .../generated/rusefi_proteus_f4.ini | 14 +++++++------- .../generated/rusefi_proteus_f7.ini | 14 +++++++------- .../generated/rusefi_subaru_eg33_f7.ini | 14 +++++++------- .../com/rusefi/config/generated/Fields.java | 8 ++++---- java_console/rusefi.xml | 2 +- 51 files changed, 209 insertions(+), 201 deletions(-) diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp index 4dd2316aa9..30d4b40afd 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu May 27 05:35:48 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Fri May 28 07:39:52 UTC 2021 // see also gen_config_and_enums.bat @@ -1046,6 +1046,8 @@ case REVERSE: } const char *getGppwm_channel_e(gppwm_channel_e value){ switch(value) { +case GPPWM_AccelPedal: + return "GPPWM_AccelPedal"; case GPPWM_AuxTemp1: return "GPPWM_AuxTemp1"; case GPPWM_AuxTemp2: diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h index ea509d0295..02c1f1ba9b 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu May 27 12:25:29 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri May 28 07:40:28 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -4202,4 +4202,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu May 27 12:25:29 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri May 28 07:40:28 UTC 2021 diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h index eca51b04ef..5f277fc91f 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h @@ -793,8 +793,8 @@ #define gppwm4_pwmFrequency_offset 4410 #define gppwm4_rpmBins_offset 4424 #define gppwm4_table_offset 4432 -#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero" -#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero" +#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero", "GPPWM_AccelPedal" +#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal" #define gppwm_channel_size 88 #define GPPWM_CHANNELS 4 #define GPPWM_LOAD_COUNT 8 @@ -1275,8 +1275,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 1814087914 +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 669490187 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1629,7 +1629,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.05.27.hellen_cypress.1814087914" +#define TS_SIGNATURE "rusEFI 2021.05.28.hellen_cypress.669490187" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp index 3f5aee0a98..afc49432cd 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu May 27 05:35:47 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Fri May 28 07:39:52 UTC 2021 // see also gen_config_and_enums.bat @@ -842,6 +842,8 @@ case REVERSE: } const char *getGppwm_channel_e(gppwm_channel_e value){ switch(value) { +case GPPWM_AccelPedal: + return "GPPWM_AccelPedal"; case GPPWM_AuxTemp1: return "GPPWM_AuxTemp1"; case GPPWM_AuxTemp2: 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 615b90ba75..7b8cedd1ab 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 Thu May 27 12:25:28 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri May 28 07:40:26 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -4196,4 +4196,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Thu May 27 12:25:28 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri May 28 07:40:26 UTC 2021 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 36e4156fb4..8e7ba3d162 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -777,8 +777,8 @@ #define gppwm4_pwmFrequency_offset 4382 #define gppwm4_rpmBins_offset 4396 #define gppwm4_table_offset 4404 -#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero" -#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero" +#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero", "GPPWM_AccelPedal" +#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal" #define gppwm_channel_size 88 #define GPPWM_CHANNELS 4 #define GPPWM_LOAD_COUNT 8 @@ -1259,8 +1259,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 2474968086 +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 3628224759 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1613,7 +1613,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.05.27.kin.2474968086" +#define TS_SIGNATURE "rusEFI 2021.05.28.kin.3628224759" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp index b9f555d4c6..697c3c6a9b 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu May 27 05:35:49 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Fri May 28 07:39:53 UTC 2021 // see also gen_config_and_enums.bat @@ -1042,6 +1042,8 @@ case REVERSE: } const char *getGppwm_channel_e(gppwm_channel_e value){ switch(value) { +case GPPWM_AccelPedal: + return "GPPWM_AccelPedal"; case GPPWM_AuxTemp1: return "GPPWM_AuxTemp1"; case GPPWM_AuxTemp2: diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h index 9233564dc4..44d80e9ce6 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Thu May 27 12:25:31 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:30 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -4202,4 +4202,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Thu May 27 12:25:31 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:30 UTC 2021 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h index 194754224b..6e95805bd0 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h @@ -793,8 +793,8 @@ #define gppwm4_pwmFrequency_offset 4410 #define gppwm4_rpmBins_offset 4424 #define gppwm4_table_offset 4432 -#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero" -#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero" +#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero", "GPPWM_AccelPedal" +#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal" #define gppwm_channel_size 88 #define GPPWM_CHANNELS 4 #define GPPWM_LOAD_COUNT 8 @@ -1275,8 +1275,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD subaru_eg33_f7 -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 3185871300 +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 4129545509 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1629,7 +1629,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port false -#define TS_SIGNATURE "rusEFI 2021.05.27.subaru_eg33_f7.3185871300" +#define TS_SIGNATURE "rusEFI 2021.05.28.subaru_eg33_f7.4129545509" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 9d78a916de..e8bf8c819f 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Thu May 27 05:35:44 EDT 2021 +// was generated automatically by rusEFI tool from rusefi_hw_enums.h // was generated automatically by rusEFI tool from rusefi_enums.h // by enum2string.jar tool on Fri May 28 07:39:51 UTC 2021 // see also gen_config_and_enums.bat @@ -1018,6 +1018,8 @@ case REVERSE: } const char *getGppwm_channel_e(gppwm_channel_e value){ switch(value) { +case GPPWM_AccelPedal: + return "GPPWM_AccelPedal"; case GPPWM_AuxTemp1: return "GPPWM_AuxTemp1"; case GPPWM_AuxTemp2: diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index cfea91d721..5c5c17266a 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 Thu May 27 12:25:00 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -4202,4 +4202,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu May 27 12:25:00 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 05ad8a7aa9..7f7248da49 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 Thu May 27 12:25:00 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 // 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 b5165a0be7..c562e159ff 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 Thu May 27 12:25:00 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 // 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 237b6d3b79..fc1df2fd6f 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 Thu May 27 12:25:00 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 // 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 5f471bcdf7..f749efe2e9 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 Thu May 27 12:25:00 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 // 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 0b22d844c2..1b019a8ee9 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -791,8 +791,8 @@ #define gppwm4_pwmFrequency_offset 4410 #define gppwm4_rpmBins_offset 4424 #define gppwm4_table_offset 4432 -#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero" -#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero" +#define gppwm_channel_e_auto_enum "GPPWM_Tps", "GPPWM_Map", "GPPWM_Clt", "GPPWM_Iat", "GPPWM_FuelLoad", "GPPWM_IgnLoad", "GPPWM_AuxTemp1", "GPPWM_AuxTemp2", "GPPWM_Zero", "GPPWM_AccelPedal" +#define gppwm_channel_e_enum "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal" #define gppwm_channel_size 88 #define GPPWM_CHANNELS 4 #define GPPWM_LOAD_COUNT 8 @@ -1272,8 +1272,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 777786170 +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 1704675291 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1626,7 +1626,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.05.27.all.777786170" +#define TS_SIGNATURE "rusEFI 2021.05.28.all.1704675291" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index f1f3ae287f..4ac9792909 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 2021.05.27 -#define SIGNATURE_HASH 777786170 -#define TS_SIGNATURE "rusEFI 2021.05.27.all.777786170" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 1704675291 +#define TS_SIGNATURE "rusEFI 2021.05.28.all.1704675291" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 6de628b927..f2291006cb 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 2021.05.27 -#define SIGNATURE_HASH 370318595 -#define TS_SIGNATURE "rusEFI 2021.05.27.frankenso_na6.370318595" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 1574291938 +#define TS_SIGNATURE "rusEFI 2021.05.28.frankenso_na6.1574291938" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index 9afbbf1cb9..67acf682b1 100644 --- a/firmware/controllers/generated/signature_hellen121nissan.h +++ b/firmware/controllers/generated/signature_hellen121nissan.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen121nissan -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 3862469385 -#define TS_SIGNATURE "rusEFI 2021.05.27.hellen121nissan.3862469385" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 2919223272 +#define TS_SIGNATURE "rusEFI 2021.05.28.hellen121nissan.2919223272" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index af5c82de78..2b9f68568d 100644 --- a/firmware/controllers/generated/signature_hellen121vag.h +++ b/firmware/controllers/generated/signature_hellen121vag.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen121vag -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 3112012005 -#define TS_SIGNATURE "rusEFI 2021.05.27.hellen121vag.3112012005" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 4072332292 +#define TS_SIGNATURE "rusEFI 2021.05.28.hellen121vag.4072332292" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 0e93af29c9..4f92ca4c52 100644 --- a/firmware/controllers/generated/signature_hellen128.h +++ b/firmware/controllers/generated/signature_hellen128.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen128 -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 3651274718 -#define TS_SIGNATURE "rusEFI 2021.05.27.hellen128.3651274718" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 2456113983 +#define TS_SIGNATURE "rusEFI 2021.05.28.hellen128.2456113983" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index b9c6f11126..4f260907c8 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen72 -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 2158685361 -#define TS_SIGNATURE "rusEFI 2021.05.27.hellen72.2158685361" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 3412965456 +#define TS_SIGNATURE "rusEFI 2021.05.28.hellen72.3412965456" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index d4fada8f62..b1d6c0e4d4 100644 --- a/firmware/controllers/generated/signature_hellenNA6.h +++ b/firmware/controllers/generated/signature_hellenNA6.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellenNA6 -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 129576886 -#define TS_SIGNATURE "rusEFI 2021.05.27.hellenNA6.129576886" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 1283357527 +#define TS_SIGNATURE "rusEFI 2021.05.28.hellenNA6.1283357527" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index bf772cfc2a..fcf4d40948 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD hellen_cypress -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 1814087914 -#define TS_SIGNATURE "rusEFI 2021.05.27.hellen_cypress.1814087914" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 669490187 +#define TS_SIGNATURE "rusEFI 2021.05.28.hellen_cypress.669490187" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 77b740eadf..19dc93178b 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 2021.05.27 -#define SIGNATURE_HASH 2474968086 -#define TS_SIGNATURE "rusEFI 2021.05.27.kin.2474968086" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 3628224759 +#define TS_SIGNATURE "rusEFI 2021.05.28.kin.3628224759" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 093f52056e..2ed3650946 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 2021.05.27 -#define SIGNATURE_HASH 2895022624 -#define TS_SIGNATURE "rusEFI 2021.05.27.mre_f4.2895022624" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 3880378049 +#define TS_SIGNATURE "rusEFI 2021.05.28.mre_f4.3880378049" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index a1679ed893..db5a75a485 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 2021.05.27 -#define SIGNATURE_HASH 2895022624 -#define TS_SIGNATURE "rusEFI 2021.05.27.mre_f7.2895022624" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 3880378049 +#define TS_SIGNATURE "rusEFI 2021.05.28.mre_f7.3880378049" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 99d60701ce..f33df7c468 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 2021.05.27 -#define SIGNATURE_HASH 1019875596 -#define TS_SIGNATURE "rusEFI 2021.05.27.prometheus_405.1019875596" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 1997358573 +#define TS_SIGNATURE "rusEFI 2021.05.28.prometheus_405.1997358573" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 866b2d2fcd..e4f8d40be0 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 2021.05.27 -#define SIGNATURE_HASH 1019875596 -#define TS_SIGNATURE "rusEFI 2021.05.27.prometheus_469.1019875596" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 1997358573 +#define TS_SIGNATURE "rusEFI 2021.05.28.prometheus_469.1997358573" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 48bfa80721..8c8600708a 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 2021.05.27 -#define SIGNATURE_HASH 1206562337 -#define TS_SIGNATURE "rusEFI 2021.05.27.proteus_f4.1206562337" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 204339904 +#define TS_SIGNATURE "rusEFI 2021.05.28.proteus_f4.204339904" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index f0bf3b13d4..cac5b2f2cf 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 2021.05.27 -#define SIGNATURE_HASH 1206562337 -#define TS_SIGNATURE "rusEFI 2021.05.27.proteus_f7.1206562337" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 204339904 +#define TS_SIGNATURE "rusEFI 2021.05.28.proteus_f7.204339904" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index 70afc8d429..68095d01aa 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD subaru_eg33_f7 -#define SIGNATURE_DATE 2021.05.27 -#define SIGNATURE_HASH 3185871300 -#define TS_SIGNATURE "rusEFI 2021.05.27.subaru_eg33_f7.3185871300" +#define SIGNATURE_DATE 2021.05.28 +#define SIGNATURE_HASH 4129545509 +#define TS_SIGNATURE "rusEFI 2021.05.28.subaru_eg33_f7.4129545509" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 0234ec4a557a3e89dd5c95a5acc75c4a97bf62dc..2d5e132ac4758b4609d1976b5bd396ffbfa0a655 100644 GIT binary patch delta 432440 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 N9t&&5ABFkr{{cnSI@$mL delta 432560 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%0Ao`P^xoPm!GAust;|$ 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 diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 7ca7c285bd..2d1ff8cea4 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 2021.05.27.all.777786170" + signature = "rusEFI 2021.05.28.all.1704675291" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.all.777786170" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.all.1704675291" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:00 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index aa82a7be37..c109aba8b7 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 2021.05.27.frankenso_na6.370318595" + signature = "rusEFI 2021.05.28.frankenso_na6.1574291938" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.frankenso_na6.370318595" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.frankenso_na6.1574291938" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:17 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:15 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini index 48fbce2a5d..317a2955b4 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.hellen121nissan.3862469385" + signature = "rusEFI 2021.05.28.hellen121nissan.2919223272" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.hellen121nissan.3862469385" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.hellen121nissan.2919223272" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:07 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:03 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini index c667f10789..304e541690 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.hellen121vag.3112012005" + signature = "rusEFI 2021.05.28.hellen121vag.4072332292" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.hellen121vag.3112012005" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.hellen121vag.4072332292" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:05 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:01 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen128.ini b/firmware/tunerstudio/generated/rusefi_hellen128.ini index 51e775a32c..f0aa31f744 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen128.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen128.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.hellen128.3651274718" + signature = "rusEFI 2021.05.28.hellen128.2456113983" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.hellen128.3651274718" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.hellen128.2456113983" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:03 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:56 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen72.ini b/firmware/tunerstudio/generated/rusefi_hellen72.ini index 5d4381ec3c..076164a8b2 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen72.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen72.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.hellen72.2158685361" + signature = "rusEFI 2021.05.28.hellen72.3412965456" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.hellen72.2158685361" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.hellen72.3412965456" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:09 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:05 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini index 017a671dc2..b30273ca91 100644 --- a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini +++ b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.hellenNA6.129576886" + signature = "rusEFI 2021.05.28.hellenNA6.1283357527" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.hellenNA6.129576886" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.hellenNA6.1283357527" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:12 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:08 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index 8c7e3624a9..05ab93fc8c 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.hellen_cypress.1814087914" + signature = "rusEFI 2021.05.28.hellen_cypress.669490187" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.hellen_cypress.1814087914" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.hellen_cypress.669490187" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 hellen_cypress_gen_config.bat integration/rusefi_config.txt Thu May 27 12:25:29 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri May 28 07:40:28 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index 9be4c4c7a2..3c9c1a5ec1 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 2021.05.27.kin.2474968086" + signature = "rusEFI 2021.05.28.kin.3628224759" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.kin.2474968086" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.kin.3628224759" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:28 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri May 28 07:40:26 UTC 2021 pageSize = 19972 page = 1 @@ -1121,7 +1121,7 @@ gppwm1_dutyIfError = scalar, U08, 4117, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4118, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4120, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4121, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4122, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4122, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4123, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4124, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4132, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1131,7 +1131,7 @@ gppwm2_dutyIfError = scalar, U08, 4205, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4206, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4208, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4209, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4210, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4210, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4211, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4212, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4220, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1141,7 +1141,7 @@ gppwm3_dutyIfError = scalar, U08, 4293, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4294, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4296, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4297, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4298, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4298, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4299, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4300, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4308, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1151,7 +1151,7 @@ gppwm4_dutyIfError = scalar, U08, 4381, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4382, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4384, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4385, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4386, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4386, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4387, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4388, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4396, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index 96ff1983d3..9ef9e36c81 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 2021.05.27.mre_f4.2895022624" + signature = "rusEFI 2021.05.28.mre_f4.3880378049" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.mre_f4.2895022624" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.mre_f4.3880378049" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:15 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:12 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index c0f589dc27..3305de4d06 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 2021.05.27.mre_f7.2895022624" + signature = "rusEFI 2021.05.28.mre_f7.3880378049" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.mre_f7.2895022624" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.mre_f7.3880378049" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:14 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:10 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index 968339cff4..b21260004f 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 2021.05.27.prometheus_405.1019875596" + signature = "rusEFI 2021.05.28.prometheus_405.1997358573" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.prometheus_405.1019875596" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.prometheus_405.1997358573" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:21 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:19 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index d149b58bb3..6e9d6d5a24 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 2021.05.27.prometheus_469.1019875596" + signature = "rusEFI 2021.05.28.prometheus_469.1997358573" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.prometheus_469.1019875596" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.prometheus_469.1997358573" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:20 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:17 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index f939ee44ce..001acf7b44 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 2021.05.27.proteus_f4.1206562337" + signature = "rusEFI 2021.05.28.proteus_f4.204339904" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.proteus_f4.1206562337" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.proteus_f4.204339904" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:26 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:23 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index 9cf6051165..f8316a4004 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 2021.05.27.proteus_f7.1206562337" + signature = "rusEFI 2021.05.28.proteus_f7.204339904" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.proteus_f7.1206562337" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.proteus_f7.204339904" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 Thu May 27 12:25:23 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:21 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini index 19bf686db8..41ffdc70cd 100644 --- a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.05.27.subaru_eg33_f7.3185871300" + signature = "rusEFI 2021.05.28.subaru_eg33_f7.4129545509" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.05.27.subaru_eg33_f7.3185871300" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.05.28.subaru_eg33_f7.4129545509" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -77,7 +77,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 config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Thu May 27 12:25:31 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Fri May 28 07:40:30 UTC 2021 pageSize = 20000 page = 1 @@ -1137,7 +1137,7 @@ gppwm1_dutyIfError = scalar, U08, 4145, "%", 1.0, 0, 0, 100, 0 gppwm1_pwmFrequency = scalar, U16, 4146, "hz", 1.0, 0, 0, 500, 0 gppwm1_onAboveDuty = scalar, U08, 4148, "%", 1.0, 0, 0, 100, 0 gppwm1_offBelowDuty = scalar, U08, 4149, "%", 1.0, 0, 0, 100, 0 -gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm1_loadAxis = bits, U08, 4150, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm1_alignmentFill_map = scalar, U08, 4151, "unit", 1.0, 0, 0, 100, 0 gppwm1_loadBins = array, U08, 4152, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm1_rpmBins = array, U08, 4160, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1147,7 +1147,7 @@ gppwm2_dutyIfError = scalar, U08, 4233, "%", 1.0, 0, 0, 100, 0 gppwm2_pwmFrequency = scalar, U16, 4234, "hz", 1.0, 0, 0, 500, 0 gppwm2_onAboveDuty = scalar, U08, 4236, "%", 1.0, 0, 0, 100, 0 gppwm2_offBelowDuty = scalar, U08, 4237, "%", 1.0, 0, 0, 100, 0 -gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm2_loadAxis = bits, U08, 4238, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm2_alignmentFill_map = scalar, U08, 4239, "unit", 1.0, 0, 0, 100, 0 gppwm2_loadBins = array, U08, 4240, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm2_rpmBins = array, U08, 4248, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1157,7 +1157,7 @@ gppwm3_dutyIfError = scalar, U08, 4321, "%", 1.0, 0, 0, 100, 0 gppwm3_pwmFrequency = scalar, U16, 4322, "hz", 1.0, 0, 0, 500, 0 gppwm3_onAboveDuty = scalar, U08, 4324, "%", 1.0, 0, 0, 100, 0 gppwm3_offBelowDuty = scalar, U08, 4325, "%", 1.0, 0, 0, 100, 0 -gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm3_loadAxis = bits, U08, 4326, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm3_alignmentFill_map = scalar, U08, 4327, "unit", 1.0, 0, 0, 100, 0 gppwm3_loadBins = array, U08, 4328, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm3_rpmBins = array, U08, 4336, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 @@ -1167,7 +1167,7 @@ gppwm4_dutyIfError = scalar, U08, 4409, "%", 1.0, 0, 0, 100, 0 gppwm4_pwmFrequency = scalar, U16, 4410, "hz", 1.0, 0, 0, 500, 0 gppwm4_onAboveDuty = scalar, U08, 4412, "%", 1.0, 0, 0, 100, 0 gppwm4_offBelowDuty = scalar, U08, 4413, "%", 1.0, 0, 0, 100, 0 -gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" +gppwm4_loadAxis = bits, U08, 4414, [0:3], "TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" gppwm4_alignmentFill_map = scalar, U08, 4415, "unit", 1.0, 0, 0, 100, 0 gppwm4_loadBins = array, U08, 4416, [8], "load", 1.0, 0, 0.0, 250, 0 gppwm4_rpmBins = array, U08, 4424, [8], "RPM", 50.0, 0, 0.0, 12000.0, 0 diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java index 62b3f310b3..54c6c59b2b 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 Thu May 27 12:25:00 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri May 28 07:39:54 UTC 2021 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -1227,7 +1227,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 = 777786170; + public static final int SIGNATURE_HASH = 1704675291; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -1529,7 +1529,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 2021.05.27.all.777786170"; + public static final String TS_SIGNATURE = "rusEFI 2021.05.28.all.1704675291"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final int TT_TT_1_16 = 50; public static final int TT_TT_2JZ_1_12 = 29; @@ -2746,7 +2746,7 @@ public class Fields { public static final Field GPPWM1_PWMFREQUENCY = Field.create("GPPWM1_PWMFREQUENCY", 4146, FieldType.INT16); public static final Field GPPWM1_ONABOVEDUTY = Field.create("GPPWM1_ONABOVEDUTY", 4148, FieldType.INT8); public static final Field GPPWM1_OFFBELOWDUTY = Field.create("GPPWM1_OFFBELOWDUTY", 4149, FieldType.INT8); - public static final String[] gppwm_channel_e = {"TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero"}; + public static final String[] gppwm_channel_e = {"TPS", "MAP", "CLT", "IAT", "Fuel Load", "Ignition Load", "Aux Temp 1", "Aux Temp 2", "Zero", "Accel Pedal"}; public static final Field GPPWM1_LOADAXIS = Field.create("GPPWM1_LOADAXIS", 4150, FieldType.INT8, gppwm_channel_e); public static final Field GPPWM1_ALIGNMENTFILL_MAP = Field.create("GPPWM1_ALIGNMENTFILL_MAP", 4151, FieldType.INT8); public static final Field GPPWM1_TABLE = Field.create("GPPWM1_TABLE", 4168, FieldType.INT); diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index 8c66999fb6..fc473fa139 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +