diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 6baef44590..8feaaf03b2 100644 --- a/firmware/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Wed Dec 06 18:45:34 EST 2017 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Dec 11 10:13:39 EST 2017 // begin #ifndef ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_ @@ -1314,7 +1314,7 @@ typedef struct { bool overrideCrankingIacSetting : 1; /** offset 1484 bit 7 */ - bool anotherUnusedBit2 : 1; + bool useSeparateAdvanceForIdle : 1; /** offset 1484 bit 8 */ bool isTunerStudioEnabled : 1; @@ -1323,7 +1323,7 @@ typedef struct { bool isWaveAnalyzerEnabled : 1; /** offset 1484 bit 10 */ - bool anotherUnusedBit212 : 1; + bool useSeparateVeForIdle : 1; /** * enable trigger_details offset 1484 bit 11 */ @@ -1987,8 +1987,8 @@ typedef struct { /** * offset 3304 */ - int unusedEnd[842]; - /** total size 6672*/ + int unusedEnd[794]; + /** total size 6480*/ } engine_configuration_s; typedef struct { @@ -1996,6 +1996,36 @@ typedef struct { * offset 0 */ engine_configuration_s engineConfiguration; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * offset 6480 + */ + float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; + /** + * CLT-based cranking position multiplier for simple manual idle controller + * offset 6512 + */ + float cltCrankingCorr [CLT_CRANKING_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * offset 6544 + */ + float idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; + /** + * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) + * offset 6576 + */ + float idleAdvance [IDLE_ADVANCE_CURVE_SIZE]; + /** + * Optional VE table for Idle (see useSeparateVEForIdle) + * offset 6608 + */ + float idleVeBins[IDLE_VE_CURVE_SIZE]; + /** + * Optional VE table for Idle (see useSeparateVEForIdle) + * offset 6640 + */ + float idleVe[IDLE_VE_CURVE_SIZE]; /** * offset 6672 */ @@ -2203,4 +2233,4 @@ typedef struct { #endif // end -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Wed Dec 06 18:45:34 EST 2017 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Dec 11 10:13:39 EST 2017 diff --git a/firmware/controllers/algo/rusefi_generated.h b/firmware/controllers/algo/rusefi_generated.h index 029c9d7620..98e29df2fb 100644 --- a/firmware/controllers/algo/rusefi_generated.h +++ b/firmware/controllers/algo/rusefi_generated.h @@ -24,8 +24,12 @@ #define NARROW_BAND_WIDE_BAND_CONVERSION_SIZE 8 #define CLT_CURVE_SIZE 16 #define CRANKING_CLT_IDLE_CURVE_SIZE 8 +#define CLT_CRANKING_CURVE_SIZE 8 +#define IDLE_ADVANCE_CURVE_SIZE 8 #define ENGINE_NOISE_CURVE_SIZE 8 #define CLT_TIMING_CURVE_SIZE 8 +#define IDLE_VE_CURVE_SIZE 8 +#define IDLE_ADVANCE_CURVE_SIZE #define AUX_DIGITAL_VALVE_COUNT 2 #define IAT_CURVE_SIZE 16 #define VBAT_INJECTOR_CURVE_SIZE 8 @@ -895,14 +899,14 @@ #define isMapAveragingEnabled_offset_hex 5cc #define overrideCrankingIacSetting_offset 1484 #define overrideCrankingIacSetting_offset_hex 5cc -#define anotherUnusedBit2_offset 1484 -#define anotherUnusedBit2_offset_hex 5cc +#define useSeparateAdvanceForIdle_offset 1484 +#define useSeparateAdvanceForIdle_offset_hex 5cc #define isTunerStudioEnabled_offset 1484 #define isTunerStudioEnabled_offset_hex 5cc #define isWaveAnalyzerEnabled_offset 1484 #define isWaveAnalyzerEnabled_offset_hex 5cc -#define anotherUnusedBit212_offset 1484 -#define anotherUnusedBit212_offset_hex 5cc +#define useSeparateVeForIdle_offset 1484 +#define useSeparateVeForIdle_offset_hex 5cc #define isPrintTriggerSynchDetails_offset 1484 #define isPrintTriggerSynchDetails_offset_hex 5cc #define isManualSpinningMode_offset 1484 @@ -1471,6 +1475,18 @@ #define fsioCurve4_offset_hex cc8 #define unusedEnd_offset 3304 #define unusedEnd_offset_hex ce8 +#define cltCrankingCorrBins_offset 6480 +#define cltCrankingCorrBins_offset_hex 1950 +#define cltCrankingCorr _offset 6512 +#define cltCrankingCorr _offset_hex 1970 +#define idleAdvanceBins_offset 6544 +#define idleAdvanceBins_offset_hex 1990 +#define idleAdvance _offset 6576 +#define idleAdvance _offset_hex 19b0 +#define idleVeBins_offset 6608 +#define idleVeBins_offset_hex 19d0 +#define idleVe_offset 6640 +#define idleVe_offset_hex 19f0 #define fsioFormulas1_offset 6672 #define fsioFormulas1_offset_hex 1a10 #define fsioFormulas2_offset 6872 diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 7c15b543a2..bab3aa7f84 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -68,9 +68,13 @@ struct_no_prefix engine_configuration_s #define CLT_CURVE_SIZE 16 #define CRANKING_CLT_IDLE_CURVE_SIZE 8 +#define CLT_CRANKING_CURVE_SIZE 8 +#define IDLE_ADVANCE_CURVE_SIZE 8 #define ENGINE_NOISE_CURVE_SIZE 8 #define CLT_TIMING_CURVE_SIZE 8 +#define IDLE_VE_CURVE_SIZE 8 +#define IDLE_ADVANCE_CURVE_SIZE #define AUX_DIGITAL_VALVE_COUNT 2 @@ -650,10 +654,10 @@ custom idle_mode_e 4 bits, U32, @OFFSET@, [0:0], "false", "true" bit needSecondTriggerInputDeprecated bit isMapAveragingEnabled bit overrideCrankingIacSetting - bit anotherUnusedBit2 + bit useSeparateAdvanceForIdle bit isTunerStudioEnabled bit isWaveAnalyzerEnabled - bit anotherUnusedBit212 + bit useSeparateVeForIdle bit isPrintTriggerSynchDetails;+enable trigger_details bit isManualSpinningMode;Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed bit twoWireBatchInjection;+This is needed if batched injection and individual injector wiring\nenable two_wire_batch_injection @@ -857,13 +861,21 @@ spi_device_e accelerometerSpiDevice; float[FSIO_CURVE_8] fsioCurve3;;"y", 1, 0, -999, 1000.0, 3 float[FSIO_CURVE_8] fsioCurve4Bins;;"x", 1, 0, -999, 1000.0, 3 float[FSIO_CURVE_8] fsioCurve4;;"y", 1, 0, -999, 1000.0, 3 - int[842] unusedEnd; + int[794] unusedEnd; end_struct engine_configuration_s engineConfiguration; +float[CLT_CRANKING_CURVE_SIZE] cltCrankingCorrBins;CLT-based cranking position multiplier for simple manual idle controller;"C", 1, 0, -100.0, 250.0, 2 +float[CLT_CRANKING_CURVE_SIZE] cltCrankingCorr ;CLT-based cranking position multiplier for simple manual idle controller;"%", 1, 0, 0.0, 500.0, 2 + +float[IDLE_ADVANCE_CURVE_SIZE] idleAdvanceBins;Optional timing advance table for Idle (see useSeparateAdvanceForIdle);"RPM", 1, 0, 0.0, 18000, 2 +float[IDLE_ADVANCE_CURVE_SIZE] idleAdvance ;Optional timing advance table for Idle (see useSeparateAdvanceForIdle);"deg", 1, 0, -20, 90, 2 +float[IDLE_VE_CURVE_SIZE] idleVeBins;Optional VE table for Idle (see useSeparateVEForIdle);"RPM", 1, 0, 0.0, 18000, 2 +float[IDLE_VE_CURVE_SIZE] idleVe; Optional VE table for Idle (see useSeparateVEForIdle);,"%", 1, 0, 0, 999.0, 2 + le_formula_t[FSIO_COMMAND_COUNT iterate] fsioFormulas; le_formula_t timingMultiplier; le_formula_t timingAdditive; diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index dad3854520..37de20f245 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -63,7 +63,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Wed Dec 06 18:45:34 EST 2017 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Dec 11 10:13:39 EST 2017 pageSize = 20000 page = 1 @@ -468,10 +468,10 @@ page = 1 needSecondTriggerInputDeprecated= bits, U32, 1484, [4:4], "false", "true" isMapAveragingEnabled = bits, U32, 1484, [5:5], "false", "true" overrideCrankingIacSetting= bits, U32, 1484, [6:6], "false", "true" - anotherUnusedBit2 = bits, U32, 1484, [7:7], "false", "true" + useSeparateAdvanceForIdle= bits, U32, 1484, [7:7], "false", "true" isTunerStudioEnabled = bits, U32, 1484, [8:8], "false", "true" isWaveAnalyzerEnabled = bits, U32, 1484, [9:9], "false", "true" - anotherUnusedBit212 = bits, U32, 1484, [10:10], "false", "true" + useSeparateVeForIdle = bits, U32, 1484, [10:10], "false", "true" isPrintTriggerSynchDetails= bits, U32, 1484, [11:11], "false", "true" isManualSpinningMode = bits, U32, 1484, [12:12], "false", "true" twoWireBatchInjection = bits, U32, 1484, [13:13], "false", "true" @@ -741,6 +741,12 @@ page = 1 fsioCurve4Bins = array, F32, 3240, [8], "x", 1, 0, -999, 1000.0, 3 fsioCurve4 = array, F32, 3272, [8], "y", 1, 0, -999, 1000.0, 3 ;skipping unusedEnd offset 3304 + cltCrankingCorrBins = array, F32, 6480, [8], "C", 1, 0, -100.0, 250.0, 2 + cltCrankingCorr = array, F32, 6512, [8], "%", 1, 0, 0.0, 500.0, 2 + idleAdvanceBins = array, F32, 6544, [8], "RPM", 1, 0, 0.0, 18000, 2 + idleAdvance = array, F32, 6576, [8], "deg", 1, 0, -20, 90, 2 + idleVeBins = array, F32, 6608, [8], "RPM", 1, 0, 0.0, 18000, 2 + idleVe = array, F32, 6640, [8], ,"%", 1, 0, 0, 999.0, 2 fsioFormulas1 = string, ASCII, 6672, 200 fsioFormulas2 = string, ASCII, 6872, 200 fsioFormulas3 = string, ASCII, 7072, 200 diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index 0376715ca7..28a94ad4e0 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Dec 03 07:45:31 EST 2017 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Dec 11 10:13:39 EST 2017 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int BLOCKING_FACTOR = 400; @@ -12,8 +12,12 @@ public class Fields { public static final int MAP_WINDOW_SIZE = 8; public static final int NARROW_BAND_WIDE_BAND_CONVERSION_SIZE = 8; public static final int CLT_CURVE_SIZE = 16; + public static final int CRANKING_CLT_IDLE_CURVE_SIZE = 8; + public static final int CLT_CRANKING_CURVE_SIZE = 8; + public static final int IDLE_ADVANCE_CURVE_SIZE = 8; public static final int ENGINE_NOISE_CURVE_SIZE = 8; public static final int CLT_TIMING_CURVE_SIZE = 8; + public static final int IDLE_VE_CURVE_SIZE = 8; public static final int AUX_DIGITAL_VALVE_COUNT = 2; public static final int IAT_CURVE_SIZE = 16; public static final int VBAT_INJECTOR_CURVE_SIZE = 8; @@ -613,11 +617,11 @@ public class Fields { public static final int secondTriggerChannelEnabled_offset = 1484; public static final int needSecondTriggerInputDeprecated_offset = 1484; public static final int isMapAveragingEnabled_offset = 1484; - public static final int anotherUnusedBit1_offset = 1484; - public static final int anotherUnusedBit2_offset = 1484; + public static final int overrideCrankingIacSetting_offset = 1484; + public static final int useSeparateAdvanceForIdle_offset = 1484; public static final int isTunerStudioEnabled_offset = 1484; public static final int isWaveAnalyzerEnabled_offset = 1484; - public static final int anotherUnusedBit212_offset = 1484; + public static final int useSeparateVeForIdle_offset = 1484; public static final int isPrintTriggerSynchDetails_offset = 1484; public static final int isManualSpinningMode_offset = 1484; public static final int twoWireBatchInjection_offset = 1484; @@ -984,6 +988,15 @@ public class Fields { public static final int fsioCurve4Bins_offset = 3240; public static final int fsioCurve4_offset = 3272; public static final int unusedEnd_offset = 3304; + public static final int cltCrankingCorrBins_offset = 6480; + public static final int cltCrankingCorrBins_offset_hex = 1950; + public static final int cltCrankingCorr _offset = 6512; + public static final int cltCrankingCorr _offset_hex = 1970; + public static final int idleAdvanceBins_offset = 6544; + public static final int idleAdvanceBins_offset_hex = 1990; + public static final int idleAdvance _offset = 6576; + public static final int idleVeBins_offset = 6608; + public static final int idleVe_offset = 6640; public static final int fsioFormulas1_offset = 6672; public static final int fsioFormulas2_offset = 6872; public static final int fsioFormulas3_offset = 7072; @@ -1509,11 +1522,11 @@ public class Fields { public static final Field SECONDTRIGGERCHANNELENABLED = Field.create("SECONDTRIGGERCHANNELENABLED", 1484, FieldType.BIT, 3); public static final Field NEEDSECONDTRIGGERINPUTDEPRECATED = Field.create("NEEDSECONDTRIGGERINPUTDEPRECATED", 1484, FieldType.BIT, 4); public static final Field ISMAPAVERAGINGENABLED = Field.create("ISMAPAVERAGINGENABLED", 1484, FieldType.BIT, 5); - public static final Field ANOTHERUNUSEDBIT1 = Field.create("ANOTHERUNUSEDBIT1", 1484, FieldType.BIT, 6); - public static final Field ANOTHERUNUSEDBIT2 = Field.create("ANOTHERUNUSEDBIT2", 1484, FieldType.BIT, 7); + public static final Field OVERRIDECRANKINGIACSETTING = Field.create("OVERRIDECRANKINGIACSETTING", 1484, FieldType.BIT, 6); + public static final Field USESEPARATEADVANCEFORIDLE = Field.create("USESEPARATEADVANCEFORIDLE", 1484, FieldType.BIT, 7); public static final Field ISTUNERSTUDIOENABLED = Field.create("ISTUNERSTUDIOENABLED", 1484, FieldType.BIT, 8); public static final Field ISWAVEANALYZERENABLED = Field.create("ISWAVEANALYZERENABLED", 1484, FieldType.BIT, 9); - public static final Field ANOTHERUNUSEDBIT212 = Field.create("ANOTHERUNUSEDBIT212", 1484, FieldType.BIT, 10); + public static final Field USESEPARATEVEFORIDLE = Field.create("USESEPARATEVEFORIDLE", 1484, FieldType.BIT, 10); public static final Field ISPRINTTRIGGERSYNCHDETAILS = Field.create("ISPRINTTRIGGERSYNCHDETAILS", 1484, FieldType.BIT, 11); public static final Field ISMANUALSPINNINGMODE = Field.create("ISMANUALSPINNINGMODE", 1484, FieldType.BIT, 12); public static final Field TWOWIREBATCHINJECTION = Field.create("TWOWIREBATCHINJECTION", 1484, FieldType.BIT, 13);