Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
a2a1187f5f
|
@ -24,7 +24,7 @@ jobs:
|
||||||
- build-target: frankenso-pal
|
- build-target: frankenso-pal
|
||||||
efi-cpu: ARCH_STM32F4
|
efi-cpu: ARCH_STM32F4
|
||||||
efi-board: st_stm32f4
|
efi-board: st_stm32f4
|
||||||
target-extra-params: -DHAL_TRIGGER_USE_PAL=TRUE -DHAL_USE_ICU=FALSE -DEFI_VEHICLE_SPEED=FALSE -DEFI_LOGIC_ANALYZER=FALSE
|
target-extra-params: -DHAL_TRIGGER_USE_PAL=TRUE -DEFI_ICU_INPUTS=FALSE -DEFI_VEHICLE_SPEED=FALSE -DEFI_LOGIC_ANALYZER=FALSE
|
||||||
|
|
||||||
- build-target: mre-f4
|
- build-target: mre-f4
|
||||||
efi-cpu: ARCH_STM32F4
|
efi-cpu: ARCH_STM32F4
|
||||||
|
|
|
@ -26,6 +26,7 @@ java ^
|
||||||
-definition integration/rusefi_config.txt ^
|
-definition integration/rusefi_config.txt ^
|
||||||
-ts_destination tunerstudio ^
|
-ts_destination tunerstudio ^
|
||||||
-tool kineris_gen_config.bat ^
|
-tool kineris_gen_config.bat ^
|
||||||
|
-firing_order controllers/algo/firing_order.h ^
|
||||||
-with_c_defines false ^
|
-with_c_defines false ^
|
||||||
-initialize_to_zero false ^
|
-initialize_to_zero false ^
|
||||||
-ts_output_name rusefi_kinetis.ini ^
|
-ts_output_name rusefi_kinetis.ini ^
|
||||||
|
|
|
@ -516,8 +516,6 @@ case Force_4_bytes_size_engine_load_mode:
|
||||||
return "Force_4_bytes_size_engine_load_mode";
|
return "Force_4_bytes_size_engine_load_mode";
|
||||||
case LM_ALPHA_N:
|
case LM_ALPHA_N:
|
||||||
return "LM_ALPHA_N";
|
return "LM_ALPHA_N";
|
||||||
case LM_MAP:
|
|
||||||
return "LM_MAP";
|
|
||||||
case LM_PLAIN_MAF:
|
case LM_PLAIN_MAF:
|
||||||
return "LM_PLAIN_MAF";
|
return "LM_PLAIN_MAF";
|
||||||
case LM_REAL_MAF:
|
case LM_REAL_MAF:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Sun May 03 03:40:24 EDT 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Wed May 06 12:33:00 EDT 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#ifndef CONFIG_BOARDS_KINETIS_CONFIG_CONTROLLERS_ALGO_ENGINE_CONFIGURATION_GENERATED_STRUCTURES_H
|
#ifndef CONFIG_BOARDS_KINETIS_CONFIG_CONTROLLERS_ALGO_ENGINE_CONFIGURATION_GENERATED_STRUCTURES_H
|
||||||
|
@ -1894,7 +1894,15 @@ struct engine_configuration_s {
|
||||||
/**
|
/**
|
||||||
* offset 1096
|
* offset 1096
|
||||||
*/
|
*/
|
||||||
int unusedAtOldBoardConfigurationEnd[92];
|
vehicle_info_t engineMake;
|
||||||
|
/**
|
||||||
|
* offset 1128
|
||||||
|
*/
|
||||||
|
vehicle_info_t engineCode;
|
||||||
|
/**
|
||||||
|
* offset 1160
|
||||||
|
*/
|
||||||
|
int unusedAtOldBoardConfigurationEnd[76];
|
||||||
/**
|
/**
|
||||||
offset 1464 bit 0 */
|
offset 1464 bit 0 */
|
||||||
bool vvtDisplayInverted : 1;
|
bool vvtDisplayInverted : 1;
|
||||||
|
@ -3166,7 +3174,7 @@ struct persistent_config_s {
|
||||||
/**
|
/**
|
||||||
* offset 6312
|
* offset 6312
|
||||||
*/
|
*/
|
||||||
uint8_t boostMapBins[BOOST_LOAD_COUNT];
|
uint8_t unused6312[8];
|
||||||
/**
|
/**
|
||||||
* offset 6320
|
* offset 6320
|
||||||
*/
|
*/
|
||||||
|
@ -3431,4 +3439,4 @@ typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Sun May 03 03:40:24 EDT 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Wed May 06 12:33:00 EDT 2020
|
||||||
|
|
|
@ -291,8 +291,6 @@
|
||||||
#define boostControlPinMode_offset_hex 3dd
|
#define boostControlPinMode_offset_hex 3dd
|
||||||
#define boostCutPressure_offset 2132
|
#define boostCutPressure_offset 2132
|
||||||
#define boostCutPressure_offset_hex 854
|
#define boostCutPressure_offset_hex 854
|
||||||
#define boostMapBins_offset 6312
|
|
||||||
#define boostMapBins_offset_hex 18a8
|
|
||||||
#define boostPid_dFactor_offset 1000
|
#define boostPid_dFactor_offset 1000
|
||||||
#define boostPid_dFactor_offset_hex 3e8
|
#define boostPid_dFactor_offset_hex 3e8
|
||||||
#define boostPid_iFactor_offset 996
|
#define boostPid_iFactor_offset 996
|
||||||
|
@ -554,10 +552,12 @@
|
||||||
#define enableLaunchRetard_offset_hex 3d0
|
#define enableLaunchRetard_offset_hex 3d0
|
||||||
#define enableVerboseCanTx_offset 744
|
#define enableVerboseCanTx_offset 744
|
||||||
#define enableVerboseCanTx_offset_hex 2e8
|
#define enableVerboseCanTx_offset_hex 2e8
|
||||||
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
#define ENGINE_NOISE_CURVE_SIZE 8
|
#define ENGINE_NOISE_CURVE_SIZE 8
|
||||||
#define engineChartSize_offset 1480
|
#define engineChartSize_offset 1480
|
||||||
#define engineChartSize_offset_hex 5c8
|
#define engineChartSize_offset_hex 5c8
|
||||||
|
#define engineCode_offset 1128
|
||||||
|
#define engineCode_offset_hex 468
|
||||||
#define engineConfiguration_offset 0
|
#define engineConfiguration_offset 0
|
||||||
#define engineConfiguration_offset_hex 0
|
#define engineConfiguration_offset_hex 0
|
||||||
#define engineLoadAccelEnrichmentMultiplier_offset 2072
|
#define engineLoadAccelEnrichmentMultiplier_offset 2072
|
||||||
|
@ -570,6 +570,8 @@
|
||||||
#define engineLoadDecelEnleanmentMultiplier_offset_hex 810
|
#define engineLoadDecelEnleanmentMultiplier_offset_hex 810
|
||||||
#define engineLoadDecelEnleanmentThreshold_offset 2060
|
#define engineLoadDecelEnleanmentThreshold_offset 2060
|
||||||
#define engineLoadDecelEnleanmentThreshold_offset_hex 80c
|
#define engineLoadDecelEnleanmentThreshold_offset_hex 80c
|
||||||
|
#define engineMake_offset 1096
|
||||||
|
#define engineMake_offset_hex 448
|
||||||
#define engineSnifferRpmThreshold_offset 4
|
#define engineSnifferRpmThreshold_offset 4
|
||||||
#define engineSnifferRpmThreshold_offset_hex 4
|
#define engineSnifferRpmThreshold_offset_hex 4
|
||||||
#define engineType_offset 0
|
#define engineType_offset 0
|
||||||
|
@ -1356,17 +1358,6 @@
|
||||||
#define ignitionMode_offset_hex 1b8
|
#define ignitionMode_offset_hex 1b8
|
||||||
#define ignitionOffset_offset 444
|
#define ignitionOffset_offset 444
|
||||||
#define ignitionOffset_offset_hex 1bc
|
#define ignitionOffset_offset_hex 1bc
|
||||||
#define ignitionPin10logic
|
|
||||||
#define ignitionPin11logic
|
|
||||||
#define ignitionPin12logic
|
|
||||||
#define ignitionPin2logic || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12))
|
|
||||||
#define ignitionPin3logic || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9))
|
|
||||||
#define ignitionPin4logic || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12))
|
|
||||||
#define ignitionPin5logic || ((firingOrder == 4) || (firingOrder == 12))
|
|
||||||
#define ignitionPin6logic
|
|
||||||
#define ignitionPin7logic || ((firingOrder == 11))
|
|
||||||
#define ignitionPin8logic || ((firingOrder == 5) || (firingOrder == 11))
|
|
||||||
#define ignitionPin9logic
|
|
||||||
#define ignitionPinMode_offset 649
|
#define ignitionPinMode_offset 649
|
||||||
#define ignitionPinMode_offset_hex 289
|
#define ignitionPinMode_offset_hex 289
|
||||||
#define ignitionPins10_offset 645
|
#define ignitionPins10_offset 645
|
||||||
|
@ -2276,6 +2267,8 @@
|
||||||
#define unused1476b20_offset_hex 5c4
|
#define unused1476b20_offset_hex 5c4
|
||||||
#define unused2432_offset 2432
|
#define unused2432_offset 2432
|
||||||
#define unused2432_offset_hex 980
|
#define unused2432_offset_hex 980
|
||||||
|
#define unused6312_offset 6312
|
||||||
|
#define unused6312_offset_hex 18a8
|
||||||
#define unused711_offset 711
|
#define unused711_offset 711
|
||||||
#define unused711_offset_hex 2c7
|
#define unused711_offset_hex 2c7
|
||||||
#define unused76b0_offset 76
|
#define unused76b0_offset 76
|
||||||
|
@ -2302,8 +2295,8 @@
|
||||||
#define unused_former_warmup_target_afr_offset_hex 834
|
#define unused_former_warmup_target_afr_offset_hex 834
|
||||||
#define unusedAntilagTimeout_offset 820
|
#define unusedAntilagTimeout_offset 820
|
||||||
#define unusedAntilagTimeout_offset_hex 334
|
#define unusedAntilagTimeout_offset_hex 334
|
||||||
#define unusedAtOldBoardConfigurationEnd_offset 1096
|
#define unusedAtOldBoardConfigurationEnd_offset 1160
|
||||||
#define unusedAtOldBoardConfigurationEnd_offset_hex 448
|
#define unusedAtOldBoardConfigurationEnd_offset_hex 488
|
||||||
#define unusedBit4_1476_offset 1476
|
#define unusedBit4_1476_offset 1476
|
||||||
#define unusedBit4_1476_offset_hex 5c4
|
#define unusedBit4_1476_offset_hex 5c4
|
||||||
#define unusedBit_251_10_offset 976
|
#define unusedBit_251_10_offset 976
|
||||||
|
@ -2453,6 +2446,7 @@
|
||||||
#define vbattAdcChannel_offset_hex 201
|
#define vbattAdcChannel_offset_hex 201
|
||||||
#define vbattDividerCoeff_offset 464
|
#define vbattDividerCoeff_offset 464
|
||||||
#define vbattDividerCoeff_offset_hex 1d0
|
#define vbattDividerCoeff_offset_hex 1d0
|
||||||
|
#define VEHICLE_INFO_SIZE 32
|
||||||
#define vehicleSpeedCoef_offset 476
|
#define vehicleSpeedCoef_offset 476
|
||||||
#define vehicleSpeedCoef_offset_hex 1dc
|
#define vehicleSpeedCoef_offset_hex 1dc
|
||||||
#define vehicleSpeedSensorInputPin_offset 968
|
#define vehicleSpeedSensorInputPin_offset 968
|
||||||
|
|
|
@ -24,4 +24,4 @@ endif
|
||||||
|
|
||||||
|
|
||||||
# Override DEFAULT_ENGINE_TYPE
|
# Override DEFAULT_ENGINE_TYPE
|
||||||
DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"proteus\" -DDEFAULT_ENGINE_TYPE=PROTEUS -DUSE_ADC3_VBATT_HACK -DSTM32_ADC_USE_ADC3=TRUE -DEFI_INCLUDE_ENGINE_PRESETS=FALSE
|
DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DEFI_FATAL_ERROR_PIN=GPIOE_3 -DFIRMWARE_ID=\"proteus\" -DDEFAULT_ENGINE_TYPE=PROTEUS -DUSE_ADC3_VBATT_HACK -DSTM32_ADC_USE_ADC3=TRUE -DEFI_INCLUDE_ENGINE_PRESETS=FALSE -DEFI_ICU_INPUTS=FALSE -DHAL_TRIGGER_USE_PAL=TRUE -DEFI_VEHICLE_SPEED=FALSE -DEFI_LOGIC_ANALYZER=FALSE
|
||||||
|
|
|
@ -20,62 +20,12 @@
|
||||||
|
|
||||||
EXTERN_CONFIG;
|
EXTERN_CONFIG;
|
||||||
|
|
||||||
static const fuel_table_t default_139qmb_fuel_table = {
|
|
||||||
|
|
||||||
{ 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000 }, { 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000 }, { 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000 }, { 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000 }, { 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000 },
|
|
||||||
{ 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000 }, { 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000 }, { 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000 }, { 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000 }, { 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000 }, { 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000 }, { 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000 }, { 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000 }, { 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000 }, { 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000 }, { 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000, 6.000000, 6.000000, 6.000000, 6.000000, 6.000000,
|
|
||||||
6.000000 }
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
static void setDefault139qmbMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
static void setDefault139qmbMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
|
|
||||||
setFuelLoadBin(1.2, 4.4 PASS_CONFIG_PARAMETER_SUFFIX);
|
setFuelLoadBin(1.2, 4.4 PASS_CONFIG_PARAMETER_SUFFIX);
|
||||||
setFuelRpmBin(1000, 11000 PASS_CONFIG_PARAMETER_SUFFIX);
|
setFuelRpmBin(1000, 11000 PASS_CONFIG_PARAMETER_SUFFIX);
|
||||||
setTimingLoadBin(1.2, 4.4 PASS_CONFIG_PARAMETER_SUFFIX);
|
setTimingLoadBin(1.2, 4.4 PASS_CONFIG_PARAMETER_SUFFIX);
|
||||||
setTimingRpmBin(1000, 11000 PASS_CONFIG_PARAMETER_SUFFIX);
|
setTimingRpmBin(1000, 11000 PASS_CONFIG_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
copyFuelTable(default_139qmb_fuel_table, config->fuelTable);
|
|
||||||
//copyTimingTable(default_139qmb_timing_table, config->ignitionTable);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setGy6139qmbDefaultEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
void setGy6139qmbDefaultEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
|
@ -87,7 +37,6 @@ void setGy6139qmbDefaultEngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE)
|
||||||
engineConfiguration->cranking.rpm = 1100;
|
engineConfiguration->cranking.rpm = 1100;
|
||||||
setTargetRpmCurve(2000 PASS_CONFIG_PARAMETER_SUFFIX);
|
setTargetRpmCurve(2000 PASS_CONFIG_PARAMETER_SUFFIX);
|
||||||
engineConfiguration->analogInputDividerCoefficient = 1;
|
engineConfiguration->analogInputDividerCoefficient = 1;
|
||||||
engineConfiguration->fuelAlgorithm = LM_MAP;
|
|
||||||
engineConfiguration->globalTriggerAngleOffset = 45;
|
engineConfiguration->globalTriggerAngleOffset = 45;
|
||||||
engineConfiguration->sensorChartMode = SC_MAP;
|
engineConfiguration->sensorChartMode = SC_MAP;
|
||||||
engineConfiguration->specs.displacement = 0.072; // 72cc
|
engineConfiguration->specs.displacement = 0.072; // 72cc
|
||||||
|
|
|
@ -78,7 +78,6 @@
|
||||||
|
|
||||||
// todo: start using consoleUartDevice? Not sure
|
// todo: start using consoleUartDevice? Not sure
|
||||||
#undef EFI_CONSOLE_SERIAL_DEVICE
|
#undef EFI_CONSOLE_SERIAL_DEVICE
|
||||||
#define EFI_CONSOLE_SERIAL_DEVICE (&SD3)
|
|
||||||
|
|
||||||
// todo: our "DMA-half" ChibiOS patch not implemented for USARTv2/STM32F7
|
// todo: our "DMA-half" ChibiOS patch not implemented for USARTv2/STM32F7
|
||||||
#undef TS_UART_DMA_MODE
|
#undef TS_UART_DMA_MODE
|
||||||
|
|
|
@ -18,9 +18,7 @@
|
||||||
#include "io_pins.h"
|
#include "io_pins.h"
|
||||||
#include "engine_configuration.h"
|
#include "engine_configuration.h"
|
||||||
#include "pwm_generator_logic.h"
|
#include "pwm_generator_logic.h"
|
||||||
#include "pid.h"
|
|
||||||
#include "engine_controller.h"
|
#include "engine_controller.h"
|
||||||
#include "periodic_task.h"
|
|
||||||
#include "pin_repository.h"
|
#include "pin_repository.h"
|
||||||
#include "pwm_generator_logic.h"
|
#include "pwm_generator_logic.h"
|
||||||
#include "pid_auto_tune.h"
|
#include "pid_auto_tune.h"
|
||||||
|
@ -37,96 +35,129 @@ static Logging *logger;
|
||||||
static boostOpenLoop_Map3D_t boostMapOpen("boostmapopen", 1);
|
static boostOpenLoop_Map3D_t boostMapOpen("boostmapopen", 1);
|
||||||
static boostOpenLoop_Map3D_t boostMapClosed("boostmapclosed", 1);
|
static boostOpenLoop_Map3D_t boostMapClosed("boostmapclosed", 1);
|
||||||
static SimplePwm boostPwmControl("boost");
|
static SimplePwm boostPwmControl("boost");
|
||||||
static Pid boostControlPid;
|
|
||||||
|
|
||||||
static bool shouldResetPid = false;
|
void BoostController::init(SimplePwm* pwm, const ValueProvider3D* openLoopMap, const ValueProvider3D* closedLoopTargetMap, pid_s* pidParams) {
|
||||||
|
m_pwm = pwm;
|
||||||
|
m_openLoopMap = openLoopMap;
|
||||||
|
m_closedLoopTargetMap = closedLoopTargetMap;
|
||||||
|
|
||||||
#if EFI_TUNER_STUDIO
|
m_pid.initPidClass(pidParams);
|
||||||
extern TunerStudioOutputChannels tsOutputChannels;
|
|
||||||
#endif /* EFI_TUNER_STUDIO */
|
|
||||||
|
|
||||||
static void pidReset(void) {
|
|
||||||
boostControlPid.reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class BoostControl: public PeriodicTimerController {
|
|
||||||
DECLARE_ENGINE_PTR;
|
|
||||||
|
|
||||||
int getPeriodMs() override {
|
void BoostController::reset() {
|
||||||
|
m_shouldResetPid = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BoostController::onConfigurationChange(pid_s* previousConfiguration) {
|
||||||
|
if (!m_pid.isSame(previousConfiguration)) {
|
||||||
|
m_shouldResetPid = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int BoostController::getPeriodMs() {
|
||||||
return GET_PERIOD_LIMITED(&engineConfiguration->boostPid);
|
return GET_PERIOD_LIMITED(&engineConfiguration->boostPid);
|
||||||
|
}
|
||||||
|
|
||||||
|
expected<float> BoostController::observePlant() const {
|
||||||
|
float map = getMap(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
if (cisnan(map)) {
|
||||||
|
return unexpected;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PeriodicTask() override {
|
return map;
|
||||||
if (shouldResetPid) {
|
}
|
||||||
pidReset();
|
|
||||||
shouldResetPid = false;
|
expected<float> BoostController::getSetpoint() const {
|
||||||
|
float rpm = GET_RPM();
|
||||||
|
|
||||||
|
auto tps = Sensor::get(SensorType::DriverThrottleIntent);
|
||||||
|
|
||||||
|
if (!tps) {
|
||||||
|
return unexpected;
|
||||||
}
|
}
|
||||||
|
|
||||||
float rpm = GET_RPM_VALUE;
|
if (!m_closedLoopTargetMap) {
|
||||||
float mapValue = getMap(PASS_ENGINE_PARAMETER_SIGNATURE);
|
return unexpected;
|
||||||
|
|
||||||
if (!engineConfiguration->isBoostControlEnabled)
|
|
||||||
return;
|
|
||||||
|
|
||||||
bool engineRunning = rpm > engineConfiguration->cranking.rpm;
|
|
||||||
if (!engineRunning) {
|
|
||||||
boostControlPid.reset();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
percent_t openLoopDuty = boostMapOpen.getValue(rpm / RPM_1_BYTE_PACKING_MULT, mapValue / LOAD_1_BYTE_PACKING_MULT) * LOAD_1_BYTE_PACKING_MULT;
|
return m_closedLoopTargetMap->getValue(rpm / RPM_1_BYTE_PACKING_MULT, tps.Value / TPS_1_BYTE_PACKING_MULT) * LOAD_1_BYTE_PACKING_MULT;
|
||||||
percent_t closedLoopDuty = 0;
|
}
|
||||||
percent_t duty = openLoopDuty;
|
|
||||||
|
|
||||||
if (engineConfiguration->boostType == CLOSED_LOOP) {
|
expected<percent_t> BoostController::getOpenLoop(float target) const {
|
||||||
auto [valid, tps] = Sensor::get(SensorType::DriverThrottleIntent);
|
// Boost control open loop doesn't care about target - only MAP/RPM
|
||||||
|
UNUSED(target);
|
||||||
|
|
||||||
if (valid) {
|
float rpm = GET_RPM();
|
||||||
float targetBoost = boostMapClosed.getValue(rpm / RPM_1_BYTE_PACKING_MULT, tps / TPS_1_BYTE_PACKING_MULT) * LOAD_1_BYTE_PACKING_MULT;
|
auto tps = Sensor::get(SensorType::DriverThrottleIntent);
|
||||||
closedLoopDuty = openLoopDuty + boostControlPid.getOutput(targetBoost, mapValue);
|
|
||||||
duty += closedLoopDuty;
|
if (!tps) {
|
||||||
}
|
return unexpected;
|
||||||
}
|
}
|
||||||
|
|
||||||
boostControlPid.iTermMin = -50;
|
if (!m_openLoopMap) {
|
||||||
boostControlPid.iTermMax = 50;
|
return unexpected;
|
||||||
|
}
|
||||||
|
|
||||||
|
percent_t openLoop = m_openLoopMap->getValue(rpm / RPM_1_BYTE_PACKING_MULT, tps.Value / TPS_1_BYTE_PACKING_MULT) * LOAD_1_BYTE_PACKING_MULT;
|
||||||
|
|
||||||
if (engineConfiguration->debugMode == DBG_BOOST) {
|
|
||||||
#if EFI_TUNER_STUDIO
|
#if EFI_TUNER_STUDIO
|
||||||
boostControlPid.postState(&tsOutputChannels);
|
if (engineConfiguration->debugMode == DBG_BOOST) {
|
||||||
tsOutputChannels.debugFloatField1 = openLoopDuty;
|
tsOutputChannels.debugFloatField1 = openLoop;
|
||||||
tsOutputChannels.debugFloatField7 = closedLoopDuty;
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return openLoop;
|
||||||
|
}
|
||||||
|
|
||||||
|
expected<percent_t> BoostController::getClosedLoop(float target, float manifoldPressure) {
|
||||||
|
// If we're in open loop only mode, make no closed loop correction.
|
||||||
|
if (engineConfiguration->boostType != CLOSED_LOOP) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset PID if requested
|
||||||
|
if (m_shouldResetPid) {
|
||||||
|
m_pid.reset();
|
||||||
|
m_shouldResetPid = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the engine isn't running, don't correct.
|
||||||
|
if (GET_RPM() == 0) {
|
||||||
|
m_pid.reset();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
float closedLoop = m_pid.getOutput(target, manifoldPressure);
|
||||||
|
|
||||||
|
#if EFI_TUNER_STUDIO
|
||||||
|
if (engineConfiguration->debugMode == DBG_BOOST) {
|
||||||
|
m_pid.postState(&tsOutputChannels);
|
||||||
|
tsOutputChannels.debugFloatField2 = closedLoop;
|
||||||
|
}
|
||||||
#endif /* EFI_TUNER_STUDIO */
|
#endif /* EFI_TUNER_STUDIO */
|
||||||
}
|
|
||||||
|
|
||||||
#if EFI_LAUNCH_CONTROL
|
return closedLoop;
|
||||||
if (engine->setLaunchBoostDuty) {
|
|
||||||
duty = engineConfiguration->launchBoostDuty;
|
|
||||||
}
|
|
||||||
#endif /* EFI_LAUNCH_CONTROL */
|
|
||||||
|
|
||||||
boostPwmControl.setSimplePwmDutyCycle(PERCENT_TO_DUTY(duty));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static BoostControl BoostController;
|
|
||||||
|
|
||||||
#if !EFI_UNIT_TEST
|
|
||||||
void setBoostPFactor(float value) {
|
|
||||||
engineConfiguration->boostPid.pFactor = value;
|
|
||||||
boostControlPid.reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBoostIFactor(float value) {
|
void BoostController::setOutput(expected<float> output) {
|
||||||
engineConfiguration->boostPid.iFactor = value;
|
// TODO: hook up safe duty cycle
|
||||||
boostControlPid.reset();
|
float duty = PERCENT_TO_DUTY(output.value_or(/*CONFIG(boostControlSafeDutyCycle)*/ 0));
|
||||||
|
|
||||||
|
if (m_pwm) {
|
||||||
|
m_pwm->setSimplePwmDutyCycle(duty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBoostDFactor(float value) {
|
void BoostController::PeriodicTask() {
|
||||||
engineConfiguration->boostPid.dFactor = value;
|
m_pid.iTermMin = -50;
|
||||||
boostControlPid.reset();
|
m_pid.iTermMax = 50;
|
||||||
|
|
||||||
|
update();
|
||||||
}
|
}
|
||||||
#endif /* EFI_UNIT_TEST */
|
|
||||||
|
BoostController boostController;
|
||||||
|
|
||||||
void setDefaultBoostParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
void setDefaultBoostParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->isBoostControlEnabled = true;
|
engineConfiguration->isBoostControlEnabled = true;
|
||||||
|
@ -141,22 +172,17 @@ void setDefaultBoostParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->boostControlPinMode = OM_DEFAULT;
|
engineConfiguration->boostControlPinMode = OM_DEFAULT;
|
||||||
|
|
||||||
setLinearCurve(config->boostRpmBins, 0, 8000 / RPM_1_BYTE_PACKING_MULT, 1);
|
setLinearCurve(config->boostRpmBins, 0, 8000 / RPM_1_BYTE_PACKING_MULT, 1);
|
||||||
setLinearCurve(config->boostMapBins, 0, 300 / LOAD_1_BYTE_PACKING_MULT, 1);
|
|
||||||
for (int loadIndex = 0;loadIndex<BOOST_LOAD_COUNT;loadIndex++) {
|
|
||||||
for (int rpmIndex = 0;rpmIndex<BOOST_RPM_COUNT;rpmIndex++) {
|
|
||||||
config->boostTableOpenLoop[loadIndex][rpmIndex] = config->boostMapBins[loadIndex];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
setLinearCurve(config->boostTpsBins, 0, 100 / TPS_1_BYTE_PACKING_MULT, 1);
|
setLinearCurve(config->boostTpsBins, 0, 100 / TPS_1_BYTE_PACKING_MULT, 1);
|
||||||
for (int loadIndex = 0;loadIndex<BOOST_LOAD_COUNT;loadIndex++) {
|
|
||||||
for (int rpmIndex = 0;rpmIndex<BOOST_RPM_COUNT;rpmIndex++) {
|
for (int loadIndex = 0; loadIndex < BOOST_LOAD_COUNT; loadIndex++) {
|
||||||
|
for (int rpmIndex = 0; rpmIndex < BOOST_RPM_COUNT; rpmIndex++) {
|
||||||
|
config->boostTableOpenLoop[loadIndex][rpmIndex] = config->boostTpsBins[loadIndex];
|
||||||
config->boostTableClosedLoop[loadIndex][rpmIndex] = config->boostTpsBins[loadIndex];
|
config->boostTableClosedLoop[loadIndex][rpmIndex] = config->boostTpsBins[loadIndex];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void turnBoostPidOn() {
|
void startBoostPin() {
|
||||||
#if !EFI_UNIT_TEST
|
#if !EFI_UNIT_TEST
|
||||||
if (CONFIG(boostControlPin) == GPIO_UNASSIGNED){
|
if (CONFIG(boostControlPin) == GPIO_UNASSIGNED){
|
||||||
return;
|
return;
|
||||||
|
@ -174,18 +200,14 @@ static void turnBoostPidOn() {
|
||||||
#endif /* EFI_UNIT_TEST */
|
#endif /* EFI_UNIT_TEST */
|
||||||
}
|
}
|
||||||
|
|
||||||
void startBoostPin(void) {
|
void stopBoostPin() {
|
||||||
turnBoostPidOn();
|
|
||||||
}
|
|
||||||
|
|
||||||
void stopBoostPin(void) {
|
|
||||||
#if !EFI_UNIT_TEST
|
#if !EFI_UNIT_TEST
|
||||||
brain_pin_markUnused(activeConfiguration.boostControlPin);
|
brain_pin_markUnused(activeConfiguration.boostControlPin);
|
||||||
#endif /* EFI_UNIT_TEST */
|
#endif /* EFI_UNIT_TEST */
|
||||||
}
|
}
|
||||||
|
|
||||||
void onConfigurationChangeBoostCallback(engine_configuration_s *previousConfiguration) {
|
void onConfigurationChangeBoostCallback(engine_configuration_s *previousConfiguration) {
|
||||||
shouldResetPid = !boostControlPid.isSame(&previousConfiguration->boostPid);
|
boostController.onConfigurationChange(&previousConfiguration->boostPid);
|
||||||
}
|
}
|
||||||
|
|
||||||
void initBoostCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
void initBoostCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
@ -195,15 +217,18 @@ void initBoostCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
boostControlPid.initPidClass(&engineConfiguration->boostPid);
|
|
||||||
|
|
||||||
logger = sharedLogger;
|
logger = sharedLogger;
|
||||||
boostMapOpen.init(config->boostTableOpenLoop, config->boostMapBins, config->boostRpmBins);
|
|
||||||
|
// Set up open & closed loop tables
|
||||||
|
boostMapOpen.init(config->boostTableOpenLoop, config->boostTpsBins, config->boostRpmBins);
|
||||||
boostMapClosed.init(config->boostTableClosedLoop, config->boostTpsBins, config->boostRpmBins);
|
boostMapClosed.init(config->boostTableClosedLoop, config->boostTpsBins, config->boostRpmBins);
|
||||||
boostControlPid.reset();
|
|
||||||
|
// Set up boost controller instance
|
||||||
|
boostController.init(&boostPwmControl, &boostMapOpen, &boostMapClosed, &engineConfiguration->boostPid);
|
||||||
|
|
||||||
#if !EFI_UNIT_TEST
|
#if !EFI_UNIT_TEST
|
||||||
startBoostPin();
|
startBoostPin();
|
||||||
BoostController.Start();
|
boostController.Start();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,13 +8,46 @@
|
||||||
|
|
||||||
#include "engine.h"
|
#include "engine.h"
|
||||||
#include "periodic_task.h"
|
#include "periodic_task.h"
|
||||||
|
#include "closed_loop_controller.h"
|
||||||
|
#include "pid.h"
|
||||||
|
|
||||||
void startBoostPin(void);
|
class SimplePwm;
|
||||||
void stopBoostPin(void);
|
|
||||||
|
class BoostController : public ClosedLoopController<float, percent_t>, public PeriodicTimerController {
|
||||||
|
public:
|
||||||
|
DECLARE_ENGINE_PTR;
|
||||||
|
|
||||||
|
void init(SimplePwm* pmw, const ValueProvider3D* openLoopMap, const ValueProvider3D* closedLoopTargetMap, pid_s* pidParams);
|
||||||
|
|
||||||
|
// PeriodicTimerController implementation
|
||||||
|
int getPeriodMs() override;
|
||||||
|
void PeriodicTask() override;
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
// Called when the configuration may have changed. Controller will
|
||||||
|
// reset if necessary.
|
||||||
|
void onConfigurationChange(pid_s* previousConfiguration);
|
||||||
|
|
||||||
|
// Helpers for individual parts of boost control
|
||||||
|
expected<float> observePlant() const override;
|
||||||
|
expected<float> getSetpoint() const override;
|
||||||
|
|
||||||
|
expected<percent_t> getOpenLoop(float target) const override;
|
||||||
|
expected<percent_t> getClosedLoop(float target, float manifoldPressure) override;
|
||||||
|
|
||||||
|
void setOutput(expected<percent_t> outputValue) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m_shouldResetPid = false;
|
||||||
|
Pid m_pid;
|
||||||
|
|
||||||
|
const ValueProvider3D* m_openLoopMap = nullptr;
|
||||||
|
const ValueProvider3D* m_closedLoopTargetMap = nullptr;
|
||||||
|
SimplePwm* m_pwm = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
void startBoostPin();
|
||||||
|
void stopBoostPin();
|
||||||
void initBoostCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
void initBoostCtrl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void setBoostPFactor(float p);
|
|
||||||
void setBoostIFactor(float i);
|
|
||||||
void setBoostDFactor(float d);
|
|
||||||
void setDefaultBoostParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
void setDefaultBoostParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||||
void showBoostInfo(void);
|
|
||||||
void onConfigurationChangeBoostCallback(engine_configuration_s *previousConfiguration);
|
void onConfigurationChangeBoostCallback(engine_configuration_s *previousConfiguration);
|
||||||
|
|
|
@ -222,29 +222,59 @@ expected<percent_t> EtbController::getClosedLoopAutotune(percent_t actualThrottl
|
||||||
|
|
||||||
// Publish to TS state
|
// Publish to TS state
|
||||||
#if EFI_TUNER_STUDIO
|
#if EFI_TUNER_STUDIO
|
||||||
|
// Amplitude of input (duty cycle %)
|
||||||
|
float b = 2 * autotuneAmplitude;
|
||||||
|
|
||||||
|
// Ultimate gain per A-H relay tuning rule
|
||||||
|
float ku = 4 * b / (3.14159f * m_a);
|
||||||
|
|
||||||
|
// The multipliers below are somewhere near the "no overshoot"
|
||||||
|
// and "some overshoot" flavors of the Ziegler-Nichols method
|
||||||
|
// Kp
|
||||||
|
float kp = 0.35f * ku;
|
||||||
|
float ki = 0.25f * ku / m_tu;
|
||||||
|
float kd = 0.08f * ku * m_tu;
|
||||||
|
|
||||||
|
// Every 5 cycles (of the throttle), cycle to the next value
|
||||||
|
if (m_autotuneCounter == 5) {
|
||||||
|
m_autotuneCounter = 0;
|
||||||
|
m_autotuneCurrentParam++;
|
||||||
|
|
||||||
|
if (m_autotuneCurrentParam >= 3) {
|
||||||
|
m_autotuneCurrentParam = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_autotuneCounter++;
|
||||||
|
|
||||||
|
// Multiplex 3 signals on to the {mode, value} format
|
||||||
|
tsOutputChannels.calibrationMode = static_cast<TsCalMode>(m_autotuneCurrentParam + 3);
|
||||||
|
|
||||||
|
switch (m_autotuneCurrentParam) {
|
||||||
|
case 0:
|
||||||
|
tsOutputChannels.calibrationValue = kp;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
tsOutputChannels.calibrationValue = ki;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
tsOutputChannels.calibrationValue = kd;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Also output to debug channels if configured
|
||||||
if (engineConfiguration->debugMode == DBG_ETB_AUTOTUNE) {
|
if (engineConfiguration->debugMode == DBG_ETB_AUTOTUNE) {
|
||||||
// a - amplitude of output (TPS %)
|
// a - amplitude of output (TPS %)
|
||||||
|
|
||||||
tsOutputChannels.debugFloatField1 = m_a;
|
tsOutputChannels.debugFloatField1 = m_a;
|
||||||
float b = 2 * autotuneAmplitude;
|
|
||||||
// b - amplitude of input (Duty cycle %)
|
// b - amplitude of input (Duty cycle %)
|
||||||
tsOutputChannels.debugFloatField2 = b;
|
tsOutputChannels.debugFloatField2 = b;
|
||||||
// Tu - oscillation period (seconds)
|
// Tu - oscillation period (seconds)
|
||||||
tsOutputChannels.debugFloatField3 = m_tu;
|
tsOutputChannels.debugFloatField3 = m_tu;
|
||||||
|
|
||||||
// Ultimate gain per A-H relay tuning rule
|
|
||||||
// Ku
|
|
||||||
float ku = 4 * b / (3.14159f * m_a);
|
|
||||||
tsOutputChannels.debugFloatField4 = ku;
|
tsOutputChannels.debugFloatField4 = ku;
|
||||||
|
tsOutputChannels.debugFloatField5 = kp;
|
||||||
// The multipliers below are somewhere near the "no overshoot"
|
tsOutputChannels.debugFloatField6 = ki;
|
||||||
// and "some overshoot" flavors of the Ziegler-Nichols method
|
tsOutputChannels.debugFloatField7 = kd;
|
||||||
// Kp
|
|
||||||
tsOutputChannels.debugFloatField5 = 0.35f * ku;
|
|
||||||
// Ki
|
|
||||||
tsOutputChannels.debugFloatField6 = 0.25f * ku / m_tu;
|
|
||||||
// Kd
|
|
||||||
tsOutputChannels.debugFloatField7 = 0.08f * ku * m_tu;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,8 +88,14 @@ private:
|
||||||
efitick_t m_cycleStartTime = 0;
|
efitick_t m_cycleStartTime = 0;
|
||||||
float m_minCycleTps = 0;
|
float m_minCycleTps = 0;
|
||||||
float m_maxCycleTps = 0;
|
float m_maxCycleTps = 0;
|
||||||
float m_a = 0;
|
// Autotune measured parameters: gain and ultimate period
|
||||||
float m_tu = 0;
|
// These are set to correct order of magnitude starting points
|
||||||
|
// so we converge more quickly on the correct values
|
||||||
|
float m_a = 8;
|
||||||
|
float m_tu = 0.1f;
|
||||||
|
|
||||||
|
uint8_t m_autotuneCounter = 0;
|
||||||
|
uint8_t m_autotuneCurrentParam = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void initElectronicThrottle(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
|
@ -368,8 +368,7 @@ float getInitialAdvance(int rpm, float map, float advanceMax) {
|
||||||
* this method builds a good-enough base timing advance map bases on a number of heuristics
|
* this method builds a good-enough base timing advance map bases on a number of heuristics
|
||||||
*/
|
*/
|
||||||
void buildTimingMap(float advanceMax DECLARE_CONFIG_PARAMETER_SUFFIX) {
|
void buildTimingMap(float advanceMax DECLARE_CONFIG_PARAMETER_SUFFIX) {
|
||||||
if (engineConfiguration->fuelAlgorithm != LM_SPEED_DENSITY &&
|
if (engineConfiguration->fuelAlgorithm != LM_SPEED_DENSITY) {
|
||||||
engineConfiguration->fuelAlgorithm != LM_MAP) {
|
|
||||||
warning(CUSTOM_WRONG_ALGORITHM, "wrong algorithm for MAP-based timing");
|
warning(CUSTOM_WRONG_ALGORITHM, "wrong algorithm for MAP-based timing");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -660,8 +660,6 @@ case Force_4_bytes_size_engine_load_mode:
|
||||||
return "Force_4_bytes_size_engine_load_mode";
|
return "Force_4_bytes_size_engine_load_mode";
|
||||||
case LM_ALPHA_N:
|
case LM_ALPHA_N:
|
||||||
return "LM_ALPHA_N";
|
return "LM_ALPHA_N";
|
||||||
case LM_MAP:
|
|
||||||
return "LM_MAP";
|
|
||||||
case LM_PLAIN_MAF:
|
case LM_PLAIN_MAF:
|
||||||
return "LM_PLAIN_MAF";
|
return "LM_PLAIN_MAF";
|
||||||
case LM_REAL_MAF:
|
case LM_REAL_MAF:
|
||||||
|
|
|
@ -145,6 +145,8 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
|
||||||
cylinderCleanupControl(PASS_ENGINE_PARAMETER_SIGNATURE);
|
cylinderCleanupControl(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
standardAirCharge = getStandardAirCharge(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
#if (BOARD_TLE8888_COUNT > 0)
|
#if (BOARD_TLE8888_COUNT > 0)
|
||||||
if (CONFIG(useTLE8888_cranking_hack) && ENGINE(rpmCalculator).isCranking(PASS_ENGINE_PARAMETER_SIGNATURE)) {
|
if (CONFIG(useTLE8888_cranking_hack) && ENGINE(rpmCalculator).isCranking(PASS_ENGINE_PARAMETER_SIGNATURE)) {
|
||||||
efitick_t nowNt = getTimeNowNt();
|
efitick_t nowNt = getTimeNowNt();
|
||||||
|
|
|
@ -216,6 +216,9 @@ public:
|
||||||
*/
|
*/
|
||||||
floatms_t actualLastInjection = 0;
|
floatms_t actualLastInjection = 0;
|
||||||
|
|
||||||
|
// Standard cylinder air charge - 100% VE at standard temperature, grams per cylinder
|
||||||
|
float standardAirCharge = 0;
|
||||||
|
|
||||||
void periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
void periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
void updateSlowSensors(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void updateSlowSensors(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
|
@ -35,6 +35,8 @@ typedef enum {
|
||||||
FO_1_2_3_4_5_6 = 9,
|
FO_1_2_3_4_5_6 = 9,
|
||||||
FO_1_6_3_2_5_4 = 13, // EG33
|
FO_1_6_3_2_5_4 = 13, // EG33
|
||||||
|
|
||||||
|
// todo: one day we shall support 7 cylinder radial, probably not before one actually approaches us
|
||||||
|
|
||||||
// 8 cylinder
|
// 8 cylinder
|
||||||
FO_1_8_4_3_6_5_7_2 = 5,
|
FO_1_8_4_3_6_5_7_2 = 5,
|
||||||
FO_1_8_7_2_6_5_4_3 = 11,
|
FO_1_8_7_2_6_5_4_3 = 11,
|
||||||
|
@ -43,6 +45,7 @@ typedef enum {
|
||||||
FO_1_3_7_2_6_5_4_8 = 20, // Ford 5.0 HO and 351W
|
FO_1_3_7_2_6_5_4_8 = 20, // Ford 5.0 HO and 351W
|
||||||
|
|
||||||
// 9 cylinder - for instance radial :)
|
// 9 cylinder - for instance radial :)
|
||||||
|
// PS: Matt says that 9cyl is actually 1-3-5-7-9-2-4-6-8 or 1-8-6-4-2-9-7-5-3 for reverse rotation
|
||||||
FO_1_2_3_4_5_6_7_8_9 = 21,
|
FO_1_2_3_4_5_6_7_8_9 = 21,
|
||||||
|
|
||||||
// 10 cylinder
|
// 10 cylinder
|
||||||
|
|
|
@ -164,10 +164,8 @@ float getRealMafFuel(float airSpeed, int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
|
||||||
float cylinderAirmass = airPerRevolution / halfCylCount;
|
float cylinderAirmass = airPerRevolution / halfCylCount;
|
||||||
|
|
||||||
//Calculation of 100% VE air mass in g/rev - 1 cylinder filling at 1.2929g/L
|
|
||||||
float StandardAirCharge = CONFIG(specs.displacement) / CONFIG(specs.cylindersCount) * 1.2929;
|
|
||||||
//Create % load for fuel table using relative naturally aspiratedcylinder filling
|
//Create % load for fuel table using relative naturally aspiratedcylinder filling
|
||||||
float airChargeLoad = 100 * cylinderAirmass/StandardAirCharge;
|
float airChargeLoad = 100 * cylinderAirmass / ENGINE(standardAirCharge);
|
||||||
|
|
||||||
//Correct air mass by VE table
|
//Correct air mass by VE table
|
||||||
float corrCylAirmass = cylinderAirmass * veMap.getValue(rpm, airChargeLoad) / 100;
|
float corrCylAirmass = cylinderAirmass * veMap.getValue(rpm, airChargeLoad) / 100;
|
||||||
|
@ -452,6 +450,15 @@ floatms_t getCrankingFuel(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
return getCrankingFuel3(Sensor::get(SensorType::Clt).value_or(20),
|
return getCrankingFuel3(Sensor::get(SensorType::Clt).value_or(20),
|
||||||
engine->rpmCalculator.getRevolutionCounterSinceStart() PASS_ENGINE_PARAMETER_SUFFIX);
|
engine->rpmCalculator.getRevolutionCounterSinceStart() PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float getStandardAirCharge(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
float totalDisplacement = CONFIG(specs.displacement);
|
||||||
|
float cylDisplacement = totalDisplacement / CONFIG(specs.cylindersCount);
|
||||||
|
|
||||||
|
// Calculation of 100% VE air mass in g/cyl - 1 cylinder filling at 1.204/L - air density at 20C
|
||||||
|
return cylDisplacement * 1.204f;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
float getFuelRate(floatms_t totalInjDuration, efitick_t timePeriod DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
float getFuelRate(floatms_t totalInjDuration, efitick_t timePeriod DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
|
|
@ -37,5 +37,7 @@ floatms_t getCrankingFuel3(float coolantTemperature, uint32_t revolutionCounterS
|
||||||
floatms_t getInjectionDuration(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX);
|
floatms_t getInjectionDuration(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
percent_t getInjectorDutyCycle(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX);
|
percent_t getInjectorDutyCycle(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
|
float getStandardAirCharge(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
// convert injection duration (Ms/Nt) to fuel rate (L/h)
|
// convert injection duration (Ms/Nt) to fuel rate (L/h)
|
||||||
float getFuelRate(floatms_t totalInjDuration, efitick_t timePeriod DECLARE_ENGINE_PARAMETER_SUFFIX);
|
float getFuelRate(floatms_t totalInjDuration, efitick_t timePeriod DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
|
@ -405,10 +405,6 @@ typedef enum {
|
||||||
* Throttle Position Sensor value is used as engine load. http://en.wikipedia.org/wiki/Throttle_position_sensor
|
* Throttle Position Sensor value is used as engine load. http://en.wikipedia.org/wiki/Throttle_position_sensor
|
||||||
*/
|
*/
|
||||||
LM_ALPHA_N = 1,
|
LM_ALPHA_N = 1,
|
||||||
/**
|
|
||||||
* raw Manifold Absolute Pressure sensor value is used as engine load http://en.wikipedia.org/wiki/MAP_sensor
|
|
||||||
*/
|
|
||||||
LM_MAP = 2,
|
|
||||||
/**
|
/**
|
||||||
* Speed Density algorithm - Engine Load is a function of MAP, VE and target AFR
|
* Speed Density algorithm - Engine Load is a function of MAP, VE and target AFR
|
||||||
* http://articles.sae.org/8539/
|
* http://articles.sae.org/8539/
|
||||||
|
|
|
@ -83,6 +83,8 @@ typedef void (*Void)(void);
|
||||||
|
|
||||||
typedef char error_message_t[ERROR_BUFFER_SIZE];
|
typedef char error_message_t[ERROR_BUFFER_SIZE];
|
||||||
|
|
||||||
|
typedef char vehicle_info_t[VEHICLE_INFO_SIZE];
|
||||||
|
|
||||||
typedef char le_formula_t[LE_COMMAND_LENGTH];
|
typedef char le_formula_t[LE_COMMAND_LENGTH];
|
||||||
|
|
||||||
typedef brain_pin_e egt_cs_array_t[EGT_CHANNEL_COUNT];
|
typedef brain_pin_e egt_cs_array_t[EGT_CHANNEL_COUNT];
|
||||||
|
|
|
@ -259,9 +259,6 @@ static void handleCommandX14(uint16_t index) {
|
||||||
case 0xB:
|
case 0xB:
|
||||||
starterRelayBench();
|
starterRelayBench();
|
||||||
return;
|
return;
|
||||||
case 0xC:
|
|
||||||
engine->etbAutoTune = true;
|
|
||||||
return;
|
|
||||||
case 0xD:
|
case 0xD:
|
||||||
engine->directSelfStimulation = true;
|
engine->directSelfStimulation = true;
|
||||||
return;
|
return;
|
||||||
|
@ -269,6 +266,12 @@ static void handleCommandX14(uint16_t index) {
|
||||||
case 0xE:
|
case 0xE:
|
||||||
etbAutocal(0);
|
etbAutocal(0);
|
||||||
return;
|
return;
|
||||||
|
case 0xC:
|
||||||
|
engine->etbAutoTune = true;
|
||||||
|
return;
|
||||||
|
case 0x10:
|
||||||
|
engine->etbAutoTune = false;
|
||||||
|
return;
|
||||||
#endif
|
#endif
|
||||||
case 0xF:
|
case 0xF:
|
||||||
engine->directSelfStimulation = false;
|
engine->directSelfStimulation = false;
|
||||||
|
|
|
@ -55,9 +55,9 @@ static void tachSignalCallback(trigger_event_e ckpSignalType,
|
||||||
}
|
}
|
||||||
|
|
||||||
// What is the angle per tach output period?
|
// What is the angle per tach output period?
|
||||||
float cycleTimeMs = 60000.0 / GET_RPM();
|
float cycleTimeMs = 60000.0f / GET_RPM();
|
||||||
float periodTimeMs = cycleTimeMs / periods;
|
float periodTimeMs = cycleTimeMs / periods;
|
||||||
tachFreq = 1000.0 / periodTimeMs;
|
tachFreq = 1000.0f / periodTimeMs;
|
||||||
|
|
||||||
if (CONFIG(tachPulseDurationAsDutyCycle)) {
|
if (CONFIG(tachPulseDurationAsDutyCycle)) {
|
||||||
// Simple case - duty explicitly set
|
// Simple case - duty explicitly set
|
||||||
|
@ -68,7 +68,7 @@ static void tachSignalCallback(trigger_event_e ckpSignalType,
|
||||||
}
|
}
|
||||||
|
|
||||||
// In case Freq is under 1Hz, we stop pwm to avoid warnings!
|
// In case Freq is under 1Hz, we stop pwm to avoid warnings!
|
||||||
if (tachFreq < 1.0) {
|
if (tachFreq < 1) {
|
||||||
tachFreq = NAN;
|
tachFreq = NAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ void initTachometer(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
&engine->executor,
|
&engine->executor,
|
||||||
CONFIG(tachOutputPin),
|
CONFIG(tachOutputPin),
|
||||||
&enginePins.tachOut,
|
&enginePins.tachOut,
|
||||||
NAN, 0.1, (pwm_gen_callback*)applyPinState);
|
NAN, 0.1f);
|
||||||
|
|
||||||
#if EFI_SHAFT_POSITION_INPUT
|
#if EFI_SHAFT_POSITION_INPUT
|
||||||
addTriggerEventListener(tachSignalCallback, "tach", engine);
|
addTriggerEventListener(tachSignalCallback, "tach", engine);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sun May 03 03:38:31 EDT 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:31 EDT 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#ifndef CONTROLLERS_GENERATED_ENGINE_CONFIGURATION_GENERATED_STRUCTURES_H
|
#ifndef CONTROLLERS_GENERATED_ENGINE_CONFIGURATION_GENERATED_STRUCTURES_H
|
||||||
|
@ -1894,7 +1894,15 @@ struct engine_configuration_s {
|
||||||
/**
|
/**
|
||||||
* offset 1096
|
* offset 1096
|
||||||
*/
|
*/
|
||||||
int unusedAtOldBoardConfigurationEnd[92];
|
vehicle_info_t engineMake;
|
||||||
|
/**
|
||||||
|
* offset 1128
|
||||||
|
*/
|
||||||
|
vehicle_info_t engineCode;
|
||||||
|
/**
|
||||||
|
* offset 1160
|
||||||
|
*/
|
||||||
|
int unusedAtOldBoardConfigurationEnd[76];
|
||||||
/**
|
/**
|
||||||
offset 1464 bit 0 */
|
offset 1464 bit 0 */
|
||||||
bool vvtDisplayInverted : 1;
|
bool vvtDisplayInverted : 1;
|
||||||
|
@ -3166,7 +3174,7 @@ struct persistent_config_s {
|
||||||
/**
|
/**
|
||||||
* offset 6312
|
* offset 6312
|
||||||
*/
|
*/
|
||||||
uint8_t boostMapBins[BOOST_LOAD_COUNT];
|
uint8_t unused6312[8];
|
||||||
/**
|
/**
|
||||||
* offset 6320
|
* offset 6320
|
||||||
*/
|
*/
|
||||||
|
@ -3431,4 +3439,4 @@ typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sun May 03 03:38:31 EDT 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:31 EDT 2020
|
||||||
|
|
|
@ -291,8 +291,6 @@
|
||||||
#define boostControlPinMode_offset_hex 3dd
|
#define boostControlPinMode_offset_hex 3dd
|
||||||
#define boostCutPressure_offset 2132
|
#define boostCutPressure_offset 2132
|
||||||
#define boostCutPressure_offset_hex 854
|
#define boostCutPressure_offset_hex 854
|
||||||
#define boostMapBins_offset 6312
|
|
||||||
#define boostMapBins_offset_hex 18a8
|
|
||||||
#define boostPid_dFactor_offset 1000
|
#define boostPid_dFactor_offset 1000
|
||||||
#define boostPid_dFactor_offset_hex 3e8
|
#define boostPid_dFactor_offset_hex 3e8
|
||||||
#define boostPid_iFactor_offset 996
|
#define boostPid_iFactor_offset 996
|
||||||
|
@ -554,10 +552,12 @@
|
||||||
#define enableLaunchRetard_offset_hex 3d0
|
#define enableLaunchRetard_offset_hex 3d0
|
||||||
#define enableVerboseCanTx_offset 744
|
#define enableVerboseCanTx_offset 744
|
||||||
#define enableVerboseCanTx_offset_hex 2e8
|
#define enableVerboseCanTx_offset_hex 2e8
|
||||||
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
#define ENGINE_NOISE_CURVE_SIZE 8
|
#define ENGINE_NOISE_CURVE_SIZE 8
|
||||||
#define engineChartSize_offset 1480
|
#define engineChartSize_offset 1480
|
||||||
#define engineChartSize_offset_hex 5c8
|
#define engineChartSize_offset_hex 5c8
|
||||||
|
#define engineCode_offset 1128
|
||||||
|
#define engineCode_offset_hex 468
|
||||||
#define engineConfiguration_offset 0
|
#define engineConfiguration_offset 0
|
||||||
#define engineConfiguration_offset_hex 0
|
#define engineConfiguration_offset_hex 0
|
||||||
#define engineLoadAccelEnrichmentMultiplier_offset 2072
|
#define engineLoadAccelEnrichmentMultiplier_offset 2072
|
||||||
|
@ -570,6 +570,8 @@
|
||||||
#define engineLoadDecelEnleanmentMultiplier_offset_hex 810
|
#define engineLoadDecelEnleanmentMultiplier_offset_hex 810
|
||||||
#define engineLoadDecelEnleanmentThreshold_offset 2060
|
#define engineLoadDecelEnleanmentThreshold_offset 2060
|
||||||
#define engineLoadDecelEnleanmentThreshold_offset_hex 80c
|
#define engineLoadDecelEnleanmentThreshold_offset_hex 80c
|
||||||
|
#define engineMake_offset 1096
|
||||||
|
#define engineMake_offset_hex 448
|
||||||
#define engineSnifferRpmThreshold_offset 4
|
#define engineSnifferRpmThreshold_offset 4
|
||||||
#define engineSnifferRpmThreshold_offset_hex 4
|
#define engineSnifferRpmThreshold_offset_hex 4
|
||||||
#define engineType_offset 0
|
#define engineType_offset 0
|
||||||
|
@ -1356,17 +1358,6 @@
|
||||||
#define ignitionMode_offset_hex 1b8
|
#define ignitionMode_offset_hex 1b8
|
||||||
#define ignitionOffset_offset 444
|
#define ignitionOffset_offset 444
|
||||||
#define ignitionOffset_offset_hex 1bc
|
#define ignitionOffset_offset_hex 1bc
|
||||||
#define ignitionPin10logic
|
|
||||||
#define ignitionPin11logic
|
|
||||||
#define ignitionPin12logic
|
|
||||||
#define ignitionPin2logic || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12))
|
|
||||||
#define ignitionPin3logic || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9))
|
|
||||||
#define ignitionPin4logic || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12))
|
|
||||||
#define ignitionPin5logic || ((firingOrder == 4) || (firingOrder == 12))
|
|
||||||
#define ignitionPin6logic
|
|
||||||
#define ignitionPin7logic || ((firingOrder == 11))
|
|
||||||
#define ignitionPin8logic || ((firingOrder == 5) || (firingOrder == 11))
|
|
||||||
#define ignitionPin9logic
|
|
||||||
#define ignitionPinMode_offset 649
|
#define ignitionPinMode_offset 649
|
||||||
#define ignitionPinMode_offset_hex 289
|
#define ignitionPinMode_offset_hex 289
|
||||||
#define ignitionPins10_offset 645
|
#define ignitionPins10_offset 645
|
||||||
|
@ -2276,6 +2267,8 @@
|
||||||
#define unused1476b20_offset_hex 5c4
|
#define unused1476b20_offset_hex 5c4
|
||||||
#define unused2432_offset 2432
|
#define unused2432_offset 2432
|
||||||
#define unused2432_offset_hex 980
|
#define unused2432_offset_hex 980
|
||||||
|
#define unused6312_offset 6312
|
||||||
|
#define unused6312_offset_hex 18a8
|
||||||
#define unused711_offset 711
|
#define unused711_offset 711
|
||||||
#define unused711_offset_hex 2c7
|
#define unused711_offset_hex 2c7
|
||||||
#define unused76b0_offset 76
|
#define unused76b0_offset 76
|
||||||
|
@ -2302,8 +2295,8 @@
|
||||||
#define unused_former_warmup_target_afr_offset_hex 834
|
#define unused_former_warmup_target_afr_offset_hex 834
|
||||||
#define unusedAntilagTimeout_offset 820
|
#define unusedAntilagTimeout_offset 820
|
||||||
#define unusedAntilagTimeout_offset_hex 334
|
#define unusedAntilagTimeout_offset_hex 334
|
||||||
#define unusedAtOldBoardConfigurationEnd_offset 1096
|
#define unusedAtOldBoardConfigurationEnd_offset 1160
|
||||||
#define unusedAtOldBoardConfigurationEnd_offset_hex 448
|
#define unusedAtOldBoardConfigurationEnd_offset_hex 488
|
||||||
#define unusedBit4_1476_offset 1476
|
#define unusedBit4_1476_offset 1476
|
||||||
#define unusedBit4_1476_offset_hex 5c4
|
#define unusedBit4_1476_offset_hex 5c4
|
||||||
#define unusedBit_251_10_offset 976
|
#define unusedBit_251_10_offset 976
|
||||||
|
@ -2453,6 +2446,7 @@
|
||||||
#define vbattAdcChannel_offset_hex 201
|
#define vbattAdcChannel_offset_hex 201
|
||||||
#define vbattDividerCoeff_offset 464
|
#define vbattDividerCoeff_offset 464
|
||||||
#define vbattDividerCoeff_offset_hex 1d0
|
#define vbattDividerCoeff_offset_hex 1d0
|
||||||
|
#define VEHICLE_INFO_SIZE 32
|
||||||
#define vehicleSpeedCoef_offset 476
|
#define vehicleSpeedCoef_offset 476
|
||||||
#define vehicleSpeedCoef_offset_hex 1dc
|
#define vehicleSpeedCoef_offset_hex 1dc
|
||||||
#define vehicleSpeedSensorInputPin_offset 968
|
#define vehicleSpeedSensorInputPin_offset 968
|
||||||
|
|
|
@ -65,9 +65,6 @@ float getEngineLoadT(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
return getMafVoltage(PASS_ENGINE_PARAMETER_SIGNATURE);
|
return getMafVoltage(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
case LM_SPEED_DENSITY:
|
case LM_SPEED_DENSITY:
|
||||||
// SD engine load is used for timing lookup but not for fuel calculation,
|
|
||||||
// so fall thru to the MAP case.
|
|
||||||
case LM_MAP:
|
|
||||||
return getMap(PASS_ENGINE_PARAMETER_SIGNATURE);
|
return getMap(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
case LM_ALPHA_N:
|
case LM_ALPHA_N:
|
||||||
return Sensor::get(SensorType::Tps1).value_or(0);
|
return Sensor::get(SensorType::Tps1).value_or(0);
|
||||||
|
|
|
@ -277,7 +277,7 @@ void initMapDecoder(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
//engine->configurationListeners.registerCallback(applyConfiguration);
|
//engine->configurationListeners.registerCallback(applyConfiguration);
|
||||||
|
|
||||||
if (engineConfiguration->hasFrequencyReportingMapSensor) {
|
if (engineConfiguration->hasFrequencyReportingMapSensor) {
|
||||||
#if HAL_USE_ICU
|
#if EFI_ICU_INPUTS
|
||||||
digital_input_s* digitalMapInput = startDigitalCapture("MAP freq", CONFIG(frequencyReportingMapInputPin));
|
digital_input_s* digitalMapInput = startDigitalCapture("MAP freq", CONFIG(frequencyReportingMapInputPin));
|
||||||
|
|
||||||
digitalMapInput->setWidthCallback((VoidInt) digitalMapWidthCallback, NULL);
|
digitalMapInput->setWidthCallback((VoidInt) digitalMapWidthCallback, NULL);
|
||||||
|
|
|
@ -25,6 +25,7 @@ class ThreadController : public ControllerBase
|
||||||
private:
|
private:
|
||||||
THD_WORKING_AREA(m_threadstack, TStackSize);
|
THD_WORKING_AREA(m_threadstack, TStackSize);
|
||||||
const tprio_t m_prio;
|
const tprio_t m_prio;
|
||||||
|
bool m_isStarted = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The OS can only call a function with a single void* param. We have
|
* The OS can only call a function with a single void* param. We have
|
||||||
|
@ -57,8 +58,14 @@ public:
|
||||||
*/
|
*/
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
if (m_isStarted) {
|
||||||
|
warning(CUSTOM_OBD_6003, "Tried to start thread %s but it was already running", GetName());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_thread = chThdCreateStatic(m_threadstack, sizeof(m_threadstack), m_prio, StaticThreadTaskAdapter, this);
|
m_thread = chThdCreateStatic(m_threadstack, sizeof(m_threadstack), m_prio, StaticThreadTaskAdapter, this);
|
||||||
m_thread->name = GetName();
|
m_thread->name = GetName();
|
||||||
|
m_isStarted = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,12 @@
|
||||||
|
|
||||||
#include "trigger_toyota.h"
|
#include "trigger_toyota.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TT_2JZ_1_12
|
||||||
|
* One cam + 12 crank
|
||||||
|
* http://rusefi.com/images/triggers/trigger_29.png
|
||||||
|
*/
|
||||||
|
|
||||||
void initialize2jzGE1_12(TriggerWaveform *s) {
|
void initialize2jzGE1_12(TriggerWaveform *s) {
|
||||||
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
||||||
|
|
||||||
|
@ -43,6 +49,9 @@ void initialize2jzGE1_12(TriggerWaveform *s) {
|
||||||
s->isSynchronizationNeeded = false;
|
s->isSynchronizationNeeded = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://rusefi.com/forum/viewtopic.php?f=5&t=1720
|
||||||
|
*/
|
||||||
void initialize2jzGE3_34(TriggerWaveform *s) {
|
void initialize2jzGE3_34(TriggerWaveform *s) {
|
||||||
setToothedWheelConfiguration(s, 36, 2, FOUR_STROKE_CRANK_SENSOR);
|
setToothedWheelConfiguration(s, 36, 2, FOUR_STROKE_CRANK_SENSOR);
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ java -DSystemOut.name=gen_config ^
|
||||||
-initialize_to_zero false ^
|
-initialize_to_zero false ^
|
||||||
-tool gen_config.bat ^
|
-tool gen_config.bat ^
|
||||||
-c_defines controllers\generated\rusefi_generated.h ^
|
-c_defines controllers\generated\rusefi_generated.h ^
|
||||||
|
-firing_order controllers/algo/firing_order.h ^
|
||||||
-c_destination controllers\generated\engine_configuration_generated_structures.h ^
|
-c_destination controllers\generated\engine_configuration_generated_structures.h ^
|
||||||
-c_fsio_constants controllers\generated\fsio_enums_generated.def ^
|
-c_fsio_constants controllers\generated\fsio_enums_generated.def ^
|
||||||
-c_fsio_getters controllers\generated\fsio_getters.def ^
|
-c_fsio_getters controllers\generated\fsio_getters.def ^
|
||||||
|
|
|
@ -31,6 +31,7 @@ java -DSystemOut.name=gen_config_board ^
|
||||||
-definition integration\rusefi_config.txt ^
|
-definition integration\rusefi_config.txt ^
|
||||||
-tool gen_config.bat ^
|
-tool gen_config.bat ^
|
||||||
-ts_destination tunerstudio ^
|
-ts_destination tunerstudio ^
|
||||||
|
-firing_order controllers/algo/firing_order.h ^
|
||||||
-ts_output_name rusefi_%BOARDNAME%.ini ^
|
-ts_output_name rusefi_%BOARDNAME%.ini ^
|
||||||
-prepend tunerstudio/%BOARDNAME%_prefix.txt ^
|
-prepend tunerstudio/%BOARDNAME%_prefix.txt ^
|
||||||
-prepend config/boards/%BOARDNAME%/prepend.txt ^
|
-prepend config/boards/%BOARDNAME%/prepend.txt ^
|
||||||
|
|
|
@ -76,6 +76,7 @@ static int turnOnTriggerInputPin(const char *msg, int index, bool isTriggerShaft
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* try ICU first */
|
/* try ICU first */
|
||||||
|
#if EFI_ICU_INPUTS
|
||||||
if (icuTriggerTurnOnInputPin(msg, index, isTriggerShaft) >= 0) {
|
if (icuTriggerTurnOnInputPin(msg, index, isTriggerShaft) >= 0) {
|
||||||
if (isTriggerShaft)
|
if (isTriggerShaft)
|
||||||
shaftTriggerType[index] = TRIGGER_ICU;
|
shaftTriggerType[index] = TRIGGER_ICU;
|
||||||
|
@ -83,6 +84,7 @@ static int turnOnTriggerInputPin(const char *msg, int index, bool isTriggerShaft
|
||||||
camTriggerType[index] = TRIGGER_ICU;
|
camTriggerType[index] = TRIGGER_ICU;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ... then EXTI */
|
/* ... then EXTI */
|
||||||
if (extiTriggerTurnOnInputPin(msg, index, isTriggerShaft) >= 0) {
|
if (extiTriggerTurnOnInputPin(msg, index, isTriggerShaft) >= 0) {
|
||||||
|
@ -103,15 +105,19 @@ static void turnOffTriggerInputPin(int index, bool isTriggerShaft) {
|
||||||
activeConfiguration.triggerInputPins[index] : activeConfiguration.camInputs[index];
|
activeConfiguration.triggerInputPins[index] : activeConfiguration.camInputs[index];
|
||||||
|
|
||||||
if (isTriggerShaft) {
|
if (isTriggerShaft) {
|
||||||
|
#if EFI_ICU_INPUTS
|
||||||
if (shaftTriggerType[index] == TRIGGER_ICU)
|
if (shaftTriggerType[index] == TRIGGER_ICU)
|
||||||
icuTriggerTurnOffInputPin(brainPin);
|
icuTriggerTurnOffInputPin(brainPin);
|
||||||
|
#endif
|
||||||
if (shaftTriggerType[index] == TRIGGER_EXTI)
|
if (shaftTriggerType[index] == TRIGGER_EXTI)
|
||||||
extiTriggerTurnOffInputPin(brainPin);
|
extiTriggerTurnOffInputPin(brainPin);
|
||||||
|
|
||||||
shaftTriggerType[index] = TRIGGER_NONE;
|
shaftTriggerType[index] = TRIGGER_NONE;
|
||||||
} else {
|
} else {
|
||||||
|
#if EFI_ICU_INPUTS
|
||||||
if (camTriggerType[index] == TRIGGER_ICU)
|
if (camTriggerType[index] == TRIGGER_ICU)
|
||||||
icuTriggerTurnOffInputPin(brainPin);
|
icuTriggerTurnOffInputPin(brainPin);
|
||||||
|
#endif
|
||||||
if (camTriggerType[index] == TRIGGER_EXTI)
|
if (camTriggerType[index] == TRIGGER_EXTI)
|
||||||
extiTriggerTurnOffInputPin(brainPin);
|
extiTriggerTurnOffInputPin(brainPin);
|
||||||
|
|
||||||
|
|
|
@ -41,19 +41,6 @@
|
||||||
! all the sub-structures are going to be nested within the primary structure, that's
|
! all the sub-structures are going to be nested within the primary structure, that's
|
||||||
! needed to get a proper TunerStudio file
|
! needed to get a proper TunerStudio file
|
||||||
|
|
||||||
! this section is auto-generated by FiringOrderTSLogic.java
|
|
||||||
#define ignitionPin2logic || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12))
|
|
||||||
#define ignitionPin3logic || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9))
|
|
||||||
#define ignitionPin4logic || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12))
|
|
||||||
#define ignitionPin5logic || ((firingOrder == 4) || (firingOrder == 12))
|
|
||||||
#define ignitionPin6logic
|
|
||||||
#define ignitionPin7logic || ((firingOrder == 11))
|
|
||||||
#define ignitionPin8logic || ((firingOrder == 5) || (firingOrder == 11))
|
|
||||||
#define ignitionPin9logic
|
|
||||||
#define ignitionPin10logic
|
|
||||||
#define ignitionPin11logic
|
|
||||||
#define ignitionPin12logic
|
|
||||||
|
|
||||||
struct persistent_config_s
|
struct persistent_config_s
|
||||||
|
|
||||||
struct_no_prefix engine_configuration_s
|
struct_no_prefix engine_configuration_s
|
||||||
|
@ -128,6 +115,8 @@ struct_no_prefix engine_configuration_s
|
||||||
#define FSIO_COMMAND_COUNT 16
|
#define FSIO_COMMAND_COUNT 16
|
||||||
#define AUX_PID_COUNT 4
|
#define AUX_PID_COUNT 4
|
||||||
|
|
||||||
|
#define VEHICLE_INFO_SIZE 32
|
||||||
|
|
||||||
#define FUEL_RPM_COUNT 16
|
#define FUEL_RPM_COUNT 16
|
||||||
#define FUEL_LOAD_COUNT 16
|
#define FUEL_LOAD_COUNT 16
|
||||||
|
|
||||||
|
@ -460,7 +449,7 @@ int sensorSnifferRpmThreshold;+Disable sensor sniffer above this rpm;"RPM",
|
||||||
int rpmHardLimit;set rpm_hard_limit X;"rpm", 1, 0, 0, 20000.0, 2
|
int rpmHardLimit;set rpm_hard_limit X;"rpm", 1, 0, 0, 20000.0, 2
|
||||||
|
|
||||||
|
|
||||||
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
#define engine_load_mode_e_enum "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
|
|
||||||
|
|
||||||
custom engine_load_mode_e 4 bits, U32, @OFFSET@, [0:7], @@engine_load_mode_e_enum@@
|
custom engine_load_mode_e 4 bits, U32, @OFFSET@, [0:7], @@engine_load_mode_e_enum@@
|
||||||
|
@ -805,6 +794,8 @@ custom maf_sensor_type_e 4 bits, S32, @OFFSET@, [0:7], @@maf_sensor_type_e_enum@
|
||||||
! same length used for critical and soft error messages
|
! same length used for critical and soft error messages
|
||||||
#define ERROR_BUFFER_SIZE 120
|
#define ERROR_BUFFER_SIZE 120
|
||||||
|
|
||||||
|
custom vehicle_info_t @@VEHICLE_INFO_SIZE@@ string, ASCII, @OFFSET@, @@VEHICLE_INFO_SIZE@@
|
||||||
|
|
||||||
custom error_message_t @@ERROR_BUFFER_SIZE@@ string, ASCII, @OFFSET@, @@ERROR_BUFFER_SIZE@@
|
custom error_message_t @@ERROR_BUFFER_SIZE@@ string, ASCII, @OFFSET@, @@ERROR_BUFFER_SIZE@@
|
||||||
custom le_formula_t @@LE_COMMAND_LENGTH@@ string, ASCII, @OFFSET@, @@LE_COMMAND_LENGTH@@
|
custom le_formula_t @@LE_COMMAND_LENGTH@@ string, ASCII, @OFFSET@, @@LE_COMMAND_LENGTH@@
|
||||||
brain_pin_e[FSIO_COMMAND_COUNT iterate] fsioDigitalInputs;todo:not finished\nThese input pins allow us to pull toggle buttons state;
|
brain_pin_e[FSIO_COMMAND_COUNT iterate] fsioDigitalInputs;todo:not finished\nThese input pins allow us to pull toggle buttons state;
|
||||||
|
@ -882,7 +873,10 @@ custom maf_sensor_type_e 4 bits, S32, @OFFSET@, [0:7], @@maf_sensor_type_e_enum@
|
||||||
|
|
||||||
etb_io[ETB_COUNT iterate] etbIo2
|
etb_io[ETB_COUNT iterate] etbIo2
|
||||||
|
|
||||||
int[92] unusedAtOldBoardConfigurationEnd;
|
vehicle_info_t engineMake;
|
||||||
|
vehicle_info_t engineCode;
|
||||||
|
|
||||||
|
int[76] unusedAtOldBoardConfigurationEnd;
|
||||||
|
|
||||||
bit vvtDisplayInverted
|
bit vvtDisplayInverted
|
||||||
bit fuelClosedLoopCorrectionEnabled;+Enables lambda sensor closed loop feedback for fuelling.
|
bit fuelClosedLoopCorrectionEnabled;+Enables lambda sensor closed loop feedback for fuelling.
|
||||||
|
@ -1292,7 +1286,7 @@ float[AFTERSTART_DECAY_CURVE_SIZE] afterstartDecayTime;;"Seconds", 1, 0
|
||||||
|
|
||||||
|
|
||||||
boost_table_t boostTableOpenLoop;
|
boost_table_t boostTableOpenLoop;
|
||||||
uint8_t[BOOST_LOAD_COUNT] boostMapBins;;"", @@LOAD_1_BYTE_PACKING_MULT@@, 0, 0, 600.0, 1
|
uint8_t[8] unused6312;
|
||||||
uint8_t[BOOST_RPM_COUNT] boostRpmBins;;"RPM", @@RPM_1_BYTE_PACKING_MULT@@, 0, 0.0, 12000.0, 0
|
uint8_t[BOOST_RPM_COUNT] boostRpmBins;;"RPM", @@RPM_1_BYTE_PACKING_MULT@@, 0, 0.0, 12000.0, 0
|
||||||
|
|
||||||
boost_table_t boostTableClosedLoop;
|
boost_table_t boostTableClosedLoop;
|
||||||
|
|
|
@ -89,7 +89,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon May 04 19:09:36 EDT 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:31 EDT 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -179,7 +179,7 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
|
@ -633,7 +633,9 @@ page = 1
|
||||||
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1096
|
engineMake = string, ASCII, 1096, 32
|
||||||
|
engineCode = string, ASCII, 1128, 32
|
||||||
|
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1160
|
||||||
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
||||||
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
||||||
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
||||||
|
@ -1095,7 +1097,7 @@ page = 1
|
||||||
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
||||||
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
||||||
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostMapBins = array, U08, 6312, [8], "", 2, 0, 0, 600.0, 1
|
;no TS info - skipping unused6312 offset 6312
|
||||||
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
||||||
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
||||||
|
@ -1613,7 +1615,6 @@ fileVersion = { 20200310 }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1662,6 +1663,10 @@ fileVersion = { 20200310 }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -1990,7 +1995,7 @@ fileVersion = { 20200310 }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -2736,7 +2741,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -2752,6 +2756,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -2843,17 +2848,18 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17)))}
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13)))}
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))}
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15)))}
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18)))}
|
||||||
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -2875,6 +2881,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -4075,11 +4083,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -366,7 +366,6 @@ fileVersion = { @@TS_FILE_VERSION@@ }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -415,6 +414,10 @@ fileVersion = { @@TS_FILE_VERSION@@ }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -743,7 +746,7 @@ fileVersion = { @@TS_FILE_VERSION@@ }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -1489,7 +1492,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -1505,6 +1507,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -1596,17 +1599,7 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
@@FIRINGORDER@@
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -1628,6 +1621,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -2829,11 +2824,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -89,7 +89,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon May 04 19:09:41 EDT 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:54 EDT 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -179,7 +179,7 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
|
@ -633,7 +633,9 @@ page = 1
|
||||||
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1096
|
engineMake = string, ASCII, 1096, 32
|
||||||
|
engineCode = string, ASCII, 1128, 32
|
||||||
|
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1160
|
||||||
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
||||||
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
||||||
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
||||||
|
@ -1095,7 +1097,7 @@ page = 1
|
||||||
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
||||||
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
||||||
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostMapBins = array, U08, 6312, [8], "", 2, 0, 0, 600.0, 1
|
;no TS info - skipping unused6312 offset 6312
|
||||||
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
||||||
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
||||||
|
@ -1613,7 +1615,6 @@ fileVersion = { 20200310 }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1662,6 +1663,10 @@ fileVersion = { 20200310 }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -1990,7 +1995,7 @@ fileVersion = { 20200310 }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -2736,7 +2741,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -2752,6 +2756,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -2843,17 +2848,18 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17)))}
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13)))}
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))}
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15)))}
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18)))}
|
||||||
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -2875,6 +2881,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -4075,11 +4083,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -89,7 +89,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Mon May 04 19:09:46 EDT 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kineris_gen_config.bat integration/rusefi_config.txt Wed May 06 12:33:00 EDT 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -179,7 +179,7 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
|
@ -633,7 +633,9 @@ page = 1
|
||||||
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"
|
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"
|
||||||
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"
|
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"
|
||||||
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"
|
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16", "PA17", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PB16", "PB17", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PC16", "PC17", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD16", "PD17", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6", "PE7", "PE8", "PE9", "PE10", "PE11", "PE12", "PE13", "PE14", "PE15", "PE16", "PE17", "TLE6240_1", "TLE6240_2", "TLE6240_3", "TLE6240_4", "TLE6240_5", "TLE6240_6", "TLE6240_7", "TLE6240_8", "TLE6240_9", "TLE6240_10", "TLE6240_11", "TLE6240_12", "TLE6240_13", "TLE6240_14", "TLE6240_15", "TLE6240_16"
|
||||||
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1096
|
engineMake = string, ASCII, 1096, 32
|
||||||
|
engineCode = string, ASCII, 1128, 32
|
||||||
|
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1160
|
||||||
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
||||||
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
||||||
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
||||||
|
@ -1095,7 +1097,7 @@ page = 1
|
||||||
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
||||||
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
||||||
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostMapBins = array, U08, 6312, [8], "", 2, 0, 0, 600.0, 1
|
;no TS info - skipping unused6312 offset 6312
|
||||||
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
||||||
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
||||||
|
@ -1613,7 +1615,6 @@ fileVersion = { 20200310 }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1662,6 +1663,10 @@ fileVersion = { 20200310 }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -1990,7 +1995,7 @@ fileVersion = { 20200310 }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -2736,7 +2741,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -2752,6 +2756,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -2843,17 +2848,18 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17)))}
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13)))}
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))}
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15)))}
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18)))}
|
||||||
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -2875,6 +2881,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -4076,11 +4084,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -89,7 +89,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon May 04 19:09:39 EDT 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:52 EDT 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -179,7 +179,7 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
|
@ -633,7 +633,9 @@ page = 1
|
||||||
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1096
|
engineMake = string, ASCII, 1096, 32
|
||||||
|
engineCode = string, ASCII, 1128, 32
|
||||||
|
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1160
|
||||||
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
||||||
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
||||||
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
||||||
|
@ -1095,7 +1097,7 @@ page = 1
|
||||||
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
||||||
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
||||||
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostMapBins = array, U08, 6312, [8], "", 2, 0, 0, 600.0, 1
|
;no TS info - skipping unused6312 offset 6312
|
||||||
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
||||||
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
||||||
|
@ -1613,7 +1615,6 @@ fileVersion = { 20200310 }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1662,6 +1663,10 @@ fileVersion = { 20200310 }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -1990,7 +1995,7 @@ fileVersion = { 20200310 }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -2727,7 +2732,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -2743,6 +2747,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -2834,17 +2839,18 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17)))}
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13)))}
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))}
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15)))}
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18)))}
|
||||||
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -2866,6 +2872,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -4034,11 +4042,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -89,7 +89,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon May 04 19:09:43 EDT 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:56 EDT 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -179,7 +179,7 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
|
@ -633,7 +633,9 @@ page = 1
|
||||||
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1096
|
engineMake = string, ASCII, 1096, 32
|
||||||
|
engineCode = string, ASCII, 1128, 32
|
||||||
|
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1160
|
||||||
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
||||||
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
||||||
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
||||||
|
@ -1095,7 +1097,7 @@ page = 1
|
||||||
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
||||||
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
||||||
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostMapBins = array, U08, 6312, [8], "", 2, 0, 0, 600.0, 1
|
;no TS info - skipping unused6312 offset 6312
|
||||||
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
||||||
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
||||||
|
@ -1613,7 +1615,6 @@ fileVersion = { 20200310 }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1662,6 +1663,10 @@ fileVersion = { 20200310 }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -1990,7 +1995,7 @@ fileVersion = { 20200310 }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -2732,7 +2737,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -2748,6 +2752,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -2839,17 +2844,18 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17)))}
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13)))}
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))}
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15)))}
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18)))}
|
||||||
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -2871,6 +2877,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -4071,11 +4079,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -89,7 +89,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Mon May 04 19:09:45 EDT 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:58 EDT 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -179,7 +179,7 @@ page = 1
|
||||||
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
cylinderBore = scalar, F32, 408, "mm", 1, 0, 0, 20000.0, 2
|
||||||
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
sensorSnifferRpmThreshold = scalar, S32, 412, "RPM", 1, 0, 0,30000, 0
|
||||||
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
rpmHardLimit = scalar, S32, 416, "rpm", 1, 0, 0, 20000.0, 2
|
||||||
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"
|
fuelAlgorithm = bits, U32, 420, [0:7], "MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"
|
||||||
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
crankingInjectionMode = bits, U32, 424, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
injectionMode = bits, U32, 428, [0:7], "Simultaneous", "Sequential", "Batch", "Single Point"
|
||||||
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
extraInjectionOffset = scalar, F32, 432, "deg", 1, 0.0, -720, 720, 2
|
||||||
|
@ -633,7 +633,9 @@ page = 1
|
||||||
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_directionPin2 = bits, U08, 1093, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_controlPin1 = bits, U08, 1094, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
etbIo22_disablePin = bits, U08, 1095, [0:7], "NONE", "INVALID", "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PB0", "PB1", "PB2", "PB3", "PB4", "PB5", "PB6", "PB7", "PB8", "PB9", "PB10", "PB11", "PB12", "PB13", "PB14", "PB15", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9", "PC10", "PC11", "PC12", "PC13", "PC14", "PC15", "PD0", "PD1", "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD8", "PD9", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PE0", "PE1", "PE2", "PE3", "PE4", "PE5", "PE6","PE7","PE8","PE9","PE10","PE11","PE12","PE13","PE14","PE15", "PF0","PF1","PF2","PF3","PF4","PF5","PF6","PF7","PF8","PF9","PF10","PF11","PF12","PF13","PF14","PF15", "PG0","PG1","PG2","PG3","PG4","PG5","PG6","PG7","PG8","PG9","PG10","PG11","PG12","PG13","PG14","PG15", "PH0","PH1","PH2","PH3","PH4","PH5","PH6","PH7","PH8","PH9","PH10","PH11","PH12","PH13","PH14","PH15","INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
|
||||||
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1096
|
engineMake = string, ASCII, 1096, 32
|
||||||
|
engineCode = string, ASCII, 1128, 32
|
||||||
|
;no TS info - skipping unusedAtOldBoardConfigurationEnd offset 1160
|
||||||
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
vvtDisplayInverted = bits, U32, 1464, [0:0], "false", "true"
|
||||||
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
fuelClosedLoopCorrectionEnabled= bits, U32, 1464, [1:1], "false", "true"
|
||||||
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
isVerboseIAC = bits, U32, 1464, [2:2], "false", "true"
|
||||||
|
@ -1095,7 +1097,7 @@ page = 1
|
||||||
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
afterstartEnrich = array, F32, 6184, [8], "%", 1, 0, 0, 600, 1
|
||||||
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
afterstartDecayTime = array, F32, 6216, [8], "Seconds", 1, 0, 0, 100, 1
|
||||||
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableOpenLoop = array, U08, 6248, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostMapBins = array, U08, 6312, [8], "", 2, 0, 0, 600.0, 1
|
;no TS info - skipping unused6312 offset 6312
|
||||||
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
boostRpmBins = array, U08, 6320, [8], "RPM", 50, 0, 0.0, 12000.0, 0
|
||||||
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
boostTableClosedLoop = array, U08, 6328, [8x8],"", 2, 0 , 0, 3000, 0
|
||||||
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
boostTpsBins = array, U08, 6392, [8], "%", 2, 0.0, 0, 100.0, 2
|
||||||
|
@ -1613,7 +1615,6 @@ fileVersion = { 20200310 }
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programatically
|
||||||
LM_PLAIN_MAF = {0},
|
LM_PLAIN_MAF = {0},
|
||||||
LM_ALPHA_N = {1},
|
LM_ALPHA_N = {1},
|
||||||
LM_MAP = {2},
|
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1662,6 +1663,10 @@ fileVersion = { 20200310 }
|
||||||
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
maintainConstantValue = tpsMax, { (calibrationMode == 1 ) ? calibrationValue : tpsMax }
|
||||||
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
maintainConstantValue = tpsMin, { (calibrationMode == 2 ) ? calibrationValue : tpsMin }
|
||||||
|
|
||||||
|
maintainConstantValue = etb_pFactor, { (calibrationMode == 3 ) ? calibrationValue : etb_pFactor }
|
||||||
|
maintainConstantValue = etb_iFactor, { (calibrationMode == 4 ) ? calibrationValue : etb_iFactor }
|
||||||
|
maintainConstantValue = etb_dFactor, { (calibrationMode == 5 ) ? calibrationValue : etb_dFactor }
|
||||||
|
|
||||||
requiresPowerCycle = warningLedPin
|
requiresPowerCycle = warningLedPin
|
||||||
requiresPowerCycle = runningLedPin
|
requiresPowerCycle = runningLedPin
|
||||||
requiresPowerCycle = binarySerialTxPin
|
requiresPowerCycle = binarySerialTxPin
|
||||||
|
@ -1990,7 +1995,7 @@ fileVersion = { 20200310 }
|
||||||
|
|
||||||
table = boostTableTbl, boostMapOpen, "", 1
|
table = boostTableTbl, boostMapOpen, "", 1
|
||||||
xBins = boostRpmBins, RPMValue
|
xBins = boostRpmBins, RPMValue
|
||||||
yBins = boostMapBins, MAPValue
|
yBins = boostTpsBins, TPSValue
|
||||||
zBins = boostTableOpenLoop
|
zBins = boostTableOpenLoop
|
||||||
|
|
||||||
table = boostTable2Tbl, boostMapClosed, "", 1
|
table = boostTable2Tbl, boostMapClosed, "", 1
|
||||||
|
@ -2727,7 +2732,6 @@ cmd_test_inj14 = "w\x00\x13\x00\x0e"
|
||||||
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
cmd_test_inj15 = "w\x00\x13\x00\x0f"
|
||||||
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
cmd_test_inj16 = "w\x00\x13\x00\x10"
|
||||||
|
|
||||||
;
|
|
||||||
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
cmd_test_fuel_pump = "w\x00\x14\x00\x01"
|
||||||
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
cmd_calibrate_tps_1_closed = "w\x00\x14\x00\x02"
|
||||||
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
cmd_calibrate_tps_1_wot = "w\x00\x14\x00\x03"
|
||||||
|
@ -2743,6 +2747,7 @@ cmd_etb_autotune = "w\x00\x14\x00\x0C"
|
||||||
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
cmd_enable_self_stim = "w\x00\x14\x00\x0D"
|
||||||
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
cmb_etb_auto_calibrate = "w\x00\x14\x00\x0E"
|
||||||
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
cmd_disable_self_stim = "w\x00\x14\x00\x0F"
|
||||||
|
cmd_etb_autotune_stop = "w\x00\x14\x00\x10"
|
||||||
|
|
||||||
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
cmd_test_radiator_fan = "w\x00\x15\x00\x01"
|
||||||
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
cmd_test_check_engine_light = "w\x00\x16\x00\x01"
|
||||||
|
@ -2834,17 +2839,18 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
field = "Ignition Pin 1", ignitionPins1, {isIgnitionEnabled == 1}
|
||||||
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
; see rusefi_config.txt comment next to 'ignitionPin2logic' which says
|
||||||
; this section is auto-generated by FiringOrderTSLogic.java
|
; this section is auto-generated by FiringOrderTSLogic.java
|
||||||
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 1) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12)))}
|
field = "Ignition Pin 2", ignitionPins2, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 2) || (firingOrder == 7) || (firingOrder == 9) || (firingOrder == 11) || (firingOrder == 12) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 2) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9)))}
|
field = "Ignition Pin 3", ignitionPins3, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 1) || (firingOrder == 3) || (firingOrder == 4) || (firingOrder == 5) || (firingOrder == 9) || (firingOrder == 13) || (firingOrder == 14) || (firingOrder == 15) || (firingOrder == 18) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 3) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12)))}
|
field = "Ignition Pin 4", ignitionPins4, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 7) || (firingOrder == 12) || (firingOrder == 14) || (firingOrder == 16) || (firingOrder == 17)))}
|
||||||
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 4) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12)))}
|
field = "Ignition Pin 5", ignitionPins5, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 4) || (firingOrder == 12) || (firingOrder == 15) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 5) && (ignitionMode !=2 || twoWireBatchIgnition == 1 )}
|
field = "Ignition Pin 6", ignitionPins6, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 13)))}
|
||||||
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 6) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11)))}
|
field = "Ignition Pin 7", ignitionPins7, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 11) || (firingOrder == 15) || (firingOrder == 16) || (firingOrder == 19) || (firingOrder == 20)))}
|
||||||
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 7) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 8", ignitionPins8, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11) || (firingOrder == 16) || (firingOrder == 18) || (firingOrder == 19)))}
|
||||||
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 8) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 9", ignitionPins9, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 15)))}
|
||||||
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 9) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 10", ignitionPins10, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 14) || (firingOrder == 16) || (firingOrder == 18)))}
|
||||||
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 10) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 11", ignitionPins11, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 15)))}
|
||||||
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount > 11) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 5) || (firingOrder == 11)))}
|
field = "Ignition Pin 12", ignitionPins12, {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= 12) && (ignitionMode !=2 || twoWireBatchIgnition == 1 || ((firingOrder == 18)))}
|
||||||
|
|
||||||
field = "This is useful to have tachometer working"
|
field = "This is useful to have tachometer working"
|
||||||
field = " while converting from distributor"
|
field = " while converting from distributor"
|
||||||
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
field = "Dizzy out Pin", dizzySparkOutputPin, {isIgnitionEnabled == 1}
|
||||||
|
@ -2866,6 +2872,8 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
|
|
||||||
dialog = baseEngineConfig, "Engine Configuration"
|
dialog = baseEngineConfig, "Engine Configuration"
|
||||||
; field = "Engine Preset", engineType
|
; field = "Engine Preset", engineType
|
||||||
|
field = "Engine Make", engineMake
|
||||||
|
field = "Engine Code", engineCode
|
||||||
field = "Number of Cylinders", cylindersCount
|
field = "Number of Cylinders", cylindersCount
|
||||||
field = "Engine Displacement", displacement
|
field = "Engine Displacement", displacement
|
||||||
field = "Firing Order", firingOrder
|
field = "Firing Order", firingOrder
|
||||||
|
@ -4042,11 +4050,14 @@ cmd_set_engine_type_default = "w\x00\x31\x00\x00"
|
||||||
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
panel = hbridgeHardware, { throttlePedalPositionAdcChannel != 16 || useStepperIdle && useHbridges }
|
||||||
|
|
||||||
dialog = etbAutotune, "PID Autotune"
|
dialog = etbAutotune, "PID Autotune"
|
||||||
field = "!Set debug mode below to 'ETB Autotune' to show results"
|
commandButton = "Start ETB PID Autotune", cmd_etb_autotune
|
||||||
field = "Debug mode", debugMode
|
commandButton = "Stop ETB PID Autotune", cmd_etb_autotune_stop
|
||||||
commandButton = "ETB PID Autotune", cmd_etb_autotune
|
|
||||||
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
commandButton = "Auto Calibrate TPS", cmb_etb_auto_calibrate
|
||||||
|
|
||||||
|
field = "!Set debug mode below to 'ETB Autotune' to show more detail"
|
||||||
|
field = "Debug mode", debugMode
|
||||||
|
|
||||||
dialog = etbDialogRight
|
dialog = etbDialogRight
|
||||||
panel = etbIdleDialog
|
panel = etbIdleDialog
|
||||||
panel = etbPidDialog
|
panel = etbPidDialog
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="FiringOrderTSLogic" type="Application" factoryName="Application" nameIsGenerated="true">
|
<configuration default="false" name="FiringOrderTSLogic" type="Application" factoryName="Application" nameIsGenerated="true">
|
||||||
<option name="MAIN_CLASS_NAME" value="com.rusefi.FiringOrderTSLogic" />
|
<option name="MAIN_CLASS_NAME" value="com.rusefi.FiringOrderTSLogic" />
|
||||||
<module name="models" />
|
<module name="configuration_definition" />
|
||||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||||
<extension name="coverage">
|
<extension name="coverage">
|
||||||
<pattern>
|
<pattern>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.rusefi.config.generated;
|
package com.rusefi.config.generated;
|
||||||
|
|
||||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Sat May 02 22:11:06 EDT 2020
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.bat integration\rusefi_config.txt Wed May 06 12:32:31 EDT 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileJavaFieldsConsumer
|
// by class com.rusefi.output.FileJavaFieldsConsumer
|
||||||
import com.rusefi.config.*;
|
import com.rusefi.config.*;
|
||||||
|
@ -186,7 +186,6 @@ public class Fields {
|
||||||
public static final int boostControlPinMode_offset = 989;
|
public static final int boostControlPinMode_offset = 989;
|
||||||
public static final int boostCutPressure_offset = 2132;
|
public static final int boostCutPressure_offset = 2132;
|
||||||
public static final int boostCutPressure_offset_hex = 854;
|
public static final int boostCutPressure_offset_hex = 854;
|
||||||
public static final int boostMapBins_offset = 6312;
|
|
||||||
public static final int boostPid_dFactor_offset = 1000;
|
public static final int boostPid_dFactor_offset = 1000;
|
||||||
public static final int boostPid_iFactor_offset = 996;
|
public static final int boostPid_iFactor_offset = 996;
|
||||||
public static final int boostPid_maxValue_offset = 1010;
|
public static final int boostPid_maxValue_offset = 1010;
|
||||||
|
@ -361,6 +360,8 @@ public class Fields {
|
||||||
public static final int enableVerboseCanTx_offset = 744;
|
public static final int enableVerboseCanTx_offset = 744;
|
||||||
public static final int ENGINE_NOISE_CURVE_SIZE = 8;
|
public static final int ENGINE_NOISE_CURVE_SIZE = 8;
|
||||||
public static final int engineChartSize_offset = 1480;
|
public static final int engineChartSize_offset = 1480;
|
||||||
|
public static final int engineCode_offset = 1128;
|
||||||
|
public static final int engineCode_offset_hex = 468;
|
||||||
public static final int engineConfiguration_offset = 0;
|
public static final int engineConfiguration_offset = 0;
|
||||||
public static final int engineConfiguration_offset_hex = 0;
|
public static final int engineConfiguration_offset_hex = 0;
|
||||||
public static final int engineLoadAccelEnrichmentMultiplier_offset = 2072;
|
public static final int engineLoadAccelEnrichmentMultiplier_offset = 2072;
|
||||||
|
@ -372,6 +373,8 @@ public class Fields {
|
||||||
public static final int engineLoadDecelEnleanmentMultiplier_offset = 2064;
|
public static final int engineLoadDecelEnleanmentMultiplier_offset = 2064;
|
||||||
public static final int engineLoadDecelEnleanmentMultiplier_offset_hex = 810;
|
public static final int engineLoadDecelEnleanmentMultiplier_offset_hex = 810;
|
||||||
public static final int engineLoadDecelEnleanmentThreshold_offset = 2060;
|
public static final int engineLoadDecelEnleanmentThreshold_offset = 2060;
|
||||||
|
public static final int engineMake_offset = 1096;
|
||||||
|
public static final int engineMake_offset_hex = 448;
|
||||||
public static final int engineSnifferRpmThreshold_offset = 4;
|
public static final int engineSnifferRpmThreshold_offset = 4;
|
||||||
public static final int engineSnifferRpmThreshold_offset_hex = 4;
|
public static final int engineSnifferRpmThreshold_offset_hex = 4;
|
||||||
public static final int engineType_offset = 0;
|
public static final int engineType_offset = 0;
|
||||||
|
@ -1525,6 +1528,7 @@ public class Fields {
|
||||||
public static final int unused1476b20_offset = 1476;
|
public static final int unused1476b20_offset = 1476;
|
||||||
public static final int unused2432_offset = 2432;
|
public static final int unused2432_offset = 2432;
|
||||||
public static final int unused2432_offset_hex = 980;
|
public static final int unused2432_offset_hex = 980;
|
||||||
|
public static final int unused6312_offset = 6312;
|
||||||
public static final int unused711_offset = 711;
|
public static final int unused711_offset = 711;
|
||||||
public static final int unused76b0_offset = 76;
|
public static final int unused76b0_offset = 76;
|
||||||
public static final int unused806_offset = 806;
|
public static final int unused806_offset = 806;
|
||||||
|
@ -1541,8 +1545,8 @@ public class Fields {
|
||||||
public static final int unused_former_warmup_target_afr_offset_hex = 834;
|
public static final int unused_former_warmup_target_afr_offset_hex = 834;
|
||||||
public static final int unusedAntilagTimeout_offset = 820;
|
public static final int unusedAntilagTimeout_offset = 820;
|
||||||
public static final int unusedAntilagTimeout_offset_hex = 334;
|
public static final int unusedAntilagTimeout_offset_hex = 334;
|
||||||
public static final int unusedAtOldBoardConfigurationEnd_offset = 1096;
|
public static final int unusedAtOldBoardConfigurationEnd_offset = 1160;
|
||||||
public static final int unusedAtOldBoardConfigurationEnd_offset_hex = 448;
|
public static final int unusedAtOldBoardConfigurationEnd_offset_hex = 488;
|
||||||
public static final int unusedBit4_1476_offset = 1476;
|
public static final int unusedBit4_1476_offset = 1476;
|
||||||
public static final int unusedBit_251_10_offset = 976;
|
public static final int unusedBit_251_10_offset = 976;
|
||||||
public static final int unusedBit_251_11_offset = 976;
|
public static final int unusedBit_251_11_offset = 976;
|
||||||
|
@ -1620,6 +1624,7 @@ public class Fields {
|
||||||
public static final int vbattAdcChannel_offset = 513;
|
public static final int vbattAdcChannel_offset = 513;
|
||||||
public static final int vbattAdcChannel_offset_hex = 201;
|
public static final int vbattAdcChannel_offset_hex = 201;
|
||||||
public static final int vbattDividerCoeff_offset = 464;
|
public static final int vbattDividerCoeff_offset = 464;
|
||||||
|
public static final int VEHICLE_INFO_SIZE = 32;
|
||||||
public static final int vehicleSpeedCoef_offset = 476;
|
public static final int vehicleSpeedCoef_offset = 476;
|
||||||
public static final int vehicleSpeedSensorInputPin_offset = 968;
|
public static final int vehicleSpeedSensorInputPin_offset = 968;
|
||||||
public static final int veLoadBins_offset = 18464;
|
public static final int veLoadBins_offset = 18464;
|
||||||
|
@ -1721,7 +1726,7 @@ public class Fields {
|
||||||
public static final Field CYLINDERBORE = Field.create("CYLINDERBORE", 408, FieldType.FLOAT);
|
public static final Field CYLINDERBORE = Field.create("CYLINDERBORE", 408, FieldType.FLOAT);
|
||||||
public static final Field SENSORSNIFFERRPMTHRESHOLD = Field.create("SENSORSNIFFERRPMTHRESHOLD", 412, FieldType.INT);
|
public static final Field SENSORSNIFFERRPMTHRESHOLD = Field.create("SENSORSNIFFERRPMTHRESHOLD", 412, FieldType.INT);
|
||||||
public static final Field RPMHARDLIMIT = Field.create("RPMHARDLIMIT", 416, FieldType.INT);
|
public static final Field RPMHARDLIMIT = Field.create("RPMHARDLIMIT", 416, FieldType.INT);
|
||||||
public static final String[] engine_load_mode_e = {"MAF", "Alpha-N/TPS", "MAP", "SPEED DENSITY", "MAF Air Charge"};
|
public static final String[] engine_load_mode_e = {"MAF", "Alpha-N/TPS", "INVALID", "SPEED DENSITY", "MAF Air Charge"};
|
||||||
public static final Field FUELALGORITHM = Field.create("FUELALGORITHM", 420, FieldType.INT, engine_load_mode_e);
|
public static final Field FUELALGORITHM = Field.create("FUELALGORITHM", 420, FieldType.INT, engine_load_mode_e);
|
||||||
public static final Field CRANKINGINJECTIONMODE = Field.create("CRANKINGINJECTIONMODE", 424, FieldType.INT);
|
public static final Field CRANKINGINJECTIONMODE = Field.create("CRANKINGINJECTIONMODE", 424, FieldType.INT);
|
||||||
public static final Field INJECTIONMODE = Field.create("INJECTIONMODE", 428, FieldType.INT);
|
public static final Field INJECTIONMODE = Field.create("INJECTIONMODE", 428, FieldType.INT);
|
||||||
|
@ -2184,6 +2189,8 @@ public class Fields {
|
||||||
public static final Field ETBIO22_DIRECTIONPIN2 = Field.create("ETBIO22_DIRECTIONPIN2", 1093, FieldType.INT8, brain_pin_e);
|
public static final Field ETBIO22_DIRECTIONPIN2 = Field.create("ETBIO22_DIRECTIONPIN2", 1093, FieldType.INT8, brain_pin_e);
|
||||||
public static final Field ETBIO22_CONTROLPIN1 = Field.create("ETBIO22_CONTROLPIN1", 1094, FieldType.INT8, brain_pin_e);
|
public static final Field ETBIO22_CONTROLPIN1 = Field.create("ETBIO22_CONTROLPIN1", 1094, FieldType.INT8, brain_pin_e);
|
||||||
public static final Field ETBIO22_DISABLEPIN = Field.create("ETBIO22_DISABLEPIN", 1095, FieldType.INT8, brain_pin_e);
|
public static final Field ETBIO22_DISABLEPIN = Field.create("ETBIO22_DISABLEPIN", 1095, FieldType.INT8, brain_pin_e);
|
||||||
|
public static final Field ENGINEMAKE = Field.create("ENGINEMAKE", 1096, FieldType.INT);
|
||||||
|
public static final Field ENGINECODE = Field.create("ENGINECODE", 1128, FieldType.INT);
|
||||||
public static final Field VVTDISPLAYINVERTED = Field.create("VVTDISPLAYINVERTED", 1464, FieldType.BIT, 0);
|
public static final Field VVTDISPLAYINVERTED = Field.create("VVTDISPLAYINVERTED", 1464, FieldType.BIT, 0);
|
||||||
public static final Field FUELCLOSEDLOOPCORRECTIONENABLED = Field.create("FUELCLOSEDLOOPCORRECTIONENABLED", 1464, FieldType.BIT, 1);
|
public static final Field FUELCLOSEDLOOPCORRECTIONENABLED = Field.create("FUELCLOSEDLOOPCORRECTIONENABLED", 1464, FieldType.BIT, 1);
|
||||||
public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 1464, FieldType.BIT, 2);
|
public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 1464, FieldType.BIT, 2);
|
||||||
|
@ -3152,6 +3159,8 @@ public class Fields {
|
||||||
ETBIO22_DIRECTIONPIN2,
|
ETBIO22_DIRECTIONPIN2,
|
||||||
ETBIO22_CONTROLPIN1,
|
ETBIO22_CONTROLPIN1,
|
||||||
ETBIO22_DISABLEPIN,
|
ETBIO22_DISABLEPIN,
|
||||||
|
ENGINEMAKE,
|
||||||
|
ENGINECODE,
|
||||||
VVTDISPLAYINVERTED,
|
VVTDISPLAYINVERTED,
|
||||||
FUELCLOSEDLOOPCORRECTIONENABLED,
|
FUELCLOSEDLOOPCORRECTIONENABLED,
|
||||||
ISVERBOSEIAC,
|
ISVERBOSEIAC,
|
||||||
|
|
|
@ -94,7 +94,6 @@ public class FormulasPane {
|
||||||
enum engine_load_mode_e {
|
enum engine_load_mode_e {
|
||||||
LM_PLAIN_MAF("Plain MAF"),
|
LM_PLAIN_MAF("Plain MAF"),
|
||||||
LM_ALPHA_N("Alpha-N/TPS"),
|
LM_ALPHA_N("Alpha-N/TPS"),
|
||||||
LM_MAP("Plain MAP"),
|
|
||||||
LM_SPEED_DENSITY("Speed Density/MAP"),
|
LM_SPEED_DENSITY("Speed Density/MAP"),
|
||||||
LM_REAL_MAF("MAF");
|
LM_REAL_MAF("MAF");
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -6,10 +6,12 @@ import com.rusefi.util.LazyFile;
|
||||||
import com.rusefi.util.SystemOut;
|
import com.rusefi.util.SystemOut;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.lang.reflect.Array;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -36,6 +38,7 @@ public class ConfigDefinition {
|
||||||
private static final String KEY_WITH_C_DEFINES = "-with_c_defines";
|
private static final String KEY_WITH_C_DEFINES = "-with_c_defines";
|
||||||
private static final String KEY_JAVA_DESTINATION = "-java_destination";
|
private static final String KEY_JAVA_DESTINATION = "-java_destination";
|
||||||
private static final String KEY_ROMRAIDER_DESTINATION = "-romraider_destination";
|
private static final String KEY_ROMRAIDER_DESTINATION = "-romraider_destination";
|
||||||
|
private static final String KEY_FIRING = "-firing_order";
|
||||||
public static final String KEY_PREPEND = "-prepend";
|
public static final String KEY_PREPEND = "-prepend";
|
||||||
private static final String KEY_SKIP = "-skip";
|
private static final String KEY_SKIP = "-skip";
|
||||||
private static final String KEY_ZERO_INIT = "-initialize_to_zero";
|
private static final String KEY_ZERO_INIT = "-initialize_to_zero";
|
||||||
|
@ -69,6 +72,8 @@ public class ConfigDefinition {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SystemOut.println("Invoked with " + Arrays.toString(args));
|
||||||
|
|
||||||
String tsPath = null;
|
String tsPath = null;
|
||||||
String destCHeaderFileName = null;
|
String destCHeaderFileName = null;
|
||||||
String destCDefinesFileName = null;
|
String destCDefinesFileName = null;
|
||||||
|
@ -109,6 +114,10 @@ public class ConfigDefinition {
|
||||||
destCDefinesFileName = args[i + 1];
|
destCDefinesFileName = args[i + 1];
|
||||||
} else if (key.equals(KEY_JAVA_DESTINATION)) {
|
} else if (key.equals(KEY_JAVA_DESTINATION)) {
|
||||||
javaDestinationFileName = args[i + 1];
|
javaDestinationFileName = args[i + 1];
|
||||||
|
} else if (key.equals(KEY_FIRING)) {
|
||||||
|
String firingEnumFileName = args[i + 1];
|
||||||
|
SystemOut.println("Reading firing from " + firingEnumFileName);
|
||||||
|
VariableRegistry.INSTANCE.register("FIRINGORDER", FiringOrderTSLogic.invoke(firingEnumFileName));
|
||||||
} else if (key.equals(KEY_ROMRAIDER_DESTINATION)) {
|
} else if (key.equals(KEY_ROMRAIDER_DESTINATION)) {
|
||||||
romRaiderDestination = args[i + 1];
|
romRaiderDestination = args[i + 1];
|
||||||
} else if (key.equals(KEY_PREPEND)) {
|
} else if (key.equals(KEY_PREPEND)) {
|
||||||
|
@ -124,7 +133,7 @@ public class ConfigDefinition {
|
||||||
|
|
||||||
MESSAGE = getGeneratedAutomaticallyTag() + definitionInputFile + " " + new Date();
|
MESSAGE = getGeneratedAutomaticallyTag() + definitionInputFile + " " + new Date();
|
||||||
|
|
||||||
SystemOut.println("Reading from " + definitionInputFile);
|
SystemOut.println("Reading definition from " + definitionInputFile);
|
||||||
|
|
||||||
String currentMD5 = getDefinitionMD5(definitionInputFile);
|
String currentMD5 = getDefinitionMD5(definitionInputFile);
|
||||||
|
|
||||||
|
|
|
@ -14,21 +14,25 @@ import java.util.Map;
|
||||||
public class FiringOrderTSLogic {
|
public class FiringOrderTSLogic {
|
||||||
|
|
||||||
private static final String FIRING_ORDER_PREFIX = "FO_";
|
private static final String FIRING_ORDER_PREFIX = "FO_";
|
||||||
private static final Map<Integer, String[]> ordinal2order = new HashMap<>();
|
|
||||||
private static int maxOrdinal;
|
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
invoke("../firmware/controllers/algo/firing_order.h");
|
invoke("../firmware/controllers/algo/firing_order.h");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void invoke(String fileName) throws IOException {
|
public static String invoke(String fileName) throws IOException {
|
||||||
readFiringOrders(fileName);
|
State state = new State();
|
||||||
|
|
||||||
for (int i = 2; i <= maxOrdinal; i++)
|
readFiringOrders(fileName, state);
|
||||||
processId(i);
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int i = 2; i <= 12; i++) {
|
||||||
|
String line = processId(i, state);
|
||||||
|
sb.append(line).append("\r\n");
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void readFiringOrders(String fileName) throws IOException {
|
private static void readFiringOrders(String fileName, State state) throws IOException {
|
||||||
BufferedReader br = new BufferedReader(new FileReader(fileName));
|
BufferedReader br = new BufferedReader(new FileReader(fileName));
|
||||||
|
|
||||||
String line;
|
String line;
|
||||||
|
@ -39,11 +43,11 @@ public class FiringOrderTSLogic {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
line = line.substring(index + FIRING_ORDER_PREFIX.length());
|
line = line.substring(index + FIRING_ORDER_PREFIX.length());
|
||||||
parseLine(line);
|
parseLine(line, state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void parseLine(String line) {
|
public static void parseLine(String line, State state) {
|
||||||
line = line.replaceAll("[\\s]*\\,.*", "");
|
line = line.replaceAll("[\\s]*\\,.*", "");
|
||||||
line = line.replaceAll("[\\s\\,]", "");
|
line = line.replaceAll("[\\s\\,]", "");
|
||||||
System.out.println("Processing " + line);
|
System.out.println("Processing " + line);
|
||||||
|
@ -54,16 +58,16 @@ public class FiringOrderTSLogic {
|
||||||
|
|
||||||
System.out.println("order " + Arrays.toString(order) + ": " + ordinal);
|
System.out.println("order " + Arrays.toString(order) + ": " + ordinal);
|
||||||
|
|
||||||
maxOrdinal = Math.max(ordinal, maxOrdinal);
|
state.maxOrdinal = Math.max(ordinal, state.maxOrdinal);
|
||||||
ordinal2order.put(ordinal, order);
|
state.ordinal2order.put(ordinal, order);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void processId(int cylinderId) {
|
private static String processId(int cylinderId, State state) {
|
||||||
|
|
||||||
StringBuilder logic = new StringBuilder();
|
StringBuilder logic = new StringBuilder();
|
||||||
|
|
||||||
|
|
||||||
for (Map.Entry<Integer, String[]> e : ordinal2order.entrySet()) {
|
for (Map.Entry<Integer, String[]> e : state.ordinal2order.entrySet()) {
|
||||||
Integer ordinal = e.getKey();
|
Integer ordinal = e.getKey();
|
||||||
String[] order = e.getValue();
|
String[] order = e.getValue();
|
||||||
if (order.length % 2 != 0) {
|
if (order.length % 2 != 0) {
|
||||||
|
@ -87,9 +91,17 @@ public class FiringOrderTSLogic {
|
||||||
}
|
}
|
||||||
String result = logic.length() == 0 ? "" : "|| (" + logic + ")";
|
String result = logic.length() == 0 ? "" : "|| (" + logic + ")";
|
||||||
|
|
||||||
|
//String output = "#define ignitionPin" + cylinderId + "logic" + " " + result + "";
|
||||||
|
String output = "\t\tfield = \"Ignition Pin " + cylinderId +
|
||||||
System.out.println("#define ignitionPin" + cylinderId + "logic" + " " + result + "");
|
"\", ignitionPins" + cylinderId +
|
||||||
|
", {isIgnitionEnabled == 1 && (ignitionMode != 0 && cylindersCount >= " + cylinderId + ") && (ignitionMode !=2 || twoWireBatchIgnition == 1 " + result + ")}";
|
||||||
|
System.out.println(output);
|
||||||
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class State {
|
||||||
|
final Map<Integer, String[]> ordinal2order = new HashMap<>();
|
||||||
|
int maxOrdinal;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -67,7 +67,10 @@ public class VariableRegistry {
|
||||||
SystemOut.println("Registering " + var + " as " + value);
|
SystemOut.println("Registering " + var + " as " + value);
|
||||||
data.put(var, value);
|
data.put(var, value);
|
||||||
|
|
||||||
|
if (!value.contains("\n")) {
|
||||||
|
// multi-lines are not supported in C headers
|
||||||
cAllDefinitions.put(var, "#define " + var + " " + value + EOL);
|
cAllDefinitions.put(var, "#define " + var + " " + value + EOL);
|
||||||
|
}
|
||||||
tryToRegisterAsInteger(var, value);
|
tryToRegisterAsInteger(var, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,6 @@ import org.junit.Test;
|
||||||
public class FiringOrderTSLogicTest {
|
public class FiringOrderTSLogicTest {
|
||||||
@Test
|
@Test
|
||||||
public void parseFiringOrderLine() {
|
public void parseFiringOrderLine() {
|
||||||
FiringOrderTSLogic.parseLine("FO_1_3_4_2 = 1, // typical inline 4");
|
FiringOrderTSLogic.parseLine("FO_1_3_4_2 = 1, // typical inline 4", new FiringOrderTSLogic.State());
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
#include "boost_control.h"
|
||||||
|
#include "engine_controller.h"
|
||||||
|
#include "engine_test_helper.h"
|
||||||
|
|
||||||
|
#include "mocks.h"
|
||||||
|
|
||||||
|
using ::testing::_;
|
||||||
|
using ::testing::StrictMock;
|
||||||
|
|
||||||
|
TEST(BoostControl, Setpoint) {
|
||||||
|
MockVp3d targetMap;
|
||||||
|
|
||||||
|
// Just pass TPS input to output
|
||||||
|
EXPECT_CALL(targetMap, getValue(_, _))
|
||||||
|
.WillRepeatedly([](float xRpm, float tps) { return tps; });
|
||||||
|
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
BoostController bc;
|
||||||
|
INJECT_ENGINE_REFERENCE(&bc);
|
||||||
|
|
||||||
|
// Should return unexpected without a pedal map cfg'd
|
||||||
|
EXPECT_EQ(bc.getSetpoint(), unexpected);
|
||||||
|
|
||||||
|
// Now init with mock target map
|
||||||
|
bc.init(nullptr, nullptr, &targetMap, nullptr);
|
||||||
|
|
||||||
|
// Should still return unxepected since TPS is invalid
|
||||||
|
EXPECT_EQ(bc.getSetpoint(), unexpected);
|
||||||
|
|
||||||
|
// Configure TPS, should get passthru of tps value
|
||||||
|
Sensor::setMockValue(SensorType::DriverThrottleIntent, 35.0f);
|
||||||
|
EXPECT_FLOAT_EQ(bc.getSetpoint().value_or(-1), 35.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(BoostControl, ObservePlant) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
BoostController bc;
|
||||||
|
INJECT_ENGINE_REFERENCE(&bc);
|
||||||
|
|
||||||
|
engine->mockMapValue = NAN;
|
||||||
|
// Check that invalid MAP returns unexpected
|
||||||
|
EXPECT_EQ(bc.observePlant(), unexpected);
|
||||||
|
|
||||||
|
// Test valid MAP value
|
||||||
|
engine->mockMapValue = 150.0f;
|
||||||
|
|
||||||
|
EXPECT_FLOAT_EQ(bc.observePlant().value_or(0), 150.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(BoostControl, OpenLoop) {
|
||||||
|
MockVp3d openMap;
|
||||||
|
|
||||||
|
// Just pass MAP input to output
|
||||||
|
EXPECT_CALL(openMap, getValue(_, _))
|
||||||
|
.WillRepeatedly([](float xRpm, float tps) { return tps; });
|
||||||
|
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
BoostController bc;
|
||||||
|
INJECT_ENGINE_REFERENCE(&bc);
|
||||||
|
|
||||||
|
// Without table set, should return unexpected
|
||||||
|
EXPECT_EQ(bc.getOpenLoop(0), unexpected);
|
||||||
|
|
||||||
|
bc.init(nullptr, &openMap, nullptr, nullptr);
|
||||||
|
|
||||||
|
// Should pass TPS value thru
|
||||||
|
Sensor::setMockValue(SensorType::DriverThrottleIntent, 47.0f);
|
||||||
|
EXPECT_FLOAT_EQ(bc.getOpenLoop(0).value_or(-1), 47.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(BoostControl, ClosedLoop) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
BoostController bc;
|
||||||
|
INJECT_ENGINE_REFERENCE(&bc);
|
||||||
|
|
||||||
|
pid_s pidCfg = {
|
||||||
|
1, 0, 0, // P controller, easier to test
|
||||||
|
0, // no offset
|
||||||
|
5, // 5ms period
|
||||||
|
-100, 100 // min/max output
|
||||||
|
};
|
||||||
|
|
||||||
|
bc.init(nullptr, nullptr, nullptr, &pidCfg);
|
||||||
|
|
||||||
|
// Enable closed loop
|
||||||
|
CONFIG(boostType) = CLOSED_LOOP;
|
||||||
|
|
||||||
|
// At 0 RPM, closed loop is disabled
|
||||||
|
ENGINE(rpmCalculator.mockRpm) = 0;
|
||||||
|
EXPECT_EQ(0, bc.getClosedLoop(150, 100).value_or(-1000));
|
||||||
|
|
||||||
|
// With RPM, we should get an output
|
||||||
|
ENGINE(rpmCalculator.mockRpm) = 1000;
|
||||||
|
// Actual is below target -> positive output
|
||||||
|
EXPECT_FLOAT_EQ(50, bc.getClosedLoop(150, 100).value_or(-1000));
|
||||||
|
// Actual is above target -> negative output
|
||||||
|
EXPECT_FLOAT_EQ(-25.0f, bc.getClosedLoop(150, 175).value_or(-1000));
|
||||||
|
|
||||||
|
// Disabling closed loop should return 0
|
||||||
|
CONFIG(boostType) = OPEN_LOOP;
|
||||||
|
EXPECT_FLOAT_EQ(0, bc.getClosedLoop(150, 175).value_or(-1000));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(BoostControl, SetOutput) {
|
||||||
|
StrictMock<MockPwm> pwm;
|
||||||
|
BoostController bc;
|
||||||
|
|
||||||
|
EXPECT_CALL(pwm, setSimplePwmDutyCycle(0.25f));
|
||||||
|
|
||||||
|
// Don't crash if not init'd (don't deref null ptr m_pwm)
|
||||||
|
EXPECT_NO_THROW(bc.setOutput(25.0f));
|
||||||
|
|
||||||
|
// Init with mock PWM device
|
||||||
|
bc.init(&pwm, nullptr, nullptr, nullptr);
|
||||||
|
|
||||||
|
bc.setOutput(25.0f);
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include "engine_test_helper.h"
|
||||||
|
#include "fuel_math.h"
|
||||||
|
|
||||||
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
TEST(FuelMath, getStandardAirCharge) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
// Miata 1839cc 4cyl
|
||||||
|
CONFIG(specs.displacement) = 1.839f;
|
||||||
|
CONFIG(specs.cylindersCount) = 4;
|
||||||
|
|
||||||
|
EXPECT_FLOAT_EQ(0.553539f, getStandardAirCharge(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||||
|
|
||||||
|
// LS 5.3 liter v8
|
||||||
|
CONFIG(specs.displacement) = 5.327f;
|
||||||
|
CONFIG(specs.cylindersCount) = 8;
|
||||||
|
|
||||||
|
EXPECT_FLOAT_EQ(0.80171353f, getStandardAirCharge(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||||
|
|
||||||
|
// Chainsaw - single cylinder 32cc
|
||||||
|
CONFIG(specs.displacement) = 0.032f;
|
||||||
|
CONFIG(specs.cylindersCount) = 1;
|
||||||
|
EXPECT_FLOAT_EQ(0.038528003, getStandardAirCharge(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||||
|
|
||||||
|
// Leopard 1 47.666 liter v12
|
||||||
|
CONFIG(specs.displacement) = 47.666f;
|
||||||
|
CONFIG(specs.cylindersCount) = 12;
|
||||||
|
|
||||||
|
EXPECT_FLOAT_EQ(4.782489f, getStandardAirCharge(PASS_ENGINE_PARAMETER_SIGNATURE));
|
||||||
|
}
|
|
@ -49,5 +49,7 @@ TESTS_SRC_CPP = \
|
||||||
tests/sensor/redundant.cpp \
|
tests/sensor/redundant.cpp \
|
||||||
tests/sensor/test_sensor_init.cpp \
|
tests/sensor/test_sensor_init.cpp \
|
||||||
tests/test_closed_loop_controller.cpp \
|
tests/test_closed_loop_controller.cpp \
|
||||||
|
tests/test_boost.cpp \
|
||||||
tests/test_gppwm.cpp \
|
tests/test_gppwm.cpp \
|
||||||
|
tests/test_fuel_math.cpp \
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue