diff --git a/firmware/config/engines/dodge_ram.cpp b/firmware/config/engines/dodge_ram.cpp index b6ece3c537..73638fb210 100644 --- a/firmware/config/engines/dodge_ram.cpp +++ b/firmware/config/engines/dodge_ram.cpp @@ -23,10 +23,14 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->trigger.type = TT_DODGE_RAM; engineConfiguration->injector.flow = 243.6; // 23.2lb/h engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003; + engineConfiguration->algorithm = LM_ALPHA_N; // set_cranking_charge_angle 30 engineConfiguration->crankingChargeAngle = 30; + // set_whole_fuel_map 6 + setWholeFuelMap(6 PASS_ENGINE_PARAMETER); + //Base engine setting engineConfiguration->specs.cylindersCount = 8; engineConfiguration->specs.firingOrder = FO_1_8_4_3_6_5_7_2; diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index ca7384569d..ddf4288164 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -324,6 +324,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->algorithm = LM_PLAIN_MAF; engineConfiguration->vbattDividerCoeff = ((float) (15 + 65)) / 15; + boardConfiguration->targetVBatt = 14; engineConfiguration->fanOnTemperature = 75; engineConfiguration->fanOffTemperature = 70; diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 6c2d990e20..52a85d5cdd 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 by config_definition.jar on Tue May 12 14:18:57 EDT 2015 +// this section was generated by config_definition.jar on Tue May 12 20:03:20 EDT 2015 // begin #include "rusefi_types.h" typedef struct { @@ -372,7 +372,11 @@ typedef struct { /** * offset 232 */ - adc_channel_mode_e unusedADC[HW_MAX_ADC_INDEX]; + float unusedADC[15]; + /** + * offset 292 + */ + float targetVBatt; /** * offset 296 */ @@ -1298,4 +1302,4 @@ typedef struct { } persistent_config_s; // end -// this section was generated by config_definition.jar on Tue May 12 14:18:57 EDT 2015 +// this section was generated by config_definition.jar on Tue May 12 20:03:20 EDT 2015 diff --git a/firmware/controllers/algo/rusefi_generated.h b/firmware/controllers/algo/rusefi_generated.h index 3c886d6bef..a053947970 100644 --- a/firmware/controllers/algo/rusefi_generated.h +++ b/firmware/controllers/algo/rusefi_generated.h @@ -290,34 +290,10 @@ #define digitalPotentiometerChipSelect3_offset_hex 350 #define digitalPotentiometerChipSelect4_offset 852 #define digitalPotentiometerChipSelect4_offset_hex 354 -#define unusedADC1_offset 856 -#define unusedADC1_offset_hex 358 -#define unusedADC2_offset 860 -#define unusedADC3_offset 864 -#define unusedADC3_offset_hex 360 -#define unusedADC4_offset 868 -#define unusedADC4_offset_hex 364 -#define unusedADC5_offset 872 -#define unusedADC5_offset_hex 368 -#define unusedADC6_offset 876 -#define unusedADC7_offset 880 -#define unusedADC7_offset_hex 370 -#define unusedADC8_offset 884 -#define unusedADC8_offset_hex 374 -#define unusedADC9_offset 888 -#define unusedADC9_offset_hex 378 -#define unusedADC10_offset 892 -#define unusedADC11_offset 896 -#define unusedADC11_offset_hex 380 -#define unusedADC12_offset 900 -#define unusedADC12_offset_hex 384 -#define unusedADC13_offset 904 -#define unusedADC13_offset_hex 388 -#define unusedADC14_offset 908 -#define unusedADC15_offset 912 -#define unusedADC15_offset_hex 390 -#define unusedADC16_offset 916 -#define unusedADC16_offset_hex 394 +#define unusedADC_offset 856 +#define unusedADC_offset_hex 358 +#define targetVBatt_offset 916 +#define targetVBatt_offset_hex 394 #define triggerInputPins1_offset 920 #define triggerInputPins1_offset_hex 398 #define triggerInputPins2_offset 924 diff --git a/firmware/controllers/alternatorController.cpp b/firmware/controllers/alternatorController.cpp index bbad233ca3..d45b851a71 100644 --- a/firmware/controllers/alternatorController.cpp +++ b/firmware/controllers/alternatorController.cpp @@ -36,7 +36,7 @@ static msg_t AltCtrlThread(int param) { while (true) { chThdSleepMilliseconds(100); - currentAltDuty = altPid.getValue(14, getVBatt(engineConfiguration), 1); + currentAltDuty = altPid.getValue(boardConfiguration->targetVBatt, getVBatt(engineConfiguration), 1); if (boardConfiguration->isVerboseAlternator) { scheduleMsg(logger, "alt duty: %f/vbatt=%f/p=%f/i=%f/d=%f int=%f", currentAltDuty, getVBatt(engineConfiguration), altPid.getP(), altPid.getI(), altPid.getD(), altPid.getIntegration()); @@ -73,7 +73,8 @@ static void showAltInfo(void) { hwPortname(boardConfiguration->alternatorControlPin)); scheduleMsg(logger, "p=%f/i=%f/d=%f", engineConfiguration->alternatorControlPFactor, 0, 0); // todo: i & d - scheduleMsg(logger, "vbatt=%f/duty=%f", getVBatt(engineConfiguration), currentAltDuty); + scheduleMsg(logger, "vbatt=%f/duty=%f/target=%f", getVBatt(engineConfiguration), currentAltDuty, + boardConfiguration->targetVBatt); } void initAlternatorCtrl(Logging *sharedLogger) { diff --git a/firmware/controllers/flash_main.h b/firmware/controllers/flash_main.h index a7e8219d23..f5871a2e06 100644 --- a/firmware/controllers/flash_main.h +++ b/firmware/controllers/flash_main.h @@ -12,7 +12,7 @@ #include "engine_configuration.h" #include "engine.h" -#define FLASH_DATA_VERSION 8050 +#define FLASH_DATA_VERSION 8060 void readFromFlash(void); void initFlash(Logging *sharedLogger, Engine *engine); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 2fab9e8853..e388ed01c0 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -922,9 +922,13 @@ static void setInjectorLag(float value) { } static void setValue(const char *paramStr, const char *valueStr) { - float value = atoff(valueStr); - engineConfiguration->vehicleSpeedCoef = value; + + if (strEqualCaseInsensitive(paramStr, "vsscoeff")) { + engineConfiguration->vehicleSpeedCoef = value; + } else if (strEqualCaseInsensitive(paramStr, "targetvbatt")) { + boardConfiguration->targetVBatt = value; + } } void initSettings(engine_configuration_s *engineConfiguration) { diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 9491933cab..63d46e4eae 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -336,7 +336,8 @@ spi_device_e digitalPotentiometerSpiDevice;Digital Potentiometer is used by stoc brain_pin_e[DIGIPOT_COUNT iterate] digitalPotentiometerChipSelect; custom adc_channel_mode_e 4 bits, U32, @OFFSET@, [0:1], "Off", "Slow", "Fast", "INVALID" - adc_channel_mode_e[HW_MAX_ADC_INDEX iterate] unusedADC; + float[15] unusedADC; + float targetVBatt; brain_input_pin_e[3 iterate] triggerInputPins; diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 5c2c5707ea..9af496d364 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -40,7 +40,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated by ConfigDefinition.jar on Tue May 12 17:29:48 EDT 2015 +; this section was generated by ConfigDefinition.jar on Tue May 12 20:03:21 EDT 2015 pageSize = 15288 page = 1 @@ -206,22 +206,8 @@ page = 1 digitalPotentiometerChipSelect2 = bits, U32, 844, [0:6], "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", "GPIOA_15", "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", "GPIOB_5", "GPIOB_6", "GPIOB_7", "GPIOB_8", "GPIOB_9", "GPIOB_10", "GPIOB_11", "GPIOB_12", "GPIOB_13", "GPIOB_14", "GPIOB_15", "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", "GPIOC_5", "GPIOC_6", "GPIOC_7", "GPIOC_8", "GPIOC_9", "GPIOC_10", "GPIOC_11", "GPIOC_12", "GPIOC_13", "GPIOC_14", "GPIOC_15", "GPIOD_0", "GPIOD_1", "GPIOD_2", "GPIOD_3", "GPIOD_4", "GPIOD_5", "GPIOD_6", "GPIOD_7", "GPIOD_8", "GPIOD_9", "GPIOD_10", "GPIOD_11", "GPIOD_12", "GPIOD_13", "GPIOD_14", "GPIOD_15", "GPIOE_0", "GPIOE_1", "GPIOE_2", "GPIOE_3", "GPIOE_4", "GPIOE_5", "GPIOE_6", "GPIOE_7", "GPIOE_8", "GPIOE_9", "GPIOE_10", "GPIOE_11", "GPIOE_12", "GPIOE_13", "GPIOE_14", "GPIOE_15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" digitalPotentiometerChipSelect3 = bits, U32, 848, [0:6], "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", "GPIOA_15", "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", "GPIOB_5", "GPIOB_6", "GPIOB_7", "GPIOB_8", "GPIOB_9", "GPIOB_10", "GPIOB_11", "GPIOB_12", "GPIOB_13", "GPIOB_14", "GPIOB_15", "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", "GPIOC_5", "GPIOC_6", "GPIOC_7", "GPIOC_8", "GPIOC_9", "GPIOC_10", "GPIOC_11", "GPIOC_12", "GPIOC_13", "GPIOC_14", "GPIOC_15", "GPIOD_0", "GPIOD_1", "GPIOD_2", "GPIOD_3", "GPIOD_4", "GPIOD_5", "GPIOD_6", "GPIOD_7", "GPIOD_8", "GPIOD_9", "GPIOD_10", "GPIOD_11", "GPIOD_12", "GPIOD_13", "GPIOD_14", "GPIOD_15", "GPIOE_0", "GPIOE_1", "GPIOE_2", "GPIOE_3", "GPIOE_4", "GPIOE_5", "GPIOE_6", "GPIOE_7", "GPIOE_8", "GPIOE_9", "GPIOE_10", "GPIOE_11", "GPIOE_12", "GPIOE_13", "GPIOE_14", "GPIOE_15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" digitalPotentiometerChipSelect4 = bits, U32, 852, [0:6], "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", "GPIOA_15", "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", "GPIOB_5", "GPIOB_6", "GPIOB_7", "GPIOB_8", "GPIOB_9", "GPIOB_10", "GPIOB_11", "GPIOB_12", "GPIOB_13", "GPIOB_14", "GPIOB_15", "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", "GPIOC_5", "GPIOC_6", "GPIOC_7", "GPIOC_8", "GPIOC_9", "GPIOC_10", "GPIOC_11", "GPIOC_12", "GPIOC_13", "GPIOC_14", "GPIOC_15", "GPIOD_0", "GPIOD_1", "GPIOD_2", "GPIOD_3", "GPIOD_4", "GPIOD_5", "GPIOD_6", "GPIOD_7", "GPIOD_8", "GPIOD_9", "GPIOD_10", "GPIOD_11", "GPIOD_12", "GPIOD_13", "GPIOD_14", "GPIOD_15", "GPIOE_0", "GPIOE_1", "GPIOE_2", "GPIOE_3", "GPIOE_4", "GPIOE_5", "GPIOE_6", "GPIOE_7", "GPIOE_8", "GPIOE_9", "GPIOE_10", "GPIOE_11", "GPIOE_12", "GPIOE_13", "GPIOE_14", "GPIOE_15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" - unusedADC1 = bits, U32, 856, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC2 = bits, U32, 860, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC3 = bits, U32, 864, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC4 = bits, U32, 868, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC5 = bits, U32, 872, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC6 = bits, U32, 876, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC7 = bits, U32, 880, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC8 = bits, U32, 884, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC9 = bits, U32, 888, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC10 = bits, U32, 892, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC11 = bits, U32, 896, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC12 = bits, U32, 900, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC13 = bits, U32, 904, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC14 = bits, U32, 908, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC15 = bits, U32, 912, [0:1], "Off", "Slow", "Fast", "INVALID" - unusedADC16 = bits, U32, 916, [0:1], "Off", "Slow", "Fast", "INVALID" +;skipping unusedADC offset 856 +;skipping targetVBatt offset 916 triggerInputPins1 = bits, U32, 920, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" triggerInputPins2 = bits, U32, 924, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" triggerInputPins3 = bits, U32, 928, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" diff --git a/java_console/ui/resources/com/rusefi/undo.jpg b/java_console/ui/resources/com/rusefi/undo.jpg new file mode 100644 index 0000000000..2439e5cf31 Binary files /dev/null and b/java_console/ui/resources/com/rusefi/undo.jpg differ