From d5a99dda085effea41a4a39f3418086e14404914 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Fri, 10 Jul 2020 20:06:22 +0000 Subject: [PATCH] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 6 ++++-- .../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 | 4 ++-- .../controllers/generated/signature_all.h | 4 ++-- .../generated/signature_frankenso_na6.h | 4 ++-- .../controllers/generated/signature_mre_f4.h | 4 ++-- .../controllers/generated/signature_mre_f7.h | 4 ++-- .../generated/signature_prometheus_405.h | 4 ++-- .../generated/signature_prometheus_469.h | 4 ++-- .../generated/signature_proteus_f4.h | 4 ++-- .../generated/signature_proteus_f7.h | 4 ++-- firmware/tunerstudio/generated/cache.zip | Bin 843277 -> 843405 bytes firmware/tunerstudio/generated/rusefi.ini | 8 +++++--- .../generated/rusefi_frankenso_na6.ini | 8 +++++--- .../tunerstudio/generated/rusefi_mre_f4.ini | 8 +++++--- .../tunerstudio/generated/rusefi_mre_f7.ini | 8 +++++--- .../generated/rusefi_prometheus_405.ini | 8 +++++--- .../generated/rusefi_prometheus_469.ini | 8 +++++--- .../generated/rusefi_proteus_f4.ini | 8 +++++--- .../generated/rusefi_proteus_f7.ini | 8 +++++--- .../com/rusefi/config/generated/Fields.java | 5 +++-- java_console/rusefi.xml | 2 +- 25 files changed, 70 insertions(+), 51 deletions(-) diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 336144b6bd..eaab84869d 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -1003,6 +1003,7 @@ struct engine_configuration_s { */ adc_channel_e tps2_1AdcChannel; /** + * 0.1 is a good default value * offset 516 */ float idle_derivativeFilterLoss; @@ -1271,6 +1272,7 @@ struct engine_configuration_s { */ ego_sensor_e afr_type; /** + * 0.1 is a good default value * offset 696 */ float idle_antiwindupFreq; @@ -3527,4 +3529,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 5687f752e7..41cab66e30 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index db0aee3036..2de5b71944 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index 8d403c409a..5d4e750e0a 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index fecd036d18..ce7f38e42d 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index bc611324e9..92c56f70b3 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1065,7 +1065,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 2784966979 +#define SIGNATURE_HASH 345981352 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1325,7 +1325,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.07.10.all.2784966979" +#define TS_SIGNATURE "rusEFI 2020.07.10.all.345981352" #define TS_SINGLE_WRITE_COMMAND 'W' #define tunerStudioSerialSpeed_offset 728 #define twoWireBatchIgnition_offset 1476 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index e70a634e04..4cc3a4da8a 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 2784966979 -#define TS_SIGNATURE "rusEFI 2020.07.10.all.2784966979" +#define SIGNATURE_HASH 345981352 +#define TS_SIGNATURE "rusEFI 2020.07.10.all.345981352" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index bf9263ab5f..dda8d1c2d4 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 2071483808 -#define TS_SIGNATURE "rusEFI 2020.07.10.frankenso_na6.2071483808" +#define SIGNATURE_HASH 3390582091 +#define TS_SIGNATURE "rusEFI 2020.07.10.frankenso_na6.3390582091" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index e3e6a6b792..856c624ed1 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f4 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 3959549901 -#define TS_SIGNATURE "rusEFI 2020.07.10.mre_f4.3959549901" +#define SIGNATURE_HASH 1566676774 +#define TS_SIGNATURE "rusEFI 2020.07.10.mre_f4.1566676774" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index f431dddc87..0172f67219 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f7 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 3959549901 -#define TS_SIGNATURE "rusEFI 2020.07.10.mre_f7.3959549901" +#define SIGNATURE_HASH 1566676774 +#define TS_SIGNATURE "rusEFI 2020.07.10.mre_f7.1566676774" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 17131b078c..efcd4fdb2c 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 1357111751 -#define TS_SIGNATURE "rusEFI 2020.07.10.prometheus_405.1357111751" +#define SIGNATURE_HASH 3783498028 +#define TS_SIGNATURE "rusEFI 2020.07.10.prometheus_405.3783498028" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 16e14eb248..7eae31d800 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 1357111751 -#define TS_SIGNATURE "rusEFI 2020.07.10.prometheus_469.1357111751" +#define SIGNATURE_HASH 3783498028 +#define TS_SIGNATURE "rusEFI 2020.07.10.prometheus_469.3783498028" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 77428ce4f9..9aebc46a8a 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 678316172 -#define TS_SIGNATURE "rusEFI 2020.07.10.proteus_f4.678316172" +#define SIGNATURE_HASH 2567843943 +#define TS_SIGNATURE "rusEFI 2020.07.10.proteus_f4.2567843943" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 661d89f086..44769218a3 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_DATE 2020.07.10 -#define SIGNATURE_HASH 678316172 -#define TS_SIGNATURE "rusEFI 2020.07.10.proteus_f7.678316172" +#define SIGNATURE_HASH 2567843943 +#define TS_SIGNATURE "rusEFI 2020.07.10.proteus_f7.2567843943" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 33797d20b20eabbdf9d81a13301b74e46c019ef7..c4383d5adbf82fe6d82f5829b97be92b60b6c65f 100644 GIT binary patch delta 141059 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 delta 211091 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

=U4r(~J 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 LSg&p)F~9vk12<8R diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 33ae558d6b..41cef1676f 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.all.2784966979" + signature = "rusEFI 2020.07.10.all.345981352" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.all.2784966979" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.all.345981352" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index 7636878ff6..6392c30385 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.frankenso_na6.2071483808" + signature = "rusEFI 2020.07.10.frankenso_na6.3390582091" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.frankenso_na6.2071483808" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.frankenso_na6.3390582091" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:45 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:53 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index b75380e0c4..f0b1b8e864 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.mre_f4.3959549901" + signature = "rusEFI 2020.07.10.mre_f4.1566676774" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.mre_f4.3959549901" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.mre_f4.1566676774" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:44 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:48 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index f7e1d61b68..78794458f2 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.mre_f7.3959549901" + signature = "rusEFI 2020.07.10.mre_f7.1566676774" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.mre_f7.3959549901" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.mre_f7.1566676774" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:42 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:46 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index 72ec81bc3f..cae5574e26 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.prometheus_405.1357111751" + signature = "rusEFI 2020.07.10.prometheus_405.3783498028" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.prometheus_405.1357111751" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.prometheus_405.3783498028" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:48 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:56 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index 7d0266bd28..632eda473c 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.prometheus_469.1357111751" + signature = "rusEFI 2020.07.10.prometheus_469.3783498028" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.prometheus_469.1357111751" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.prometheus_469.3783498028" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:47 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:55 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index 4176a1c02f..814e63a1a4 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.proteus_f4.678316172" + signature = "rusEFI 2020.07.10.proteus_f4.2567843943" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.proteus_f4.678316172" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.proteus_f4.2567843943" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:51 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:58 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index b1cb856926..c3150a35f1 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.10.proteus_f7.678316172" + signature = "rusEFI 2020.07.10.proteus_f7.2567843943" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.10.proteus_f7.678316172" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.10.proteus_f7.2567843943" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:49 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:57 UTC 2020 pageSize = 20000 page = 1 @@ -1227,6 +1227,7 @@ page = 1 ambiguousOperationMode = "'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2\nSee engineCycle\nset operation_mode X" vbattAdcChannel = "This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB." fuelLevelSensor = "This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined." + idle_derivativeFilterLoss = "0.1 is a good default value" trigger_useOnlyFirstChannel = "This option could be used if your second trigger channel is broken" camInputs1 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" camInputs2 = "Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.\nTODO #660" @@ -1235,6 +1236,7 @@ page = 1 throttlePedalUpPin = "Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata" triggerSimulatorFrequency = "Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)\nSee also directSelfStimulation (no wires, bypassing input hardware)\nrpm X" malfunctionIndicatorPin = "Check engine light, also malfunction indicator light. Always blinks once on boot." + idle_antiwindupFreq = "0.1 is a good default value" tachOutputPin = "This implementation produces one pulse per engine cycle. See also dizzySparkOutputPin." acIdleExtraOffset = "Additional idle PID offset while A/C is active" compressionRatio = "Just for reference really, not taken into account by any logic at this point" 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 46788316e6..22c6f7edce 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 18:04:35 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Jul 10 20:05:44 UTC 2020 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -1046,6 +1046,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 = 345981352; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -1284,7 +1285,7 @@ public class Fields { public static final int TS_RESPONSE_COMMAND_OK = 7; public static final int TS_RESPONSE_OK = 0; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI 2020.07.10.all.2784966979"; + public static final String TS_SIGNATURE = "rusEFI 2020.07.10.all.345981352"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final int tunerStudioSerialSpeed_offset = 728; public static final int twoWireBatchIgnition_offset = 1476; diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index 10e6f4c1c3..f55cef6120 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +