diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h index b0e422cc00..a5c795f6e5 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h @@ -1135,6 +1135,7 @@ struct engine_configuration_s { // offset 642 scaled_channel lambdaProtectionMinRpm; + // % // offset 643 scaled_channel lambdaProtectionMinLoad; @@ -1393,6 +1394,7 @@ struct engine_configuration_s { // offset 746 uint16_t startCrankingDuration; + // % // offset 748 scaled_channel lambdaProtectionMinTps; @@ -1401,8 +1403,9 @@ struct engine_configuration_s { // offset 749 scaled_channel lambdaProtectionTimeout; + // RPM // offset 750 - uint8_t unused748; + scaled_channel lambdaProtectionRestoreRpm; // offset 751 pin_output_mode_e acRelayPinMode; @@ -2329,8 +2332,13 @@ struct engine_configuration_s { // offset 1440 scaled_channel benchTestOffTime; + // % // offset 1441 - uint8_t unused1445[2]; + scaled_channel lambdaProtectionRestoreTps; + + // % + // offset 1442 + scaled_channel lambdaProtectionRestoreLoad; // offset 1443 pin_input_mode_e launchActivatePinMode; diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h index b2fd161faa..e664fdc41c 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h @@ -981,7 +981,7 @@ #define show_Frankenso_presets false #define show_Proteus_presets false #define show_test_presets false -#define SIGNATURE_HASH 1353177119 +#define SIGNATURE_HASH 583617090 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 #define spi_device_e_SPI_DEVICE_2 2 @@ -1248,12 +1248,12 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.subaru_eg33_f7.1353177119" +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.subaru_eg33_f7.583617090" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' #define TS_TEST_COMMAND_char t -#define TS_TOTAL_OUTPUT_SIZE 1372 +#define TS_TOTAL_OUTPUT_SIZE 1376 #define TS_TRIGGER_SCOPE_CHANNEL_1_NAME "Channel 1" #define TS_TRIGGER_SCOPE_CHANNEL_2_NAME "Channel 2" #define TS_TRIGGER_SCOPE_DISABLE 5 diff --git a/firmware/console/binary/generated/data_logs.ini b/firmware/console/binary/generated/data_logs.ini index fbb601f651..83372f9c69 100644 --- a/firmware/console/binary/generated/data_logs.ini +++ b/firmware/console/binary/generated/data_logs.ini @@ -47,7 +47,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -357,9 +356,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -368,9 +364,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -561,3 +557,8 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" diff --git a/firmware/console/binary/generated/fancy_content.ini b/firmware/console/binary/generated/fancy_content.ini index 0c3734e44a..47eb50e888 100644 --- a/firmware/console/binary/generated/fancy_content.ini +++ b/firmware/console/binary/generated/fancy_content.ini @@ -41,15 +41,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -373,3 +364,18 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + diff --git a/firmware/console/binary/generated/fancy_menu.ini b/firmware/console/binary/generated/fancy_menu.ini index 9f43729785..41b3807e10 100644 --- a/firmware/console/binary/generated/fancy_menu.ini +++ b/firmware/console/binary/generated/fancy_menu.ini @@ -1,7 +1,6 @@ subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -22,3 +21,5 @@ subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" diff --git a/firmware/console/binary/generated/live_data_fragments.h b/firmware/console/binary/generated/live_data_fragments.h index 953f4400d0..c3c4ca825d 100644 --- a/firmware/console/binary/generated/live_data_fragments.h +++ b/firmware/console/binary/generated/live_data_fragments.h @@ -3,7 +3,6 @@ decl_frag{}, decl_frag{}, decl_frag{}, decl_frag{}, -decl_frag{}, decl_frag{}, decl_frag{}, decl_frag{}, @@ -31,3 +30,5 @@ decl_frag{}, // wb1 // decl_frag{}, // wb2 decl_frag{}, decl_frag{}, +decl_frag{}, +decl_frag{}, diff --git a/firmware/console/binary/generated/live_data_ids.h b/firmware/console/binary/generated/live_data_ids.h index 7522d0f9d0..a412ec063d 100644 --- a/firmware/console/binary/generated/live_data_ids.h +++ b/firmware/console/binary/generated/live_data_ids.h @@ -6,7 +6,6 @@ LDS_output_channels, LDS_fuel_computer, LDS_ignition_state, LDS_knock_controller, -LDS_throttle_model, LDS_high_pressure_fuel_pump, LDS_injector_model, LDS_launch_control_state, @@ -27,29 +26,32 @@ LDS_electronic_throttle, LDS_wideband_state, LDS_dc_motors, LDS_sent_state, +LDS_throttle_model, +LDS_vvt, } live_data_e; #define OUTPUT_CHANNELS_BASE_ADDRESS 0 #define FUEL_COMPUTER_BASE_ADDRESS 820 #define IGNITION_STATE_BASE_ADDRESS 860 #define KNOCK_CONTROLLER_BASE_ADDRESS 892 -#define THROTTLE_MODEL_BASE_ADDRESS 908 -#define HIGH_PRESSURE_FUEL_PUMP_BASE_ADDRESS 920 -#define INJECTOR_MODEL_BASE_ADDRESS 944 -#define LAUNCH_CONTROL_STATE_BASE_ADDRESS 956 -#define ANTILAG_SYSTEM_STATE_BASE_ADDRESS 964 -#define BOOST_CONTROL_BASE_ADDRESS 976 -#define AC_CONTROL_BASE_ADDRESS 1000 -#define FAN_CONTROL_BASE_ADDRESS 1012 -#define FUEL_PUMP_CONTROL_BASE_ADDRESS 1016 -#define MAIN_RELAY_BASE_ADDRESS 1020 -#define ENGINE_STATE_BASE_ADDRESS 1024 -#define TPS_ACCEL_STATE_BASE_ADDRESS 1108 -#define TRIGGER_CENTRAL_BASE_ADDRESS 1156 -#define TRIGGER_STATE_BASE_ADDRESS 1208 -#define TRIGGER_STATE_PRIMARY_BASE_ADDRESS 1228 -#define WALL_FUEL_STATE_BASE_ADDRESS 1232 -#define IDLE_STATE_BASE_ADDRESS 1240 -#define ELECTRONIC_THROTTLE_BASE_ADDRESS 1288 -#define WIDEBAND_STATE_BASE_ADDRESS 1340 -#define DC_MOTORS_BASE_ADDRESS 1352 -#define SENT_STATE_BASE_ADDRESS 1364 +#define HIGH_PRESSURE_FUEL_PUMP_BASE_ADDRESS 908 +#define INJECTOR_MODEL_BASE_ADDRESS 932 +#define LAUNCH_CONTROL_STATE_BASE_ADDRESS 944 +#define ANTILAG_SYSTEM_STATE_BASE_ADDRESS 952 +#define BOOST_CONTROL_BASE_ADDRESS 964 +#define AC_CONTROL_BASE_ADDRESS 988 +#define FAN_CONTROL_BASE_ADDRESS 1000 +#define FUEL_PUMP_CONTROL_BASE_ADDRESS 1004 +#define MAIN_RELAY_BASE_ADDRESS 1008 +#define ENGINE_STATE_BASE_ADDRESS 1012 +#define TPS_ACCEL_STATE_BASE_ADDRESS 1096 +#define TRIGGER_CENTRAL_BASE_ADDRESS 1144 +#define TRIGGER_STATE_BASE_ADDRESS 1196 +#define TRIGGER_STATE_PRIMARY_BASE_ADDRESS 1216 +#define WALL_FUEL_STATE_BASE_ADDRESS 1220 +#define IDLE_STATE_BASE_ADDRESS 1228 +#define ELECTRONIC_THROTTLE_BASE_ADDRESS 1276 +#define WIDEBAND_STATE_BASE_ADDRESS 1328 +#define DC_MOTORS_BASE_ADDRESS 1340 +#define SENT_STATE_BASE_ADDRESS 1352 +#define THROTTLE_MODEL_BASE_ADDRESS 1360 +#define VVT_BASE_ADDRESS 1372 diff --git a/firmware/console/binary/generated/output_channels.ini b/firmware/console/binary/generated/output_channels.ini index 655af6881d..140a950c84 100644 --- a/firmware/console/binary/generated/output_channels.ini +++ b/firmware/console/binary/generated/output_channels.ini @@ -47,24 +47,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -519,228 +518,231 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 diff --git a/firmware/console/binary/generated/total_live_data_generated.h b/firmware/console/binary/generated/total_live_data_generated.h index 98957ba755..d86bb81d0a 100644 --- a/firmware/console/binary/generated/total_live_data_generated.h +++ b/firmware/console/binary/generated/total_live_data_generated.h @@ -1,2 +1,2 @@ // generated by gen_live_documentation.sh / LiveDataProcessor.java -#define TS_TOTAL_OUTPUT_SIZE 1372 \ No newline at end of file +#define TS_TOTAL_OUTPUT_SIZE 1376 \ No newline at end of file diff --git a/firmware/console/binary/live_data.cpp b/firmware/console/binary/live_data.cpp index cdf0db973e..ec5e25cbdd 100644 --- a/firmware/console/binary/live_data.cpp +++ b/firmware/console/binary/live_data.cpp @@ -8,6 +8,7 @@ #include "knock_controller_generated.h" #include "fuel_computer.h" #include "antilag_system_state_generated.h" +#include "vvt_generated.h" template<> const output_channels_s* getLiveData(size_t) { diff --git a/firmware/console/binary/output_channels.txt b/firmware/console/binary/output_channels.txt index d9bccf7219..5897a3c423 100644 --- a/firmware/console/binary/output_channels.txt +++ b/firmware/console/binary/output_channels.txt @@ -76,9 +76,6 @@ uint16_t rpmAcceleration;dRPM;"RPM acceleration",1, 0, 0, 5, 2 int16_t injectionOffset;@@GAUGE_NAME_FUEL_INJECTION_TIMING@@;"deg", 1, 0, 0, 0, 0 ! Corrections -! todo: inline this further to injectorModel deadTime - uint16_t autoscale injectorLagMs;@@GAUGE_NAME_INJECTOR_LAG@@;"ms",{1/@@PACK_MULT_MS@@}, 0, 0, 0, 3 - ! we want a hash of engineMake+engineCode+vehicleName in the log file in order to match TS logs to rusEFI Online tune uint16_t engineMakeCodeNameCrc16;@@GAUGE_NAME_ENGINE_CRC16@@;"crc16",1, 0, 0, 0, 0 ! Wall model AE diff --git a/firmware/console/binary/output_channels_generated.h b/firmware/console/binary/output_channels_generated.h index 6bbcf06999..b046a59331 100644 --- a/firmware/console/binary/output_channels_generated.h +++ b/firmware/console/binary/output_channels_generated.h @@ -263,91 +263,91 @@ struct output_channels_s { // offset 48 int16_t injectionOffset = (int16_t)0; - // @@GAUGE_NAME_INJECTOR_LAG@@ - // ms - // offset 50 - scaled_channel injectorLagMs = (uint16_t)0; - // @@GAUGE_NAME_ENGINE_CRC16@@ // crc16 - // offset 52 + // offset 50 uint16_t engineMakeCodeNameCrc16 = (uint16_t)0; // @@GAUGE_NAME_FUEL_WALL_AMOUNT@@ // mg - // offset 54 + // offset 52 scaled_channel wallFuelAmount = (uint16_t)0; // @@GAUGE_NAME_FUEL_WALL_CORRECTION@@ // mg - // offset 56 + // offset 54 scaled_channel wallFuelCorrectionValue = (int16_t)0; - // offset 58 + // offset 56 uint16_t revolutionCounterSinceStart = (uint16_t)0; // CAN: Rx - // offset 60 + // offset 58 uint16_t canReadCounter = (uint16_t)0; // @@GAUGE_NAME_FUEL_TPS_EXTRA@@ // ms - // offset 62 + // offset 60 scaled_channel tpsAccelFuel = (int16_t)0; // @@GAUGE_NAME_TIMING_ADVANCE@@ // deg - // offset 64 + // offset 62 scaled_channel ignitionAdvance = (int16_t)0; // @@GAUGE_NAME_IGNITION_MODE@@ - // offset 66 + // offset 64 uint8_t currentIgnitionMode = (uint8_t)0; // @@GAUGE_NAME_INJECTION_MODE@@ - // offset 67 + // offset 65 uint8_t currentInjectionMode = (uint8_t)0; // @@GAUGE_NAME_DWELL_DUTY@@ // % - // offset 68 + // offset 66 scaled_channel coilDutyCycle = (uint16_t)0; // ETB Target // % - // offset 70 + // offset 68 scaled_channel etbTarget = (int16_t)0; // @@GAUGE_NAME_ETB_DUTY@@ // % - // offset 72 + // offset 70 scaled_channel etb1DutyCycle = (int16_t)0; // Fuel level // % - // offset 74 + // offset 72 scaled_channel fuelTankLevel = (int16_t)0; // @@GAUGE_NAME_FUEL_CONSUMPTION@@ // grams - // offset 76 + // offset 74 uint16_t totalFuelConsumption = (uint16_t)0; // @@GAUGE_NAME_FUEL_FLOW@@ // gram/s - // offset 78 + // offset 76 scaled_channel fuelFlowRate = (uint16_t)0; // @@GAUGE_NAME_TPS2@@ // % - // offset 80 + // offset 78 scaled_channel TPS2Value = (int16_t)0; // @@GAUGE_NAME_TUNE_CRC16@@ // crc16 - // offset 82 + // offset 80 uint16_t tuneCrc16 = (uint16_t)0; + // need 4 byte alignment + // units + // offset 82 + uint8_t alignmentFill_at_82[2]; + // @@GAUGE_NAME_KNOCK_LEVEL@@ // Volts // offset 84 diff --git a/firmware/console/binary_log/log_fields_generated.h b/firmware/console/binary_log/log_fields_generated.h index e190db3eb3..077d77b669 100644 --- a/firmware/console/binary_log/log_fields_generated.h +++ b/firmware/console/binary_log/log_fields_generated.h @@ -25,7 +25,6 @@ static constexpr LogField fields[] = { {engine->outputChannels.injectorDutyCycle, "Fuel: injector duty cycle", "%", 0}, {engine->outputChannels.veValue, "Fuel: VE", "ratio", 1}, {engine->outputChannels.injectionOffset, "Fuel: Injection timing SOI", "deg", 0}, - {engine->outputChannels.injectorLagMs, "Fuel: injector lag", "ms", 3}, {engine->outputChannels.engineMakeCodeNameCrc16, "Engine CRC16", "crc16", 0}, {engine->outputChannels.wallFuelAmount, "Fuel: wall amount", "mg", 3}, {engine->outputChannels.wallFuelCorrectionValue, "Fuel: wall correction", "mg", 3}, diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index d726e02b0d..5aea1cb512 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -508,9 +508,6 @@ static void updateFuelCorrections() { engine->outputChannels.fuelPidCorrection[0] = 100.0f * (engine->stftCorrection[0] - 1.0f); engine->outputChannels.fuelPidCorrection[1] = 100.0f * (engine->stftCorrection[1] - 1.0f); engine->outputChannels.Gego = 100.0f * engine->stftCorrection[0]; - -// get rid of this, have gauges use injector model info directly - engine->outputChannels.injectorLagMs = engine->module()->getDeadtime(); } static void updateFuelResults() { diff --git a/firmware/controllers/actuators/vvt.cpp b/firmware/controllers/actuators/vvt.cpp index 96bada4378..75ea2fdcd7 100644 --- a/firmware/controllers/actuators/vvt.cpp +++ b/firmware/controllers/actuators/vvt.cpp @@ -12,10 +12,6 @@ #define NO_PIN_PERIOD 500 -#if defined(HAS_OS_ACCESS) -#error "Unexpected OS ACCESS HERE" -#endif /* HAS_OS_ACCESS */ - using vvt_map_t = Map3D; static vvt_map_t vvtTable1; @@ -62,6 +58,8 @@ expected VvtController::getSetpoint() { engine->outputChannels.vvtTargets[index] = target; #endif + vvtTarget = target; + return target; } @@ -104,6 +102,8 @@ void VvtController::setOutput(expected outputValue) { && engine->rpmCalculator.getSecondsSinceEngineStart(getTimeNowNt()) > engineConfiguration->vvtActivationDelayMs / MS_PER_SECOND ; + vvtOutput = outputValue.value_or(0); + if (outputValue && enabled) { m_pwm.setSimplePwmDutyCycle(PERCENT_TO_DUTY(outputValue.Value)); } else { @@ -184,3 +184,16 @@ void initVvtActuators() { } #endif + +template<> +const vvt_s* getLiveData(size_t idx) { +#if EFI_AUX_PID + if (idx >= efi::size(instances)) { + return nullptr; + } + + return &instances[idx]; +#else + return nullptr; +#endif +} diff --git a/firmware/controllers/actuators/vvt.h b/firmware/controllers/actuators/vvt.h index 4ca5331f5b..7c6d13c125 100644 --- a/firmware/controllers/actuators/vvt.h +++ b/firmware/controllers/actuators/vvt.h @@ -11,6 +11,7 @@ #include "closed_loop_controller.h" #include "pwm_generator_logic.h" #include "efi_pid.h" +#include "vvt_generated.h" class ValueProvider3D; @@ -18,7 +19,7 @@ void initVvtActuators(); void startVvtControlPins(); void stopVvtControlPins(); -class VvtController : public PeriodicTimerController, public ClosedLoopController { +class VvtController : public PeriodicTimerController, public ClosedLoopController, public vvt_s { public: void init(int index, int bankIndex, int camIndex, const ValueProvider3D* targetMap); diff --git a/firmware/controllers/actuators/vvt.txt b/firmware/controllers/actuators/vvt.txt new file mode 100644 index 0000000000..1fab77814c --- /dev/null +++ b/firmware/controllers/actuators/vvt.txt @@ -0,0 +1,4 @@ +struct_no_prefix vvt_s + uint16_t autoscale vvtTarget;;"deg", 0.1, 0, -90, 90, 1 + uint8_t autoscale vvtOutput;;"%", 0.5, 0, 100, 1 +end_struct diff --git a/firmware/controllers/actuators/vvt_generated.h b/firmware/controllers/actuators/vvt_generated.h new file mode 100644 index 0000000000..722cbff171 --- /dev/null +++ b/firmware/controllers/actuators/vvt_generated.h @@ -0,0 +1,19 @@ +#pragma once +#include "rusefi_types.h" +struct vvt_s { + // deg + // offset 0 + scaled_channel vvtTarget = (uint16_t)0; + + // % + // offset 2 + scaled_channel vvtOutput = (uint8_t)0; + + // need 4 byte alignment + // units + // offset 3 + uint8_t alignmentFill_at_3[1]; + +}; +static_assert(sizeof(vvt_s) == 4); + diff --git a/firmware/controllers/algo/defaults/default_fuel.cpp b/firmware/controllers/algo/defaults/default_fuel.cpp index e058756204..a9ce2b691b 100644 --- a/firmware/controllers/algo/defaults/default_fuel.cpp +++ b/firmware/controllers/algo/defaults/default_fuel.cpp @@ -210,6 +210,19 @@ void setDefaultWallWetting() { copyArray(engineConfiguration->wwBetaMapValues, betaMap); } +static void setDefaultLambdaProtection() { + engineConfiguration->lambdaProtectionEnable = false; + + engineConfiguration->lambdaProtectionMinLoad = 60; + engineConfiguration->lambdaProtectionMinRpm = 2500; + engineConfiguration->lambdaProtectionMinTps = 50; + engineConfiguration->lambdaProtectionTimeout = 0.5f; + + engineConfiguration->lambdaProtectionRestoreLoad = 30; + engineConfiguration->lambdaProtectionRestoreRpm = 2000; + engineConfiguration->lambdaProtectionRestoreTps = 20; +} + void setDefaultFuel() { // Base injection configuration engineConfiguration->isInjectionEnabled = true; @@ -278,4 +291,7 @@ void setDefaultFuel() { // Some reasonable reference pressure that many vehicles use engineConfiguration->fuelReferencePressure = 300; + + // Lambda protection defaults + setDefaultLambdaProtection(); } diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index ae4c5d3857..bbaa695511 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -49,6 +49,7 @@ #include "fuel_schedule.h" #include "prime_injection.h" #include "throttle_model.h" +#include "lambda_monitor.h" #ifndef EFI_UNIT_TEST #error EFI_UNIT_TEST must be defined! @@ -157,7 +158,7 @@ class Engine final : public TriggerStateListener { * Slightly shorter helper function to keep the code looking clean. */ template - auto & module() { + constexpr auto & module() { return engineModules.get(); } @@ -182,6 +183,8 @@ class Engine final : public TriggerStateListener { BoostController boostController; #endif // EFI_BOOST_CONTROL + LambdaMonitor lambdaMonitor; + IgnitionState ignitionState; void resetLua(); diff --git a/firmware/controllers/algo/engine2.cpp b/firmware/controllers/algo/engine2.cpp index c8d5120391..0b5c19d82c 100644 --- a/firmware/controllers/algo/engine2.cpp +++ b/firmware/controllers/algo/engine2.cpp @@ -156,6 +156,7 @@ void EngineState::periodicFastCallback() { float fuelLoad = getFuelingLoad(); injectionOffset = getInjectionOffset(rpm, fuelLoad); + engine->lambdaMonitor.update(rpm, fuelLoad); float ignitionLoad = getIgnitionLoad(); float advance = getAdvance(rpm, ignitionLoad) * engine->ignitionState.luaTimingMult + engine->ignitionState.luaTimingAdd; diff --git a/firmware/controllers/algo/fuel/injector_model.h b/firmware/controllers/algo/fuel/injector_model.h index db41c0ce6a..c5c95b6a6a 100644 --- a/firmware/controllers/algo/fuel/injector_model.h +++ b/firmware/controllers/algo/fuel/injector_model.h @@ -4,14 +4,14 @@ #include "injector_model_generated.h" #include "engine_module.h" -struct IInjectorModel : public EngineModule { +struct IInjectorModel : public EngineModule, public injector_model_s { virtual void prepare() = 0; virtual floatms_t getInjectionDuration(float fuelMassGram) const = 0; virtual float getFuelMassForDuration(floatms_t duration) const = 0; virtual floatms_t getDeadtime() const = 0; }; -class InjectorModelBase : public IInjectorModel, public injector_model_s { +class InjectorModelBase : public IInjectorModel { public: void prepare() override; floatms_t getInjectionDuration(float fuelMassGram) const override; diff --git a/firmware/controllers/algo/fuel/injector_model.txt b/firmware/controllers/algo/fuel/injector_model.txt index 3db23ddc22..c6a4d92729 100644 --- a/firmware/controllers/algo/fuel/injector_model.txt +++ b/firmware/controllers/algo/fuel/injector_model.txt @@ -1,7 +1,7 @@ struct_no_prefix injector_model_s -float m_deadtime;injectorLag(VBatt)\nthis value depends on a slow-changing VBatt value, so\nwe update it once in a while +float m_deadtime;@@GAUGE_NAME_INJECTOR_LAG@@;"ms",1, 0, 0, 0, 3 -float pressureDelta;fuel: injector pressureDelta;"kPa", 1, 0, -10000, 10000, 1 -float pressureRatio;fuel: injector pressureRatio;"", 1, 0, -10000, 10000, 3 +float pressureDelta;fuel: Injector pressure delta;"kPa", 1, 0, -1000, 1000, 1 +float pressureRatio;fuel: Injector pressure ratio;"", 1, 0, 0, 100, 3 end_struct diff --git a/firmware/controllers/algo/fuel/injector_model_generated.h b/firmware/controllers/algo/fuel/injector_model_generated.h index 408e8d42f7..a5c9251a4c 100644 --- a/firmware/controllers/algo/fuel/injector_model_generated.h +++ b/firmware/controllers/algo/fuel/injector_model_generated.h @@ -1,18 +1,17 @@ #pragma once #include "rusefi_types.h" struct injector_model_s { - // injectorLag(VBatt) - // this value depends on a slow-changing VBatt value, so - // we update it once in a while + // @@GAUGE_NAME_INJECTOR_LAG@@ + // ms // offset 0 float m_deadtime = (float)0; - // fuel: injector pressureDelta + // fuel: Injector pressure delta // kPa // offset 4 float pressureDelta = (float)0; - // fuel: injector pressureRatio + // fuel: Injector pressure ratio // offset 8 float pressureRatio = (float)0; diff --git a/firmware/controllers/algo/obd_error_codes.h b/firmware/controllers/algo/obd_error_codes.h index 07942d6333..c59df7107a 100644 --- a/firmware/controllers/algo/obd_error_codes.h +++ b/firmware/controllers/algo/obd_error_codes.h @@ -1,6 +1,6 @@ /** * @file obd_error_codes.h - * @brief Standart OBD-II error codes + * @brief Standart and custom OBD-II error codes * * More info at http://www.obd-codes.com/faq/obd2-codes-explained.php * @@ -14,16 +14,6 @@ enum class ObdCode : uint16_t { None = 0, -//P0001 Fuel Volume Regulator Control Circuit/Open -//P0002 Fuel Volume Regulator Control Circuit Range/Performance -//P0003 Fuel Volume Regulator Control Circuit Low -//P0004 Fuel Volume Regulator Control Circuit High -//P0005 Fuel Shutoff Valve "A" Control Circuit/Open -//P0006 Fuel Shutoff Valve "A" Control Circuit Low -//P0007 Fuel Shutoff Valve "A" Control Circuit High -//P0008 Engine Positions System Performance Bank 1 -//P0009 Engine Position System Performance Bank 2 -//P0010 "A" Camshaft Position Actuator Circuit (Bank 1) //P0001 Fuel Volume Regulator Control Circuit/Open //P0002 Fuel Volume Regulator Control Circuit Range/Performance //P0003 Fuel Volume Regulator Control Circuit Low @@ -1772,9 +1762,9 @@ enum class ObdCode : uint16_t { CUSTOM_TOO_LONG_CRANKING_FUEL_INJECTION = 6054, CUSTOM_INTERPOLATE_NAN = 6055, ERROR_HISTO_NAME = 6056, - CUSTOM_6057 = 6057, + // unused code: CUSTOM_6057 = 6057, CUSTOM_OBD_HIGH_FREQUENCY = 6058, - CUSTOM_OBD_59 = 6059, + // unused code: CUSTOM_OBD_59 = 6059, CUSTOM_OBD_MMC_START1 = 6060, CUSTOM_OBD_MMC_START2 = 6061, @@ -2123,7 +2113,7 @@ enum class ObdCode : uint16_t { CUSTOM_INSTANT_MAP_DECODING = 6899, STACK_USAGE_COMMUNICATION = 6900, STACK_USAGE_MIL = 6901, - STACK_USAGE_BENCH = 6902, + CUSTOM_6902 = 6902, STACK_USAGE_STATUS = 6903, STACK_USAGE_4 = 6904, diff --git a/firmware/controllers/bench_test.cpp b/firmware/controllers/bench_test.cpp index c5401a3745..2a1cd3a08d 100644 --- a/firmware/controllers/bench_test.cpp +++ b/firmware/controllers/bench_test.cpp @@ -60,10 +60,10 @@ static void benchOn(OutputPin* output) { output->setValue(true); } -static char pin_error[64]; - static void benchOff(OutputPin* output) { #if EFI_PROD_CODE && (BOARD_EXT_GPIOCHIPS > 0) + static char pin_error[64]; + brain_pin_diag_e diag = output->getDiag(); if (diag == PIN_INVALID) { efiPrintf("No Diag on this pin"); @@ -123,6 +123,8 @@ static int count; static brain_pin_e brainPin; static OutputPin* pinX; +static chibios_rt::CounterSemaphore benchSemaphore(0); + static void pinbench(float startdelay, float ontime, float offtime, int iterations, OutputPin* pinParam, brain_pin_e brainPinParam) { @@ -134,6 +136,7 @@ static void pinbench(float startdelay, float ontime, float offtime, int iteratio brainPin = brainPinParam; // let's signal bench thread to wake up isBenchTestPending = true; + benchSemaphore.signal(); } /*==========================================================================*/ @@ -271,27 +274,25 @@ void fuelPumpBench(void) { fuelPumpBenchExt(3000.0); } -class BenchController : public PeriodicController { +class BenchController : public ThreadController { public: - BenchController() : PeriodicController("BenchThread") { } + BenchController() : ThreadController("BenchTest", PRIO_BENCH_TEST) { } private: - void PeriodicTask(efitick_t nowNt) override { - UNUSED(nowNt); - setPeriod(50 /* ms */); - - validateStack("Bench", ObdCode::STACK_USAGE_BENCH, 128); - - // naive inter-thread communication - waiting for a flag - if (isBenchTestPending) { - isBenchTestPending = false; - runBench(brainPin, pinX, startDelayMs, onTime, offTime, count); - } - - if (widebandUpdatePending) { -#if EFI_WIDEBAND_FIRMWARE_UPDATE && EFI_CAN_SUPPORT - updateWidebandFirmware(); -#endif - widebandUpdatePending = false; + void ThreadTask() override { + while (true) { + benchSemaphore.wait(); + + if (isBenchTestPending) { + isBenchTestPending = false; + runBench(brainPin, pinX, startDelayMs, onTime, offTime, count); + } + + if (widebandUpdatePending) { + #if EFI_WIDEBAND_FIRMWARE_UPDATE && EFI_CAN_SUPPORT + updateWidebandFirmware(); + #endif + widebandUpdatePending = false; + } } } }; @@ -394,6 +395,7 @@ static void handleCommandX14(uint16_t index) { #endif case 0x12: widebandUpdatePending = true; + benchSemaphore.signal(); return; case 0x14: #ifdef STM32F7 @@ -446,7 +448,6 @@ void executeTSCommand(uint16_t subsystem, uint16_t index) { case TS_IGNITION_CATEGORY: if (!running) { - /* WARN: fixed charge time */ doRunSparkBench(index, 300.0, engineConfiguration->benchTestOnTime, engineConfiguration->benchTestOffTime, engineConfiguration->benchTestCount); } @@ -568,7 +569,6 @@ void initBenchTest() { addConsoleAction(CMD_HPFP_BENCH, hpfpValveBench); addConsoleActionFFFFF("luabench2", luaOutBench2); - instance.setPeriod(200 /*ms*/); instance.start(); onConfigurationChangeBenchTest(); } diff --git a/firmware/controllers/can/can_verbose.cpp b/firmware/controllers/can/can_verbose.cpp index 4ca5bdd35d..0a22e61895 100644 --- a/firmware/controllers/can/can_verbose.cpp +++ b/firmware/controllers/can/can_verbose.cpp @@ -46,9 +46,7 @@ static void populateFrame(Status& msg) { msg.fuelPump = enginePins.fuelPumpRelay.getLogicValue(); msg.checkEngine = enginePins.checkEnginePin.getLogicValue(); msg.o2Heater = enginePins.o2heater.getLogicValue(); - - // TODO: https://github.com/FOME-Tech/fome-fw/issues/75 - msg.lambdaProtectActive = false; + msg.lambdaProtectActive = engine->lambdaMonitor.isCut(); msg.gear = Sensor::getOrZero(SensorType::DetectedGear); } diff --git a/firmware/controllers/date_stamp.h b/firmware/controllers/date_stamp.h index 8868d6f862..dc0c1e7a6b 100644 --- a/firmware/controllers/date_stamp.h +++ b/firmware/controllers/date_stamp.h @@ -1,2 +1,2 @@ #pragma once -#define VCS_DATE 20230624 +#define VCS_DATE 20230710 diff --git a/firmware/controllers/engine_cycle/fuel_schedule.cpp b/firmware/controllers/engine_cycle/fuel_schedule.cpp index 54b7b8662d..d82c8b218d 100644 --- a/firmware/controllers/engine_cycle/fuel_schedule.cpp +++ b/firmware/controllers/engine_cycle/fuel_schedule.cpp @@ -127,7 +127,8 @@ bool FuelSchedule::addFuelEventsForCylinder(int i) { engine->outputChannels.currentInjectionMode = static_cast(mode); // Map order index -> cylinder index (firing order) - int injectorIndex = ID2INDEX(getCylinderId(i)); + // Single point only uses injector 1 (index 0) + int injectorIndex = mode == IM_SINGLE_POINT ? 0 : ID2INDEX(getCylinderId(i)); InjectorOutputPin *secondOutput = nullptr; diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index b0e422cc00..a5c795f6e5 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1135,6 +1135,7 @@ struct engine_configuration_s { // offset 642 scaled_channel lambdaProtectionMinRpm; + // % // offset 643 scaled_channel lambdaProtectionMinLoad; @@ -1393,6 +1394,7 @@ struct engine_configuration_s { // offset 746 uint16_t startCrankingDuration; + // % // offset 748 scaled_channel lambdaProtectionMinTps; @@ -1401,8 +1403,9 @@ struct engine_configuration_s { // offset 749 scaled_channel lambdaProtectionTimeout; + // RPM // offset 750 - uint8_t unused748; + scaled_channel lambdaProtectionRestoreRpm; // offset 751 pin_output_mode_e acRelayPinMode; @@ -2329,8 +2332,13 @@ struct engine_configuration_s { // offset 1440 scaled_channel benchTestOffTime; + // % // offset 1441 - uint8_t unused1445[2]; + scaled_channel lambdaProtectionRestoreTps; + + // % + // offset 1442 + scaled_channel lambdaProtectionRestoreLoad; // offset 1443 pin_input_mode_e launchActivatePinMode; diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 0d91b5f2ec..b13919b80f 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1031,7 +1031,7 @@ #define SentEtbType_NONE 0 #define show_Frankenso_presets true #define show_test_presets true -#define SIGNATURE_HASH 2309894757 +#define SIGNATURE_HASH 4223705144 #define spi_device_e_auto_enum 0="SPI_NONE",1="SPI_DEVICE_1",2="SPI_DEVICE_2",3="SPI_DEVICE_3",4="SPI_DEVICE_4" #define spi_device_e_SPI_DEVICE_1 1 #define spi_device_e_SPI_DEVICE_2 2 @@ -1297,12 +1297,12 @@ #define ts_show_vbatt true #define ts_show_vr_threshold_2 true #define ts_show_vr_threshold_all true -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757" +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' #define TS_TEST_COMMAND_char t -#define TS_TOTAL_OUTPUT_SIZE 1372 +#define TS_TOTAL_OUTPUT_SIZE 1376 #define TS_TRIGGER_SCOPE_CHANNEL_1_NAME "Channel 1" #define TS_TRIGGER_SCOPE_CHANNEL_2_NAME "Channel 2" #define TS_TRIGGER_SCOPE_DISABLE 5 diff --git a/firmware/controllers/generated/signature_48way.h b/firmware/controllers/generated/signature_48way.h index fdcc4070c7..f6fe294845 100644 --- a/firmware/controllers/generated/signature_48way.h +++ b/firmware/controllers/generated/signature_48way.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 2438350378 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.48way.2438350378" +#define SIGNATURE_HASH 3812152439 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.48way.3812152439" diff --git a/firmware/controllers/generated/signature_alphax-2chan.h b/firmware/controllers/generated/signature_alphax-2chan.h index 6b345dd661..eeb0e1a7b2 100644 --- a/firmware/controllers/generated/signature_alphax-2chan.h +++ b/firmware/controllers/generated/signature_alphax-2chan.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 4040411479 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.alphax-2chan.4040411479" +#define SIGNATURE_HASH 2193447690 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.alphax-2chan.2193447690" diff --git a/firmware/controllers/generated/signature_alphax-4chan.h b/firmware/controllers/generated/signature_alphax-4chan.h index d668dd316d..71a493e40d 100644 --- a/firmware/controllers/generated/signature_alphax-4chan.h +++ b/firmware/controllers/generated/signature_alphax-4chan.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 2048641846 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.alphax-4chan.2048641846" +#define SIGNATURE_HASH 141908331 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.alphax-4chan.141908331" diff --git a/firmware/controllers/generated/signature_alphax-8chan.h b/firmware/controllers/generated/signature_alphax-8chan.h index 94b4203c5c..ec514ea7ba 100644 --- a/firmware/controllers/generated/signature_alphax-8chan.h +++ b/firmware/controllers/generated/signature_alphax-8chan.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 44092879 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.alphax-8chan.44092879" +#define SIGNATURE_HASH 1892573074 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.alphax-8chan.1892573074" diff --git a/firmware/controllers/generated/signature_atlas.h b/firmware/controllers/generated/signature_atlas.h index 9a7a388d0c..f78df74baa 100644 --- a/firmware/controllers/generated/signature_atlas.h +++ b/firmware/controllers/generated/signature_atlas.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3376823223 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.atlas.3376823223" +#define SIGNATURE_HASH 3140004330 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.atlas.3140004330" diff --git a/firmware/controllers/generated/signature_core8.h b/firmware/controllers/generated/signature_core8.h index 0b0d77731c..f856301726 100644 --- a/firmware/controllers/generated/signature_core8.h +++ b/firmware/controllers/generated/signature_core8.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3987456806 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.core8.3987456806" +#define SIGNATURE_HASH 2680508795 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.core8.2680508795" diff --git a/firmware/controllers/generated/signature_f407-discovery.h b/firmware/controllers/generated/signature_f407-discovery.h index f911c7d004..4957d216c2 100644 --- a/firmware/controllers/generated/signature_f407-discovery.h +++ b/firmware/controllers/generated/signature_f407-discovery.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 2309894757 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757" +#define SIGNATURE_HASH 4223705144 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144" diff --git a/firmware/controllers/generated/signature_f429-discovery.h b/firmware/controllers/generated/signature_f429-discovery.h index 3990b8a105..4e51a9ad6c 100644 --- a/firmware/controllers/generated/signature_f429-discovery.h +++ b/firmware/controllers/generated/signature_f429-discovery.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3582774928 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.f429-discovery.3582774928" +#define SIGNATURE_HASH 2816629965 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.f429-discovery.2816629965" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 431b882be0..f28f0e5d91 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 4158533210 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.frankenso_na6.4158533210" +#define SIGNATURE_HASH 2242952199 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.frankenso_na6.2242952199" diff --git a/firmware/controllers/generated/signature_harley81.h b/firmware/controllers/generated/signature_harley81.h index e35a4ec14b..3f8eae7e9d 100644 --- a/firmware/controllers/generated/signature_harley81.h +++ b/firmware/controllers/generated/signature_harley81.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 1545205482 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.harley81.1545205482" +#define SIGNATURE_HASH 779576503 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.harley81.779576503" diff --git a/firmware/controllers/generated/signature_hellen-gm-e67.h b/firmware/controllers/generated/signature_hellen-gm-e67.h index eb5726645c..7b6c2a182a 100644 --- a/firmware/controllers/generated/signature_hellen-gm-e67.h +++ b/firmware/controllers/generated/signature_hellen-gm-e67.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3169181763 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen-gm-e67.3169181763" +#define SIGNATURE_HASH 3465245214 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen-gm-e67.3465245214" diff --git a/firmware/controllers/generated/signature_hellen-honda-k.h b/firmware/controllers/generated/signature_hellen-honda-k.h index 6034e74ba9..ca0dd28a28 100644 --- a/firmware/controllers/generated/signature_hellen-honda-k.h +++ b/firmware/controllers/generated/signature_hellen-honda-k.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 661925378 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen-honda-k.661925378" +#define SIGNATURE_HASH 1427815519 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen-honda-k.1427815519" diff --git a/firmware/controllers/generated/signature_hellen-nb1.h b/firmware/controllers/generated/signature_hellen-nb1.h index 874da36dcd..9719792205 100644 --- a/firmware/controllers/generated/signature_hellen-nb1.h +++ b/firmware/controllers/generated/signature_hellen-nb1.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 581689132 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen-nb1.581689132" +#define SIGNATURE_HASH 1355107697 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen-nb1.1355107697" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index 60d6902ad9..9ecd24dccb 100644 --- a/firmware/controllers/generated/signature_hellen121nissan.h +++ b/firmware/controllers/generated/signature_hellen121nissan.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 1383101286 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen121nissan.1383101286" +#define SIGNATURE_HASH 538894651 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen121nissan.538894651" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index 0fb6433fa3..7a37096846 100644 --- a/firmware/controllers/generated/signature_hellen121vag.h +++ b/firmware/controllers/generated/signature_hellen121vag.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 4268981429 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen121vag.4268981429" +#define SIGNATURE_HASH 2350771944 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen121vag.2350771944" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 453fbbcf4e..b289809177 100644 --- a/firmware/controllers/generated/signature_hellen128.h +++ b/firmware/controllers/generated/signature_hellen128.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 1428074295 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen128.1428074295" +#define SIGNATURE_HASH 661667178 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen128.661667178" diff --git a/firmware/controllers/generated/signature_hellen154hyundai.h b/firmware/controllers/generated/signature_hellen154hyundai.h index 9dffc98691..362c20a25f 100644 --- a/firmware/controllers/generated/signature_hellen154hyundai.h +++ b/firmware/controllers/generated/signature_hellen154hyundai.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3253309398 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen154hyundai.3253309398" +#define SIGNATURE_HASH 3011976587 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen154hyundai.3011976587" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index 8f7788de2d..b3c89c372c 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 607672103 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen72.607672103" +#define SIGNATURE_HASH 1448527226 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen72.1448527226" diff --git a/firmware/controllers/generated/signature_hellen81.h b/firmware/controllers/generated/signature_hellen81.h index f5152a5eee..00a3328df7 100644 --- a/firmware/controllers/generated/signature_hellen81.h +++ b/firmware/controllers/generated/signature_hellen81.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 2293378469 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen81.2293378469" +#define SIGNATURE_HASH 4208771064 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen81.4208771064" diff --git a/firmware/controllers/generated/signature_hellen88bmw.h b/firmware/controllers/generated/signature_hellen88bmw.h index 1076e4c954..17be718ead 100644 --- a/firmware/controllers/generated/signature_hellen88bmw.h +++ b/firmware/controllers/generated/signature_hellen88bmw.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 2391423638 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellen88bmw.2391423638" +#define SIGNATURE_HASH 4242843851 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellen88bmw.4242843851" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index 4e5739cf3f..91b23035b7 100644 --- a/firmware/controllers/generated/signature_hellenNA6.h +++ b/firmware/controllers/generated/signature_hellenNA6.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3325857559 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellenNA6.3325857559" +#define SIGNATURE_HASH 3025280330 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellenNA6.3025280330" diff --git a/firmware/controllers/generated/signature_hellenNA8_96.h b/firmware/controllers/generated/signature_hellenNA8_96.h index 9657d01e67..106aade78c 100644 --- a/firmware/controllers/generated/signature_hellenNA8_96.h +++ b/firmware/controllers/generated/signature_hellenNA8_96.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 2056845479 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.hellenNA8_96.2056845479" +#define SIGNATURE_HASH 150366970 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.hellenNA8_96.150366970" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index b3f6360dbf..2258bb0a82 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 839035688 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.mre_f4.839035688" +#define SIGNATURE_HASH 1080834421 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.mre_f4.1080834421" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 8f940393d1..b51bfc0d79 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 839035688 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.mre_f7.839035688" +#define SIGNATURE_HASH 1080834421 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.mre_f7.1080834421" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 18e9e02f48..73b11685db 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3843556096 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.prometheus_405.3843556096" +#define SIGNATURE_HASH 2541130077 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.prometheus_405.2541130077" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index e56f95c652..c8b02a4b99 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3843556096 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.prometheus_469.3843556096" +#define SIGNATURE_HASH 2541130077 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.prometheus_469.2541130077" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 92066daa36..b5f529ef37 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3054652317 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.proteus_f4.3054652317" +#define SIGNATURE_HASH 3296516544 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.proteus_f4.3296516544" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 8736ea10ae..7ed47f8022 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3054652317 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.proteus_f7.3054652317" +#define SIGNATURE_HASH 3296516544 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.proteus_f7.3296516544" diff --git a/firmware/controllers/generated/signature_proteus_h7.h b/firmware/controllers/generated/signature_proteus_h7.h index 3a8883889e..06b6709dca 100644 --- a/firmware/controllers/generated/signature_proteus_h7.h +++ b/firmware/controllers/generated/signature_proteus_h7.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 3054652317 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.proteus_h7.3054652317" +#define SIGNATURE_HASH 3296516544 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.proteus_h7.3296516544" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index adccee4eb3..f234dcf250 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 1353177119 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.subaru_eg33_f7.1353177119" +#define SIGNATURE_HASH 583617090 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.subaru_eg33_f7.583617090" diff --git a/firmware/controllers/generated/signature_tdg-pdm8.h b/firmware/controllers/generated/signature_tdg-pdm8.h index 2adea9d261..9a6927d188 100644 --- a/firmware/controllers/generated/signature_tdg-pdm8.h +++ b/firmware/controllers/generated/signature_tdg-pdm8.h @@ -1,2 +1,2 @@ -#define SIGNATURE_HASH 1596121778 -#define TS_SIGNATURE "rusEFI (FOME) master.2023.06.25.tdg-pdm8.1596121778" +#define SIGNATURE_HASH 759984367 +#define TS_SIGNATURE "rusEFI (FOME) master.2023.07.09.tdg-pdm8.759984367" diff --git a/firmware/controllers/limp_manager.cpp b/firmware/controllers/limp_manager.cpp index 80bc94162f..638b4580ab 100644 --- a/firmware/controllers/limp_manager.cpp +++ b/firmware/controllers/limp_manager.cpp @@ -80,6 +80,10 @@ void LimpManager::updateState(int rpm, efitick_t nowNt) { } } + if (engine->lambdaMonitor.isCut()) { + allowFuel.clear(ClearReason::LambdaProtection); + } + #if EFI_SHAFT_POSITION_INPUT if (noFiringUntilVvtSync(engineConfiguration->vvtMode[0]) && !engine->triggerCentral.triggerState.hasSynchronizedPhase()) { diff --git a/firmware/controllers/limp_manager.h b/firmware/controllers/limp_manager.h index eef5851b6f..d5dfc96bfe 100644 --- a/firmware/controllers/limp_manager.h +++ b/firmware/controllers/limp_manager.h @@ -23,6 +23,7 @@ enum class ClearReason : uint8_t { IgnitionOff, // 14 Lua, // 15 ACR, // 16 - Harley Automatic Compression Release + LambdaProtection, // 17 // Keep this list in sync with fuelIgnCutCodeList in rusefi.input! // todo: add a code generator between ClearReason and fuelIgnCutCodeList in rusefi.input diff --git a/firmware/controllers/lua/generated/output_lookup_generated.cpp b/firmware/controllers/lua/generated/output_lookup_generated.cpp index ac59325cb2..1d14c7723a 100644 --- a/firmware/controllers/lua/generated/output_lookup_generated.cpp +++ b/firmware/controllers/lua/generated/output_lookup_generated.cpp @@ -1,3 +1,4 @@ +#if !EFI_UNIT_TEST #include "pch.h" #include "value_lookup.h" float getOutputValueByName(const char *name) { @@ -101,8 +102,6 @@ float getOutputValueByName(const char *name) { return engine->outputChannels.veValue; case -243031057: return engine->outputChannels.injectionOffset; - case 1615892023: - return engine->outputChannels.injectorLagMs; case 1726931380: return engine->outputChannels.engineMakeCodeNameCrc16; case 115540725: @@ -650,3 +649,4 @@ float getOutputValueByName(const char *name) { } return EFI_ERROR_CODE; } +#endif diff --git a/firmware/controllers/lua/generated/value_lookup_generated.cpp b/firmware/controllers/lua/generated/value_lookup_generated.cpp index 018ef469c5..ecd9737597 100644 --- a/firmware/controllers/lua/generated/value_lookup_generated.cpp +++ b/firmware/controllers/lua/generated/value_lookup_generated.cpp @@ -331,6 +331,8 @@ float getConfigValueByName(const char *name) { return engineConfiguration->lambdaProtectionMinTps; case -1645106444: return engineConfiguration->lambdaProtectionTimeout; + case 872435040: + return engineConfiguration->lambdaProtectionRestoreRpm; case -1171325035: return engineConfiguration->clutchUpPinInverted; case -675074552: @@ -705,6 +707,10 @@ float getConfigValueByName(const char *name) { return engineConfiguration->injectorFlowAsMassFlow; case -1655178001: return engineConfiguration->benchTestOffTime; + case 872437224: + return engineConfiguration->lambdaProtectionRestoreTps; + case -1274631759: + return engineConfiguration->lambdaProtectionRestoreLoad; case -1992945039: return engineConfiguration->boostCutPressure; case -1359134883: @@ -1816,6 +1822,11 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->lambdaProtectionTimeout = (int)value; return; + } + case 872435040: + { + engineConfiguration->lambdaProtectionRestoreRpm = (int)value; + return; } case -1171325035: { @@ -2751,6 +2762,16 @@ void setConfigValueByName(const char *name, float value) { { engineConfiguration->benchTestOffTime = (int)value; return; + } + case 872437224: + { + engineConfiguration->lambdaProtectionRestoreTps = (int)value; + return; + } + case -1274631759: + { + engineConfiguration->lambdaProtectionRestoreLoad = (int)value; + return; } case -1992945039: { diff --git a/firmware/controllers/lua/generated/value_lookup_generated.md b/firmware/controllers/lua/generated/value_lookup_generated.md index 13939d1200..3e06ad1a46 100644 --- a/firmware/controllers/lua/generated/value_lookup_generated.md +++ b/firmware/controllers/lua/generated/value_lookup_generated.md @@ -490,6 +490,9 @@ Maximum time to crank starter when start/stop button is pressed ### lambdaProtectionTimeout Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed +### lambdaProtectionRestoreRpm + + ### clutchUpPinInverted @@ -1051,6 +1054,12 @@ Select whether to configure injector flow in volumetric flow (defualt, cc/min) o ### benchTestOffTime Time between bench test pulses +### lambdaProtectionRestoreTps + + +### lambdaProtectionRestoreLoad + + ### boostCutPressure MAP value above which fuel is cut in case of overboost.\nSet to 0 to disable overboost cut. diff --git a/firmware/controllers/lua/lua_hooks.cpp b/firmware/controllers/lua/lua_hooks.cpp index 3adc99699d..43d595df90 100644 --- a/firmware/controllers/lua/lua_hooks.cpp +++ b/firmware/controllers/lua/lua_hooks.cpp @@ -808,12 +808,14 @@ void configureRusefiLuaHooks(lua_State* l) { return 1; }); +#if EFI_PROD_CODE || EFI_SIMULATOR lua_register(l, "getOutput", [](lua_State* l) { auto propertyName = luaL_checklstring(l, 1, nullptr); auto result = getOutputValueByName(propertyName); lua_pushnumber(l, result); return 1; }); +#endif // EFI_PROD_CODE || EFI_SIMULATOR #if EFI_SHAFT_POSITION_INPUT lua_register(l, "getEngineState", [](lua_State* l) { diff --git a/firmware/controllers/math/lambda_monitor.cpp b/firmware/controllers/math/lambda_monitor.cpp new file mode 100644 index 0000000000..22dc0aa92c --- /dev/null +++ b/firmware/controllers/math/lambda_monitor.cpp @@ -0,0 +1,103 @@ +#include "pch.h" + +#include "lambda_monitor.h" + +float LambdaMonitor::getMaxAllowedLambda(float rpm, float load) const { + return + engine->fuelComputer.targetLambda + + interpolate3d( + config->lambdaMaxDeviationTable, + config->lambdaMaxDeviationLoadBins, load, + config->lambdaMaxDeviationRpmBins, rpm + ); +} + +bool LambdaMonitorBase::isCut() const { + return m_isCut; +} + +void LambdaMonitorBase::update(float rpm, float load) { + if (isCurrentlyGood(rpm, load)) { + m_timeSinceGoodLambda.reset(); + } + + if (m_timeSinceGoodLambda.hasElapsedSec(engineConfiguration->lambdaProtectionTimeout)) { + // Things have been bad long enough, cut! + m_isCut = true; + } + + if (m_isCut) { + // If things are back to normal, cancel the cut and force a reset + if (restoreConditionsMet(rpm, load)) { + m_isCut = false; + m_timeSinceGoodLambda.reset(); + } + } +} + +bool LambdaMonitorBase::isCurrentlyGood(float rpm, float load) const { + // Lambda is always good if disabled + if (!engineConfiguration->lambdaProtectionEnable) { + return true; + } + + // Below min RPM, don't check + if (rpm < engineConfiguration->lambdaProtectionMinRpm) { + return true; + } + + // Below min load, don't check + if (load < engineConfiguration->lambdaProtectionMinLoad) { + return true; + } + + // Below min TPS, don't check + if (Sensor::getOrZero(SensorType::Tps1) <= engineConfiguration->lambdaProtectionMinTps) { + return true; + } + + // Pause checking if DFCO was active recently + auto timeSinceDfco = engine->module()->getTimeSinceCut(); + if (timeSinceDfco < engineConfiguration->noFuelTrimAfterDfcoTime) { + return true; + } + + // Pause checking if some other cut was active recently + auto timeSinceFuelCut = engine->module()->getTimeSinceAnyCut(); + // TODO: should this duration be configurable? + if (timeSinceFuelCut < 2) { + return true; + } + + // TODO: multiple banks + if (auto lambda = Sensor::get(SensorType::Lambda1)) { + if (lambda.Value < getMaxAllowedLambda(rpm, load)) { + // Lambda is OK, we're good. + return true; + } + } else { + // Broken lambda sensor doesn't imply bad lambda + + // TODO: can/should we be smarter here? + return true; + } + + // All checks failed, lambda is currently bad. + return false; +} + +bool LambdaMonitorBase::restoreConditionsMet(float rpm, float load) const { + if (rpm > engineConfiguration->lambdaProtectionRestoreRpm) { + return false; + } + + if (load > engineConfiguration->lambdaProtectionRestoreLoad) { + return false; + } + + if (Sensor::getOrZero(SensorType::Tps1) > engineConfiguration->lambdaProtectionRestoreTps) { + return false; + } + + return true; +} diff --git a/firmware/controllers/math/lambda_monitor.h b/firmware/controllers/math/lambda_monitor.h new file mode 100644 index 0000000000..fdaea8638e --- /dev/null +++ b/firmware/controllers/math/lambda_monitor.h @@ -0,0 +1,27 @@ +#pragma once + +struct LambdaMonitorBase { + void update(float rpm, float load); + bool isCut() const; + +protected: + // Returns whether lambda checking should happen at all + bool shouldCheckLambda(float rpm, float load) const; + + // Returns false if the current lambda reading is leaner than allowable. + // Returns true in any other case (rich enough, bad sensor, recent fuel cut, rpm to low, load too low, etc) + bool isCurrentlyGood(float rpm, float load) const; + virtual float getMaxAllowedLambda(float rpm, float load) const = 0; + + // Determine whether fuel should be restored after a cut occurs + // Returns true if OK to leave the "cut" state + bool restoreConditionsMet(float rpm, float load) const; + +private: + Timer m_timeSinceGoodLambda; + bool m_isCut = false; +}; + +class LambdaMonitor : public LambdaMonitorBase { + float getMaxAllowedLambda(float rpm, float load) const override; +}; diff --git a/firmware/controllers/math/math.mk b/firmware/controllers/math/math.mk index cbd543c72c..43515b20c1 100644 --- a/firmware/controllers/math/math.mk +++ b/firmware/controllers/math/math.mk @@ -4,5 +4,6 @@ CONTROLLERS_MATH_SRC_CPP = $(PROJECT_DIR)/controllers/math/engine_math.cpp \ $(PROJECT_DIR)/controllers/math/speed_density.cpp \ $(PROJECT_DIR)/controllers/math/closed_loop_fuel.cpp \ $(PROJECT_DIR)/controllers/math/closed_loop_fuel_cell.cpp \ + $(PROJECT_DIR)/controllers/math/lambda_monitor.cpp \ $(PROJECT_DIR)/controllers/math/throttle_model.cpp \ diff --git a/firmware/controllers/thread_priority.h b/firmware/controllers/thread_priority.h index 60e08a53f6..03491bc7aa 100644 --- a/firmware/controllers/thread_priority.h +++ b/firmware/controllers/thread_priority.h @@ -38,6 +38,7 @@ // These can get starved without too much adverse effect #define PRIO_AUX_SERIAL NORMALPRIO #define PRIO_KNOCK_PROCESS (NORMALPRIO - 10) +#define PRIO_BENCH_TEST (NORMALPRIO - 10) // These are intentionally low priority so they can't get in the way of anything else #define PRIO_FLASH_WRITE LOWPRIO + 20 diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index e0cbcfc40a..ac4fec2b87 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -153,25 +153,27 @@ static angle_t adjustCrankPhase(int camIndex) { return 0; } - TriggerCentral *tc = getTriggerCentral(); operation_mode_e operationMode = getEngineRotationState()->getOperationMode(); + auto crankDivider = getCrankDivider(operationMode); + if (crankDivider == 1) { + // Crank divider of 1 means there's no ambiguity, so don't try to resolve it + return 0; + } + + TriggerCentral *tc = getTriggerCentral(); + vvt_mode_e vvtMode = engineConfiguration->vvtMode[camIndex]; switch (vvtMode) { case VVT_FIRST_HALF: case VVT_MAP_V_TWIN: case VVT_MITSUBISHI_4G63: case VVT_MITSUBISHI_4G9x: - return tc->syncAndReport(getCrankDivider(operationMode), 1); + return tc->syncAndReport(crankDivider, 1); case VVT_SECOND_HALF: case VVT_NISSAN_VQ: case VVT_BOSCH_QUICK_START: - return tc->syncAndReport(getCrankDivider(operationMode), 0); case VVT_MIATA_NB: - /** - * NB2 is a symmetrical crank, there are four phases total - */ - return tc->syncAndReport(getCrankDivider(operationMode), 0); case VVT_2JZ: case VVT_TOYOTA_4_1: case VVT_FORD_ST170: @@ -181,7 +183,7 @@ static angle_t adjustCrankPhase(int camIndex) { case VVT_MITSUBISHI_3A92: case VVT_MITSUBISHI_6G75: case VVT_HONDA_K_EXHAUST: - return tc->syncAndReport(getCrankDivider(operationMode), 0); + return tc->syncAndReport(crankDivider, 0); case VVT_HONDA_K_INTAKE: case VVT_INACTIVE: // do nothing diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index 98af3ceb39..7dca25ea02 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -216,7 +216,8 @@ int TriggerDecoderBase::getCurrentIndex() const { } angle_t PrimaryTriggerDecoder::syncEnginePhase(int divider, int remainder, angle_t engineCycle) { - efiAssert(ObdCode::OBD_PCM_Processor_Fault, remainder < divider, "syncEnginePhase", false); + efiAssert(ObdCode::OBD_PCM_Processor_Fault, divider > 1, "syncEnginePhase divider", false); + efiAssert(ObdCode::OBD_PCM_Processor_Fault, remainder < divider, "syncEnginePhase remainder", false); angle_t totalShift = 0; while (getCrankSynchronizationCounter() % divider != remainder) { /** diff --git a/firmware/integration/LiveData.yaml b/firmware/integration/LiveData.yaml index 3a03ded80c..dd68ab0cac 100644 --- a/firmware/integration/LiveData.yaml +++ b/firmware/integration/LiveData.yaml @@ -37,11 +37,6 @@ Usages: folder: controllers/engine_cycle output_name: knock - - name: throttle_model - java: ThrottleModel.java - folder: controllers/math - output_name: throttle_model - - name: high_pressure_fuel_pump java: HighPressureFuelPump.java folder: controllers/engine_cycle @@ -50,6 +45,9 @@ Usages: - name: injector_model java: InjectorModel.java folder: controllers/algo/fuel + prepend: integration/rusefi_config_shared.txt + # constexpr: "___engine.module()" + # isPtr: true - name: launch_control_state java: LaunchControl.java @@ -152,5 +150,14 @@ Usages: - name: sent_state java: SentState.java - folder: controllers/sensors/ + folder: controllers/sensors prepend: integration/rusefi_config_shared.txt + + - name: throttle_model + java: ThrottleModel.java + folder: controllers/math + output_name: throttle_model + + - name: vvt + java: VvtState.java + folder: controllers/actuators diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index d29e98b988..b8cf236fe2 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -688,7 +688,7 @@ pin_input_mode_e throttlePedalUpPinMode; uint16_t autoscale fordInjectorSmallPulseSlope;;"g/s", 0.001, 0, 0, 65, 3 uint8_t autoscale lambdaProtectionMinRpm;;"RPM", 100, 0, 0, 25000, 0 - uint8_t autoscale lambdaProtectionMinLoad;;"", 10, 0, 0, 1000, 0 + uint8_t autoscale lambdaProtectionMinLoad;;"%", 10, 0, 0, 1000, 0 bit is_enabled_spi_1 bit is_enabled_spi_2 @@ -776,10 +776,10 @@ custom uart_device_e 1 bits, U08, @OFFSET@, [0:1], "Off", "UART1", "UART2", "UAR int16_t antiLagRpmTreshold;;"rpm", 1, 0, 0, 20000, 0 uint16_t startCrankingDuration;Maximum time to crank starter when start/stop button is pressed;"Seconds", 1, 0, 0, 30, 0 - uint8_t autoscale lambdaProtectionMinTps;;"", 1, 0, 0, 100, 0 + uint8_t autoscale lambdaProtectionMinTps;;"%", 1, 0, 0, 100, 0 uint8_t autoscale lambdaProtectionTimeout;Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed;"s", 0.1, 0, 0, 10, 1 - uint8_t unused748 + uint8_t autoscale lambdaProtectionRestoreRpm;;"RPM", 100, 0, 0, 25000, 0 pin_output_mode_e acRelayPinMode; output_pin_e acRelayPin; @@ -1129,7 +1129,10 @@ int16_t tps2Max;;"ADC", 1, 0, 0, 1023, 0 bit can2OpenBLT; Allow OpenBLT on Secondary CAN bit injectorFlowAsMassFlow,"mass flow","volumetric flow";Select whether to configure injector flow in volumetric flow (defualt, cc/min) or mass flow (g/s). uint8_t autoscale benchTestOffTime;Time between bench test pulses;"ms", 5, 0, 0, 2000, 1 - uint8_t[2] unused1445 + + uint8_t autoscale lambdaProtectionRestoreTps;;"%", 1, 0, 0, 100, 0 + uint8_t autoscale lambdaProtectionRestoreLoad;;"%", 10, 0, 0, 1000, 0 + pin_input_mode_e launchActivatePinMode; Gpio can2TxPin;set_can2_tx_pin X Gpio can2RxPin;set_can2_rx_pin X diff --git a/firmware/tunerstudio/generated/fome.ini b/firmware/tunerstudio/generated/fome.ini index 8dde8443bb..a757473355 100644 --- a/firmware/tunerstudio/generated/fome.ini +++ b/firmware/tunerstudio/generated/fome.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757" + signature = "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "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" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5208,7 +5212,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5229,6 +5232,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5434,15 +5439,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5766,6 +5762,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7128,11 +7139,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_48way.ini b/firmware/tunerstudio/generated/fome_48way.ini index 9a08520929..49fad19396 100644 --- a/firmware/tunerstudio/generated/fome_48way.ini +++ b/firmware/tunerstudio/generated/fome_48way.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.48way.2438350378" + signature = "rusEFI (FOME) master.2023.07.09.48way.3812152439" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.48way.2438350378" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.48way.3812152439" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",41="Boost Controller Output (C7)",68="Fan Relay (E2)",69="Fuel Relay (E3)",65="HC1 Output (D15)",64="HC2 Output (D14)",40="Idle1 Output (C6)",62="Ignition 1 Output (D12)",63="Ignition 2 Output (D13)",33="Ignition 3 Output (B15)",32="Ignition 4 Output (B14)",58="Ignition 5 Output (D8)",59="Ignition 6 Output (D9)",61="Ignition 7 Output (D11)",60="Ignition 8 Output (D10)",81="Injector 1 Output (E15)",80="Injector 2 Output (E14)",79="Injector 3 Output (E13)",78="Injector 4 Output (E12)",77="Injector 5 Output (E11)",76="Injector 6 Output (E10)",75="Injector 7 Output (E9)",74="Injector 8 Output (E8)",71="Tachometer (E5)" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5208,7 +5212,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5229,6 +5232,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5434,15 +5439,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5766,6 +5762,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7128,11 +7139,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_alphax-2chan.ini b/firmware/tunerstudio/generated/fome_alphax-2chan.ini index 36f5bb74db..d8d5b3d63f 100644 --- a/firmware/tunerstudio/generated/fome_alphax-2chan.ini +++ b/firmware/tunerstudio/generated/fome_alphax-2chan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.alphax-2chan.4040411479" + signature = "rusEFI (FOME) master.2023.07.09.alphax-2chan.2193447690" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.alphax-2chan.4040411479" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.alphax-2chan.2193447690" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",40="A3 - Fuel Pump",41="A4 - Tachometer",47="A6 - Ignition A",71="A7 - Ignition B",105="A8 - Injector A",106="B8 - Injector B",42="C1 - Fan Relay",63="C8 - Idle" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5204,7 +5208,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5225,6 +5228,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5430,15 +5435,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5762,6 +5758,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7113,11 +7124,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_alphax-4chan.ini b/firmware/tunerstudio/generated/fome_alphax-4chan.ini index ca8ec3c75f..f1c6125d02 100644 --- a/firmware/tunerstudio/generated/fome_alphax-4chan.ini +++ b/firmware/tunerstudio/generated/fome_alphax-4chan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.alphax-4chan.2048641846" + signature = "rusEFI (FOME) master.2023.07.09.alphax-4chan.141908331" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.alphax-4chan.2048641846" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.alphax-4chan.141908331" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",10="A3 - Fuel Pump",104="A4 - Tachometer",47="A6 - Ignition 1",71="A7 - Ignition 2",105="A8 - Injector 1",106="B8 - Injector 2",100="C1 - Fan Relay",63="C8 - Idle",61="D1 - Injector 3",41="D2 - Out Boost",70="D6 - Ignition 3",69="D7 - Ignition 4",60="E1 - Injector 4",109="E2 - Out NOS",43="F1 - Idle2",65="F2 - VVT#1",62="F4 - VVT#2",110="F5 - MAIN" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_alphax-8chan.ini b/firmware/tunerstudio/generated/fome_alphax-8chan.ini index f25bfcd8be..a3e61b0d08 100644 --- a/firmware/tunerstudio/generated/fome_alphax-8chan.ini +++ b/firmware/tunerstudio/generated/fome_alphax-8chan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.alphax-8chan.44092879" + signature = "rusEFI (FOME) master.2023.07.09.alphax-8chan.1892573074" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.alphax-8chan.44092879" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.alphax-8chan.1892573074" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",69="10A - Ignition 4",53="10D - LS 7",70="11A - Ignition 3",11="11D - LS 8",71="12A - Ignition 2",111="12D - NOS",47="13A - Ignition 1",41="13D - Boost",72="18C - Ignition 8",27="19C - Ignition 7",60="1A - Injector 4",26="20C - Ignition 6",68="21C - Ignition 5",96="26C - Injector 8",95="27C - Injector 7",94="28C - Injector 6",59="29C - Injector 5",61="2A - Injector 3",106="3A - Injector 2",105="4A - Injector 1",110="8B - Main Relay LS",10="8D - Fuel Pump",100="9D - Fan Relay" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_atlas.ini b/firmware/tunerstudio/generated/fome_atlas.ini index 4d1e82546c..a8712fd748 100644 --- a/firmware/tunerstudio/generated/fome_atlas.ini +++ b/firmware/tunerstudio/generated/fome_atlas.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.atlas.3376823223" + signature = "rusEFI (FOME) master.2023.07.09.atlas.3140004330" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.atlas.3376823223" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.atlas.3140004330" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "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" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5206,7 +5210,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5227,6 +5230,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5432,15 +5437,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5764,6 +5760,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7118,11 +7129,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_core8.ini b/firmware/tunerstudio/generated/fome_core8.ini index d67f387787..ba1323cb6b 100644 --- a/firmware/tunerstudio/generated/fome_core8.ini +++ b/firmware/tunerstudio/generated/fome_core8.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.core8.3987456806" + signature = "rusEFI (FOME) master.2023.07.09.core8.2680508795" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.core8.3987456806" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.core8.2680508795" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",26="DBW Control (B8)",27="DBW Direction (B9)",25="DBW Disable (B7)",81="High Side 1 (E15)",76="High Side 10 (E10)",75="High Side 11 (E9)",74="High Side 12 (E8)",80="High Side 2 (E14)",79="High Side 3 (E13)",78="High Side 4 (E12)",77="High Side 5 (E11)",97="High Side 6 (F15)",98="High Side 7 (G0)",99="High Side 8 (G1)",73="High Side 9 (E7)",32="Low Side 1 (B14 v2.1 ONLY)",95="Low Side 1 (F13)",65="Low Side 10 (D15)",100="Low Side 11 (G2)",101="Low Side 12 (G3)",102="Low Side 13 (G4)",103="Low Side 14 (G5)",104="Low Side 15 (G6)",105="Low Side 16 (G7)",106="Low Side 17 (G8)",40="Low Side 18 (C6)",41="Low Side 19 (C7)",33="Low Side 2 (B15 v2.1 ONLY)",96="Low Side 2 (F14)",10="Low Side 20 (A8)",55="Low Side 21 (D5)",54="Low Side 22 (D4)",53="Low Side 23 (D3)",17="Low Side 24 (A15)",58="Low Side 3 (D8)",59="Low Side 4 (D9)",60="Low Side 5 (D10)",61="Low Side 6 (D11)",62="Low Side 7 (D12)",63="Low Side 8 (D13)",64="Low Side 9 (D14)",90="StepEr Control (F8)",89="StepEr Direction (F7)",91="StepEr Disable (F9)" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5208,7 +5212,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5229,6 +5232,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5434,15 +5439,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5766,6 +5762,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7128,11 +7139,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_f407-discovery.ini b/firmware/tunerstudio/generated/fome_f407-discovery.ini index 8dde8443bb..a757473355 100644 --- a/firmware/tunerstudio/generated/fome_f407-discovery.ini +++ b/firmware/tunerstudio/generated/fome_f407-discovery.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757" + signature = "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "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" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5208,7 +5212,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5229,6 +5232,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5434,15 +5439,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5766,6 +5762,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7128,11 +7139,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_f429-discovery.ini b/firmware/tunerstudio/generated/fome_f429-discovery.ini index 95aae539ee..9c6c0b4763 100644 --- a/firmware/tunerstudio/generated/fome_f429-discovery.ini +++ b/firmware/tunerstudio/generated/fome_f429-discovery.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.f429-discovery.3582774928" + signature = "rusEFI (FOME) master.2023.07.09.f429-discovery.2816629965" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.f429-discovery.3582774928" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.f429-discovery.2816629965" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "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" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5206,7 +5210,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5227,6 +5230,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5432,15 +5437,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5764,6 +5760,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7126,11 +7137,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_frankenso_na6.ini b/firmware/tunerstudio/generated/fome_frankenso_na6.ini index b0b8b54f07..208da11a46 100644 --- a/firmware/tunerstudio/generated/fome_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/fome_frankenso_na6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.frankenso_na6.4158533210" + signature = "rusEFI (FOME) master.2023.07.09.frankenso_na6.2242952199" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.frankenso_na6.4158533210" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.frankenso_na6.2242952199" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",43="Coil 1F",80="Coil 1G",41="Coil 1H",76="Coil 1I",74="Coil 1L",78="Coil 1M",58="Coil 1O",59="Coil 1P",47="Injector 2M",57="Injector 2N",71="Injector 2O",72="Injector 2P",69="Injector 3S",70="Injector 3T",53="Injector 3U",68="Injector 3V",27="Injector 3W",55="Injector 3X",26="Injector 3Y",25="Injector 3Z" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5206,7 +5210,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5227,6 +5230,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5432,15 +5437,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5764,6 +5760,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7126,11 +7137,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_harley81.ini b/firmware/tunerstudio/generated/fome_harley81.ini index b15fd85b82..3b4c3f6e59 100644 --- a/firmware/tunerstudio/generated/fome_harley81.ini +++ b/firmware/tunerstudio/generated/fome_harley81.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.harley81.1545205482" + signature = "rusEFI (FOME) master.2023.07.09.harley81.779576503" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.harley81.1545205482" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.harley81.779576503" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",65="1 Right Oil Cooling",47="24 Front Coil",52="25 Front ACR",64="4 Left Oil Fan",71="43 Rear Coil",105="6 Front Injector",112="61 Reverse Gear",103="63 Cooling Pump",106="7 Rear Injector",109="8 Rear ACR",101="auxMain",41="auxWastegate" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7114,11 +7125,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini b/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini index 7670313ae5..c0aaf778c4 100644 --- a/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini +++ b/firmware/tunerstudio/generated/fome_hellen-gm-e67.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen-gm-e67.3169181763" + signature = "rusEFI (FOME) master.2023.07.09.hellen-gm-e67.3465245214" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen-gm-e67.3169181763" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen-gm-e67.3465245214" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",100="C1-12 Check Engine",52="C1-13 - Fuel Pump",65="C1-25 Tach",109="C1-26 - Starter Relay",64="C1-39 - VSS Output",112="C1-40 - MAIN",102="C1-56 - Starter Enable",47="C2-1 - IGN 1",61="C2-16 INJ 3",72="C2-17 - IGN 8",69="C2-18 - IGN 4",106="C2-32 INJ 2",27="C2-33 - IGN 7",68="C2-34 - IGN 5",96="C2-48 INJ 8",59="C2-49 INJ 5",94="C2-52 INJ 6",71="C2-53 - IGN 2",26="C2-54 - IGN 6",70="C2-55 - IGN 3",60="C2-70 INJ 4",95="C2-71 INJ 7",105="C2-72 INJ 1",111="C3-16 - Coolant Pump",10="C3-49 - Fan Relay",63="C3-7 - Alternator Enable",43="J4_4 Wastegate Solenoid",53="J4_5 Error Light",46="J7_1 AUX",45="J7_2 AUX",44="J7_3 AUX",17="J7_4 AUX",55="J7_5 AUX",56="J7_6 AUX",66="J7_7 AUX",67="J7_8 AUX" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen-honda-k.ini b/firmware/tunerstudio/generated/fome_hellen-honda-k.ini index 2745ae29c4..356562f5ae 100644 --- a/firmware/tunerstudio/generated/fome_hellen-honda-k.ini +++ b/firmware/tunerstudio/generated/fome_hellen-honda-k.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen-honda-k.661925378" + signature = "rusEFI (FOME) master.2023.07.09.hellen-honda-k.1427815519" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen-honda-k.661925378" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen-honda-k.1427815519" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",94="A12 Idle Air Control",69="A27 - IGN4",70="A28 - IGN3",71="A29 - IGN2",47="A30 - IGN1",60="B2 - Injector 4",61="B3 - Injector 3",106="B4 - Injector 2",105="B5 - Injector 1",10="B6 Radiator Relay",104="E1 Fuel Relay",59="E18 - AC Relay",130="E26 Tachometer",101="E31 Check Engine",112="E7 Main Relay Control" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7114,11 +7125,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen-nb1.ini b/firmware/tunerstudio/generated/fome_hellen-nb1.ini index 3670b4c4de..63468b6e73 100644 --- a/firmware/tunerstudio/generated/fome_hellen-nb1.ini +++ b/firmware/tunerstudio/generated/fome_hellen-nb1.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen-nb1.581689132" + signature = "rusEFI (FOME) master.2023.07.09.hellen-nb1.1355107697" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen-nb1.581689132" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen-nb1.1355107697" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",102="1E - Check Engine Light",11="1I AC Fan Relay",65="1O - ALTERN",110="1Q - Aternator Warning Lamp",62="1R - ECF",109="1S - AC Relay",53="1U - O2H",63="2K - TACH",100="2M US / 2P EUROPE - FPUMP",64="2Q - IDLE",35="3D - MAP",47="3G - IGN_1 (1&4)",71="3H - IGN_2 (2&3)",96="3Q - VICS",94="3T/4D - BOOST OUT",111="3V - O2H2",105="3W - INJ_1",106="3X - INJ_2",61="3Y - INJ_3",60="3Z - INJ_4",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen121nissan.ini b/firmware/tunerstudio/generated/fome_hellen121nissan.ini index 1f3cf55ddc..d223815854 100644 --- a/firmware/tunerstudio/generated/fome_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/fome_hellen121nissan.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen121nissan.1383101286" + signature = "rusEFI (FOME) master.2023.07.09.hellen121nissan.538894651" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen121nissan.1383101286" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen121nissan.538894651" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",95="10 - VTC Left",103="104 ETB Relay",96="11 - VTC Right",112="111 Main Relay",62="113 Fuel Pump Relay",59="21 - INJ_5",61="22 - INJ_3",105="23 - INJ_1",53="29 - VIAS",94="40 - INJ_6",60="41 - INJ_4",106="42 - INJ_2",68="60 - Coil 5",70="61 - Coil 3",47="62 - Coil 1",26="79 - Coil 6",69="80 - Coil 4",71="81 - Coil 2",40="Aux Low 1",41="Aux Low 2",42="Aux Low 3" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7114,11 +7125,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen121vag.ini b/firmware/tunerstudio/generated/fome_hellen121vag.ini index 6925bb0f8a..e9bedaabd6 100644 --- a/firmware/tunerstudio/generated/fome_hellen121vag.ini +++ b/firmware/tunerstudio/generated/fome_hellen121vag.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen121vag.4268981429" + signature = "rusEFI (FOME) master.2023.07.09.hellen121vag.2350771944" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen121vag.4268981429" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen121vag.2350771944" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",35="101 - MAP2",138="102 - IGN_1",68="103 - IGN_5",11="104 Wastegate",64="105 - IDLE rev A,B",103="105 - IDLE rev C+",135="110 - IGN_6",70="111 - IGN_3",94="112 INJ 6",59="113 INJ 5",101="115 - VVT1_2",40="117 ETB_OUT+",41="118 ETB_OUT-",42="120 - VVT2 B2",43="18 - VVT2 B1",95="19 - INJ 7",130="22 - VVT1 1",96="24 - INJ 8",63="37 - TACH",102="47 - CEL",128="65 - Fuel Pump",71="7 - IGN_2",136="8 - IGN_7",60="88 - INJ_4",106="89 - INJ_2",69="94 - IGN_4",137="95 - IGN_8",105="96 - INJ_1",61="97 - INJ_3",132="Main Relay" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen128mercedes.ini b/firmware/tunerstudio/generated/fome_hellen128mercedes.ini index 02f1fd2f57..1461e4503d 100644 --- a/firmware/tunerstudio/generated/fome_hellen128mercedes.ini +++ b/firmware/tunerstudio/generated/fome_hellen128mercedes.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen128.1428074295" + signature = "rusEFI (FOME) master.2023.07.09.hellen128.661667178" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen128.1428074295" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen128.661667178" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",62="A6 - Fan Control",128="C21 - Evap Purge Control",65="C29 - Fuel Pump",105="E1 - LS1",59="E13 - INJ 4",94="E14 - INJ 2",106="E2- LS2",95="E25 - INJ 1",96="E26 - INJ 3",61="E3 - LS3",60="E4 - LS4/VVT",137="F11 - IGN 8",69="F13 - IGN 4",71="F16 - IGN 2",135="F17 - IGN 6",138="F20 - IGN 1",68="F4 - IGN 5",70="F6 - IGN 3",136="F9 - IGN 7",10="P18_OUT_PP2",131="P19_OUT_LOW11",43="P33_PWM5",129="P34_OUT_LOW8",130="P35_OUT_LOW9" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7114,11 +7125,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen154hyundai.ini b/firmware/tunerstudio/generated/fome_hellen154hyundai.ini index ee3a5ed60d..851a6bfbf0 100644 --- a/firmware/tunerstudio/generated/fome_hellen154hyundai.ini +++ b/firmware/tunerstudio/generated/fome_hellen154hyundai.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen154hyundai.3253309398" + signature = "rusEFI (FOME) master.2023.07.09.hellen154hyundai.3011976587" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen154hyundai.3253309398" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen154hyundai.3011976587" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",53="Aux P66",11="Aux P67",103="Aux P68",47="Coil 1",71="Coil 2",70="Coil 3",69="Coil 4",102="Fan Relay HI",101="Fan Relay Low",111="Fuel Pump K70",105="INJ_1 k25",106="INJ_2 k26",61="INJ_3 k27",60="INJ_4 k28",95="K47 BK1 Wastegate Solenoid",96="K48 LS1",110="K87 AC Relay",62="MIL",112="Main Relay K64",65="Tacho",59="VVT1",94="VVT2" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7114,11 +7125,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen72.ini b/firmware/tunerstudio/generated/fome_hellen72.ini index 668faf749e..dc17181ae7 100644 --- a/firmware/tunerstudio/generated/fome_hellen72.ini +++ b/firmware/tunerstudio/generated/fome_hellen72.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen72.607672103" + signature = "rusEFI (FOME) master.2023.07.09.hellen72.1448527226" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen72.607672103" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen72.1448527226" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",105="2A - INJ_1",62="2B - ECF (PWM8)",59="2C - AC Fan / INJ_5",106="2D - INJ_2",61="2G - INJ_3",60="2J - INJ_4",129="2K - AC (O4)",100="2M - FPUMP (O9)",94="2N - VTSC / INJ_6",70="2O - IGN_3",64="2Q - IDLE (PWM5)",102="2R - CE (O11)",95="3C - Purge Solenoid / INJ_7",96="3D - EGR Solenoid / INJ_8",101="3E - CANIST (O10)",138="3F - IGN_1 (1&4)",132="3H - MAIN (O1)",71="3I - IGN_2 (2&3)",128="3J - O2H (O3)",136="3L - IGN_7 / AFR",65="3M - ALTERN (PWM6)",69="3N - IGN_4",63="3O - TACH (PWM7)",11="3P - O2H2 (O7)",127="3U - AWARN (O2)",68="3Z - IGN_5 / GNDA",135="4K - IGN_6 / +5V_MAP",130="4R - VVT (O5)",137="4U - MAP2/Ign8 (A10)",43="5E - SOLENOID OUTPUT",41="ETB +",42="ETB -",40="ETB EN" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen81.ini b/firmware/tunerstudio/generated/fome_hellen81.ini index a8d15e90f5..55b0f94bbc 100644 --- a/firmware/tunerstudio/generated/fome_hellen81.ini +++ b/firmware/tunerstudio/generated/fome_hellen81.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen81.2293378469" + signature = "rusEFI (FOME) master.2023.07.09.hellen81.4208771064" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen81.2293378469" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen81.4208771064" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",71="1 - IGN_2",65="10 - OUT_FUEL",127="11 - OUT_HIGH",132="14 - OUT_MAIN",70="2 - IGN_3",72="21 - IGN_8",27="22 - IGN_7",26="23 - IGN_6",68="24 - IGN_5",94="25 - INJ_6",105="27 - INJ_1",11="28 - OUT_O2H2",59="30 - INJ_5",102="31 - OUT_CE",69="4 - IGN_4",101="46 - OUT_CANIST",60="47 - INJ_4",128="48 - OUT_O2H",131="49 - OUT_HEATER",138="5 - IGN_1",130="50 - OUT_STARTER",106="6 - INJ_2",63="60 - OUT_IO",43="64 - OUT_COIL_B2",42="65 - OUT_COIL_B1",41="66 - OUT_COIL_A2",40="67 - OUT_COIL_A1",62="68 - OUT_ECF",129="69 - OUT_AC",61="7 - INJ_3",100="70 - OUT_PUMP",95="72 - INJ_7",96="73 - INJ_8",64="8 - OUT_TACH" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5205,7 +5209,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5226,6 +5229,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5431,15 +5436,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5763,6 +5759,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7115,11 +7126,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellen88bmw.ini b/firmware/tunerstudio/generated/fome_hellen88bmw.ini index fee99d82b2..28a9d1dbfc 100644 --- a/firmware/tunerstudio/generated/fome_hellen88bmw.ini +++ b/firmware/tunerstudio/generated/fome_hellen88bmw.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellen88bmw.2391423638" + signature = "rusEFI (FOME) master.2023.07.09.hellen88bmw.4242843851" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellen88bmw.2391423638" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellen88bmw.4242843851" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",112="1 - OUT_PUMP",62="2 - IdleC",69="23 - Coil 4",26="24 - Coil 6",68="25 - Coil 5",53="27 - MAIN",43="29 - Idle",59="3 - INJ_5",61="31 - INJ_3",106="32 - INJ_2",105="33 - INJ_1",96="35 - INJ_8",94="4 - INJ_6",65="47 - Tach",60="5 - INJ_4",47="50 - Coil 1",71="51 - Coil 2",70="52 - Coil 3",95="7 - INJ_7/VVT" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7114,11 +7125,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellenNA6.ini b/firmware/tunerstudio/generated/fome_hellenNA6.ini index 2fbe9c7c26..6aa0a2ff27 100644 --- a/firmware/tunerstudio/generated/fome_hellenNA6.ini +++ b/firmware/tunerstudio/generated/fome_hellenNA6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellenNA6.3325857559" + signature = "rusEFI (FOME) master.2023.07.09.hellenNA6.3025280330" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellenNA6.3325857559" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellenNA6.3025280330" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",107="1E - Check Engine Light",138="1G - Ignition 1 & 4 (rev C)",47="1G - Ignition 1 & 4 (rev D)",71="1H - Ignition 2 & 3",129="1J - AC Relay",96="2I - VVT",94="2J - Boost Control",59="3S - A/C Fan 94-95",105="3U - Injector 1",106="3V - Injector 2",64="3W - IDLE",61="3Y - Injector 3",60="3Z - Injector 4",41="ETB +",42="ETB -",40="ETB EN",100="Fuel Pump Relay",62="Radiator Fan",130="Tachometer (rev C)",110="Tachometer (rev D)" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_hellenNA8_96.ini b/firmware/tunerstudio/generated/fome_hellenNA8_96.ini index 6853d632b5..47640c0467 100644 --- a/firmware/tunerstudio/generated/fome_hellenNA8_96.ini +++ b/firmware/tunerstudio/generated/fome_hellenNA8_96.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.hellenNA8_96.2056845479" + signature = "rusEFI (FOME) master.2023.07.09.hellenNA8_96.150366970" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.hellenNA8_96.2056845479" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.hellenNA8_96.150366970" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",62="1A - ECF",11="1B - AC Fan Relay",102="1E - Check Engine Light",109="1G - AC Relay",100="1U - Fuel Pump",63="3L - TACH",47="3N - IGN_1 (1&4)",64="3Q - IDLE",71="3R - IGN_2 (2&3)",105="3U - INJ_1",106="3V - INJ_2",61="3W - INJ_3",60="3X - INJ_4",111="3Z - O2H2",94="4D - BOOST OUT",59="4E - VVT",41="ETB +",42="ETB -",40="ETB EN",52="P18/P22" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5207,7 +5211,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5228,6 +5231,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5433,15 +5438,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5765,6 +5761,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7117,11 +7128,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_mre_f4.ini b/firmware/tunerstudio/generated/fome_mre_f4.ini index b8bcc777c5..a0f90512a2 100644 --- a/firmware/tunerstudio/generated/fome_mre_f4.ini +++ b/firmware/tunerstudio/generated/fome_mre_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.mre_f4.839035688" + signature = "rusEFI (FOME) master.2023.07.09.mre_f4.1080834421" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.mre_f4.839035688" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.mre_f4.1080834421" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4372,7 +4375,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4682,9 +4684,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4693,9 +4692,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4886,6 +4885,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5209,7 +5213,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5230,6 +5233,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5435,15 +5440,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5767,6 +5763,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7116,11 +7127,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_mre_f7.ini b/firmware/tunerstudio/generated/fome_mre_f7.ini index ef8f7627df..6bc0252815 100644 --- a/firmware/tunerstudio/generated/fome_mre_f7.ini +++ b/firmware/tunerstudio/generated/fome_mre_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.mre_f7.839035688" + signature = "rusEFI (FOME) master.2023.07.09.mre_f7.1080834421" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.mre_f7.839035688" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.mre_f7.1080834421" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",53="10 - Ignition 2",52="11 - Ignition 3",51="12 - Ignition 4",56="13 - GP Out 6",57="14 - GP Out 5",6="28 - AN volt 10, Aux Reuse",172="3 - Lowside 2",38="32 - AN volt 6, Aux Reuse",190="33 - GP Out 3",189="34 - GP Out 2",188="35 - GP Out 1",18="36 - AN volt 8, Aux Reuse",168="37 - Injector 1",169="38 - Injector 2",19="40 - AN volt 9, Aux Reuse",170="41 - Injector 3",171="42 - Injector 4",191="43 - GP Out 4",173="7 - Lowside 1",54="9 - Ignition 1",72="AUX J10 PE6",71="AUX J11 PE5",29="AUX J12",28="AUX J13",25="AUX J18 PB7",17="AUX J2 PA15",26="AUX J2 PB8",27="AUX J2 PB9",46="AUX J2 PC12",66="AUX J6" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4372,7 +4375,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4682,9 +4684,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4693,9 +4692,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4886,6 +4885,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5209,7 +5213,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5230,6 +5233,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5435,15 +5440,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5767,6 +5763,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7116,11 +7127,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_prometheus_405.ini b/firmware/tunerstudio/generated/fome_prometheus_405.ini index bfed67a9e7..9f5a65e130 100644 --- a/firmware/tunerstudio/generated/fome_prometheus_405.ini +++ b/firmware/tunerstudio/generated/fome_prometheus_405.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.prometheus_405.3843556096" + signature = "rusEFI (FOME) master.2023.07.09.prometheus_405.2541130077" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.prometheus_405.3843556096" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.prometheus_405.2541130077" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "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" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5201,7 +5205,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5222,6 +5225,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5427,15 +5432,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5759,6 +5755,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7121,11 +7132,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_prometheus_469.ini b/firmware/tunerstudio/generated/fome_prometheus_469.ini index caf5a8d291..20dc2d13f5 100644 --- a/firmware/tunerstudio/generated/fome_prometheus_469.ini +++ b/firmware/tunerstudio/generated/fome_prometheus_469.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.prometheus_469.3843556096" + signature = "rusEFI (FOME) master.2023.07.09.prometheus_469.2541130077" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.prometheus_469.3843556096" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.prometheus_469.2541130077" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "MC33972_1", "MC33972_2", "MC33972_3", "MC33972_4", "MC33972_5", "MC33972_6", "MC33972_7", "MC33972_8", "MC33972_9", "MC33972_10", "MC33972_11", "MC33972_12", "MC33972_13", "MC33972_14", "MC33972_15", "MC33972_16", "MC33972_17", "MC33972_18", "MC33972_19", "MC33972_20", "MC33972_21", "MC33972_22", "TLE8888_1", "TLE8888_2", "TLE8888_3", "TLE8888_4", "TLE8888_5", "TLE8888_6", "TLE8888_7", "TLE8888_8", "TLE8888_9", "TLE8888_10", "TLE8888_11", "TLE8888_12", "TLE8888_13", "TLE8888_14", "TLE8888_15", "TLE8888_16", "TLE8888_17", "TLE8888_18", "TLE8888_19", "TLE8888_20", "TLE8888_21", "TLE8888_22", "TLE8888_23", "TLE8888_24", "TLE8888_25", "TLE8888_26", "TLE8888_27", "TLE8888_28", "INVALID", "INVALID", "INVALID", "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" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5201,7 +5205,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5222,6 +5225,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5427,15 +5432,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5759,6 +5755,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7121,11 +7132,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_proteus_f4.ini b/firmware/tunerstudio/generated/fome_proteus_f4.ini index b89a16795d..0999dd16d5 100644 --- a/firmware/tunerstudio/generated/fome_proteus_f4.ini +++ b/firmware/tunerstudio/generated/fome_proteus_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.proteus_f4.3054652317" + signature = "rusEFI (FOME) master.2023.07.09.proteus_f4.3296516544" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.proteus_f4.3054652317" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.proteus_f4.3296516544" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 26876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5203,7 +5207,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5224,6 +5227,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5430,15 +5435,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5762,6 +5758,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7108,11 +7119,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_proteus_f7.ini b/firmware/tunerstudio/generated/fome_proteus_f7.ini index 8b27c83c51..a1a20e7f6b 100644 --- a/firmware/tunerstudio/generated/fome_proteus_f7.ini +++ b/firmware/tunerstudio/generated/fome_proteus_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.proteus_f7.3054652317" + signature = "rusEFI (FOME) master.2023.07.09.proteus_f7.3296516544" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.proteus_f7.3054652317" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.proteus_f7.3296516544" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 26876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5203,7 +5207,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5224,6 +5227,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5430,15 +5435,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5762,6 +5758,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7108,11 +7119,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_proteus_h7.ini b/firmware/tunerstudio/generated/fome_proteus_h7.ini index 9c00af5eb0..17e11b8222 100644 --- a/firmware/tunerstudio/generated/fome_proteus_h7.ini +++ b/firmware/tunerstudio/generated/fome_proteus_h7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.proteus_h7.3054652317" + signature = "rusEFI (FOME) master.2023.07.09.proteus_h7.3296516544" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.proteus_h7.3054652317" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.proteus_h7.3296516544" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",11="Highside 1",10="Highside 2",65="Highside 3",64="Highside 4",54="Ign 1",102="Ign 10",101="Ign 11",100="Ign 12",53="Ign 2",43="Ign 3",42="Ign 4",41="Ign 5",106="Ign 6",105="Ign 7",104="Ign 8",103="Ign 9",57="Lowside 1",24="Lowside 10",25="Lowside 11",26="Lowside 12",27="Lowside 13",66="Lowside 14",67="Lowside 15",68="Lowside 16",107="Lowside 2",108="Lowside 3",109="Lowside 4",110="Lowside 5",111="Lowside 6",112="Lowside 7",22="Lowside 8",23="Lowside 9",60="STM32 PD10",61="STM32 PD11",62="STM32 PD12",63="STM32 PD13",58="STM32 PD8",59="STM32 PD9" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 26876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5203,7 +5207,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5224,6 +5227,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5430,15 +5435,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5762,6 +5758,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7108,11 +7119,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini index 447fed718a..7a9cc323ba 100644 --- a/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/fome_subaru_eg33_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.subaru_eg33_f7.1353177119" + signature = "rusEFI (FOME) master.2023.07.09.subaru_eg33_f7.583617090" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.subaru_eg33_f7.1353177119" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.subaru_eg33_f7.583617090" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",186="A01 - Injector 5",194="A12 - Injector 6",159="AUX0_14 - AUX0 OD output 1",158="AUX0_17 - AUX0 OD output 0",160="B08 - AC clutch",149="C14 - FPump modulator",153="C15 - AUX1 OD out",148="C16 - Tacho out",157="D01 - IDLE close",156="D02 - IDLE open",147="D03 - FAN 2 relay",121="D05 - Self Shutdown",155="D06 - Absorber purge valve",188="D07 - Ignition Cyl 4",198="D08 - Ignition Cyl 2",189="D09 - Ignition Cyl 3",199="D10 - Ignition Cyl 1",185="D11 - Injector 3",192="D12 - Injector 2",184="D13 - Injector 1",197="D16 - Ignition Cyl 6",146="D17 - FAN 1 relay",154="D18 - Auxillary air valve",152="D19 - Check Engine indicator",161="D20 - Inertia-Resonance Super-Charger control",191="D21 - Ignition Cyl 5",151="D22 - EGR control",150="D23 - Fuel Pump relay",193="D26 - Injector 4" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5205,7 +5209,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5226,6 +5229,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5431,15 +5436,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5763,6 +5759,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7125,11 +7136,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/generated/fome_tdg-pdm8.ini b/firmware/tunerstudio/generated/fome_tdg-pdm8.ini index 8bcbc0b1d2..680abbe632 100644 --- a/firmware/tunerstudio/generated/fome_tdg-pdm8.ini +++ b/firmware/tunerstudio/generated/fome_tdg-pdm8.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI (FOME) master.2023.06.25.tdg-pdm8.1596121778" + signature = "rusEFI (FOME) master.2023.07.09.tdg-pdm8.759984367" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmware version for title bar. - signature= "rusEFI (FOME) master.2023.06.25.tdg-pdm8.1596121778" ; signature is expected to be 7 or more characters. + signature= "rusEFI (FOME) master.2023.07.09.tdg-pdm8.759984367" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -319,7 +319,7 @@ triggerSimulatorPins1 = bits, U16, 636, [0:7], "NONE", "INVALID", "PA0", "PA1", triggerSimulatorPins2 = bits, U16, 638, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" fordInjectorSmallPulseSlope = scalar, U16, 640, "g/s", 0.001, 0, 0, 65, 3 lambdaProtectionMinRpm = scalar, U08, 642, "RPM", 100.0, 0, 0, 25000, 0 -lambdaProtectionMinLoad = scalar, U08, 643, "", 10.0, 0, 0, 1000, 0 +lambdaProtectionMinLoad = scalar, U08, 643, "%", 10.0, 0, 0, 1000, 0 is_enabled_spi_1 = bits, U32, 644, [0:0], "false", "true" is_enabled_spi_2 = bits, U32, 644, [1:1], "false", "true" is_enabled_spi_3 = bits, U32, 644, [2:2], "false", "true" @@ -391,9 +391,9 @@ tps1SecondaryMin = scalar, U16, 740, "ADC", 1, 0, 0, 1000, 0 tps1SecondaryMax = scalar, U16, 742, "ADC", 1, 0, 0, 1000, 0 antiLagRpmTreshold = scalar, S16, 744, "rpm", 1, 0, 0, 20000, 0 startCrankingDuration = scalar, U16, 746, "Seconds", 1, 0, 0, 30, 0 -lambdaProtectionMinTps = scalar, U08, 748, "", 1, 0, 0, 100, 0 +lambdaProtectionMinTps = scalar, U08, 748, "%", 1, 0, 0, 100, 0 lambdaProtectionTimeout = scalar, U08, 749, "s", 0.1, 0, 0, 10, 1 -unused748 = scalar, U08, 750, "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreRpm = scalar, U08, 750, "RPM", 100.0, 0, 0, 25000, 0 acRelayPinMode = bits, U08, 751, [0:1], "default", "default inverted", "open collector", "open collector inverted" acRelayPin = bits, U16, 752, [0:7], 0="NONE",257="Out 1",258="Out 2",259="Out 3",260="Out 4",261="Out 5",262="Out 6",263="Out 7",264="Out 8" mafSensorType = bits, S08, 754, [0:1], "v0", "v1", "v2", "v3" @@ -707,7 +707,8 @@ canOpenBLT = bits, U32, 1436, [1:1], "false", "true" can2OpenBLT = bits, U32, 1436, [2:2], "false", "true" injectorFlowAsMassFlow = bits, U32, 1436, [3:3], "volumetric flow", "mass flow" benchTestOffTime = scalar, U08, 1440, "ms", 5.0, 0, 0, 2000, 1 -unused1445 = array, U08, 1441, [2], "", 1, 0, 0, 100, 0 +lambdaProtectionRestoreTps = scalar, U08, 1441, "%", 1, 0, 0, 100, 0 +lambdaProtectionRestoreLoad = scalar, U08, 1442, "%", 10.0, 0, 0, 1000, 0 launchActivatePinMode = bits, U08, 1443, [0:1], "DEFAULT", "PULLUP", "PULLDOWN" can2TxPin = bits, U16, 1444, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" can2RxPin = bits, U16, 1446, [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", "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI6", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15" @@ -2116,7 +2117,7 @@ lambdaMaxDeviationRpmBins = array, U16, 22876, [4], "RPM", 1, 0, 0, 18000, 0 ochGetCommand = "O%2o%2c" ; see TS_OUTPUT_SIZE in console source code - ochBlockSize = 1372 + ochBlockSize = 1376 ; 11.2.3 Full Optimized – High Speed scatteredOchGetCommand = 9 @@ -2176,24 +2177,23 @@ actualLastInjection = scalar, U16, 44, "ms", 0.0033333333333333335, 0 injectorDutyCycle = scalar, U08, 46, "%", 0.5, 0 veValue = scalar, U08, 47, "ratio", 0.5, 0 injectionOffset = scalar, S16, 48, "deg", 1, 0 -injectorLagMs = scalar, U16, 50, "ms", 0.0033333333333333335, 0 -engineMakeCodeNameCrc16 = scalar, U16, 52, "crc16", 1, 0 -wallFuelAmount = scalar, U16, 54, "mg", 0.01, 0 -wallFuelCorrectionValue = scalar, S16, 56, "mg", 0.01, 0 -revolutionCounterSinceStart = scalar, U16, 58, "", 1, 0 -canReadCounter = scalar, U16, 60, "", 1, 0 -tpsAccelFuel = scalar, S16, 62, "ms", 0.0033333333333333335, 0 -ignitionAdvance = scalar, S16, 64, "deg", 0.02, 0 -currentIgnitionMode = scalar, U08, 66, "", 1, 0 -currentInjectionMode = scalar, U08, 67, "", 1, 0 -coilDutyCycle = scalar, U16, 68, "%", 0.01, 0 -etbTarget = scalar, S16, 70, "%", 0.01, 0 -etb1DutyCycle = scalar, S16, 72, "%", 0.01, 0 -fuelTankLevel = scalar, S16, 74, "%", 0.01, 0 -totalFuelConsumption = scalar, U16, 76, "grams", 1, 0 -fuelFlowRate = scalar, U16, 78, "gram/s", 0.005, 0 -TPS2Value = scalar, S16, 80, "%", 0.01, 0 -tuneCrc16 = scalar, U16, 82, "crc16", 1, 0 +engineMakeCodeNameCrc16 = scalar, U16, 50, "crc16", 1, 0 +wallFuelAmount = scalar, U16, 52, "mg", 0.01, 0 +wallFuelCorrectionValue = scalar, S16, 54, "mg", 0.01, 0 +revolutionCounterSinceStart = scalar, U16, 56, "", 1, 0 +canReadCounter = scalar, U16, 58, "", 1, 0 +tpsAccelFuel = scalar, S16, 60, "ms", 0.0033333333333333335, 0 +ignitionAdvance = scalar, S16, 62, "deg", 0.02, 0 +currentIgnitionMode = scalar, U08, 64, "", 1, 0 +currentInjectionMode = scalar, U08, 65, "", 1, 0 +coilDutyCycle = scalar, U16, 66, "%", 0.01, 0 +etbTarget = scalar, S16, 68, "%", 0.01, 0 +etb1DutyCycle = scalar, S16, 70, "%", 0.01, 0 +fuelTankLevel = scalar, S16, 72, "%", 0.01, 0 +totalFuelConsumption = scalar, U16, 74, "grams", 1, 0 +fuelFlowRate = scalar, U16, 76, "gram/s", 0.005, 0 +TPS2Value = scalar, S16, 78, "%", 0.01, 0 +tuneCrc16 = scalar, U16, 80, "crc16", 1, 0 knockLevel = scalar, F32, 84, "Volts", 1, 0 seconds = scalar, U32, 88, "sec", 1, 0 engineMode = scalar, U32, 92, "em", 1, 0 @@ -2648,231 +2648,234 @@ m_knockThreshold = scalar, F32, 896, "", 1, 0 m_knockCount = scalar, U32, 900, "", 1, 0 m_maximumRetard = scalar, F32, 904, "", 1, 0 ; total TS size = 908 -throttleUseWotModel = bits, U32, 908, [0:0] -throttleModelCrossoverAngle = scalar, S16, 912, "%", 0.01, 0 -throttleEstimatedFlow = scalar, F32, 916, "g/s", 1, 0 -; total TS size = 920 -m_requested_pump = scalar, F32, 920, "", 1, 0 -fuel_requested_percent = scalar, F32, 924, "", 1, 0 -fuel_requested_percent_pi = scalar, F32, 928, "", 1, 0 -noValve = bits, U32, 932, [0:0] -angleAboveMin = bits, U32, 932, [1:1] -isHpfpInactive = bits, U32, 932, [2:2] -nextLobe = scalar, F32, 936, "", 1, 0 -di_nextStart = scalar, F32, 940, "v", 1, 0 +m_requested_pump = scalar, F32, 908, "", 1, 0 +fuel_requested_percent = scalar, F32, 912, "", 1, 0 +fuel_requested_percent_pi = scalar, F32, 916, "", 1, 0 +noValve = bits, U32, 920, [0:0] +angleAboveMin = bits, U32, 920, [1:1] +isHpfpInactive = bits, U32, 920, [2:2] +nextLobe = scalar, F32, 924, "", 1, 0 +di_nextStart = scalar, F32, 928, "v", 1, 0 +; total TS size = 932 +m_deadtime = scalar, F32, 932, "ms", 1, 0 +pressureDelta = scalar, F32, 936, "kPa", 1, 0 +pressureRatio = scalar, F32, 940, "", 1, 0 ; total TS size = 944 -m_deadtime = scalar, F32, 944, "", 1, 0 -pressureDelta = scalar, F32, 948, "kPa", 1, 0 -pressureRatio = scalar, F32, 952, "", 1, 0 -; total TS size = 956 -retardThresholdRpm = scalar, S32, 956, "", 1, 0 -combinedConditions = bits, U32, 960, [0:0] -launchActivatePinState = bits, U32, 960, [1:1] -isLaunchCondition = bits, U32, 960, [2:2] -isSwitchActivated = bits, U32, 960, [3:3] -isClutchActivated = bits, U32, 960, [4:4] -isValidInputPin = bits, U32, 960, [5:5] -activateSwitchCondition = bits, U32, 960, [6:6] -rpmCondition = bits, U32, 960, [7:7] -speedCondition = bits, U32, 960, [8:8] -tpsCondition = bits, U32, 960, [9:9] +retardThresholdRpm = scalar, S32, 944, "", 1, 0 +combinedConditions = bits, U32, 948, [0:0] +launchActivatePinState = bits, U32, 948, [1:1] +isLaunchCondition = bits, U32, 948, [2:2] +isSwitchActivated = bits, U32, 948, [3:3] +isClutchActivated = bits, U32, 948, [4:4] +isValidInputPin = bits, U32, 948, [5:5] +activateSwitchCondition = bits, U32, 948, [6:6] +rpmCondition = bits, U32, 948, [7:7] +speedCondition = bits, U32, 948, [8:8] +tpsCondition = bits, U32, 948, [9:9] +; total TS size = 952 +isAntilagCondition = bits, U32, 952, [0:0] +ALSMinRPMCondition = bits, U32, 952, [1:1] +ALSMaxRPMCondition = bits, U32, 952, [2:2] +ALSMinCLTCondition = bits, U32, 952, [3:3] +ALSMaxCLTCondition = bits, U32, 952, [4:4] +ALSMaxThrottleIntentCondition = bits, U32, 952, [5:5] +isALSSwitchActivated = bits, U32, 952, [6:6] +ALSActivatePinState = bits, U32, 952, [7:7] +ALSSwitchCondition = bits, U32, 952, [8:8] +ALSTimerCondition = bits, U32, 952, [9:9] +fuelALSCorrection = scalar, F32, 956, "", 1, 0 +timingALSCorrection = scalar, S16, 960, "deg", 0.01, 0 ; total TS size = 964 -isAntilagCondition = bits, U32, 964, [0:0] -ALSMinRPMCondition = bits, U32, 964, [1:1] -ALSMaxRPMCondition = bits, U32, 964, [2:2] -ALSMinCLTCondition = bits, U32, 964, [3:3] -ALSMaxCLTCondition = bits, U32, 964, [4:4] -ALSMaxThrottleIntentCondition = bits, U32, 964, [5:5] -isALSSwitchActivated = bits, U32, 964, [6:6] -ALSActivatePinState = bits, U32, 964, [7:7] -ALSSwitchCondition = bits, U32, 964, [8:8] -ALSTimerCondition = bits, U32, 964, [9:9] -fuelALSCorrection = scalar, F32, 968, "", 1, 0 -timingALSCorrection = scalar, S16, 972, "deg", 0.01, 0 -; total TS size = 976 -isTpsInvalid = bits, U32, 976, [0:0] -m_shouldResetPid = bits, U32, 976, [1:1] -isBelowClosedLoopThreshold = bits, U32, 976, [2:2] -isNotClosedLoop = bits, U32, 976, [3:3] -isZeroRpm = bits, U32, 976, [4:4] -hasInitBoost = bits, U32, 976, [5:5] -rpmTooLow = bits, U32, 976, [6:6] -tpsTooLow = bits, U32, 976, [7:7] -mapTooLow = bits, U32, 976, [8:8] -luaTargetAdd = scalar, S16, 980, "v", 0.5,0 -boostOutput = scalar, S16, 982, "percent", 0.01,0 -luaTargetMult = scalar, F32, 984, "v", 1,0 -openLoopPart = scalar, F32, 988, "v", 1,0 -luaOpenLoopAdd = scalar, F32, 992, "v", 1,0 -boostControllerClosedLoopPart = scalar, S08, 996, "%", 0.5,0 -boostControlTarget = scalar, S16, 998, "kPa", 0.03333333333333333,0 +isTpsInvalid = bits, U32, 964, [0:0] +m_shouldResetPid = bits, U32, 964, [1:1] +isBelowClosedLoopThreshold = bits, U32, 964, [2:2] +isNotClosedLoop = bits, U32, 964, [3:3] +isZeroRpm = bits, U32, 964, [4:4] +hasInitBoost = bits, U32, 964, [5:5] +rpmTooLow = bits, U32, 964, [6:6] +tpsTooLow = bits, U32, 964, [7:7] +mapTooLow = bits, U32, 964, [8:8] +luaTargetAdd = scalar, S16, 968, "v", 0.5,0 +boostOutput = scalar, S16, 970, "percent", 0.01,0 +luaTargetMult = scalar, F32, 972, "v", 1,0 +openLoopPart = scalar, F32, 976, "v", 1,0 +luaOpenLoopAdd = scalar, F32, 980, "v", 1,0 +boostControllerClosedLoopPart = scalar, S08, 984, "%", 0.5,0 +boostControlTarget = scalar, S16, 986, "kPa", 0.03333333333333333,0 +; total TS size = 988 +acButtonState = bits, U32, 988, [0:0] +m_acEnabled = bits, U32, 988, [1:1] +engineTooSlow = bits, U32, 988, [2:2] +engineTooFast = bits, U32, 988, [3:3] +noClt = bits, U32, 988, [4:4] +engineTooHot = bits, U32, 988, [5:5] +tpsTooHigh = bits, U32, 988, [6:6] +isDisabledByLua = bits, U32, 988, [7:7] +acCompressorState = bits, U32, 988, [8:8] +latest_usage_ac_control = scalar, S32, 992, "", 1, 0 +acSwitchLastChangeTimeMs = scalar, S32, 996, "", 1, 0 ; total TS size = 1000 -acButtonState = bits, U32, 1000, [0:0] -m_acEnabled = bits, U32, 1000, [1:1] -engineTooSlow = bits, U32, 1000, [2:2] -engineTooFast = bits, U32, 1000, [3:3] -noClt = bits, U32, 1000, [4:4] -engineTooHot = bits, U32, 1000, [5:5] -tpsTooHigh = bits, U32, 1000, [6:6] -isDisabledByLua = bits, U32, 1000, [7:7] -acCompressorState = bits, U32, 1000, [8:8] -latest_usage_ac_control = scalar, S32, 1004, "", 1, 0 -acSwitchLastChangeTimeMs = scalar, S32, 1008, "", 1, 0 +cranking = bits, U32, 1000, [0:0] +notRunning = bits, U32, 1000, [1:1] +disabledWhileEngineStopped = bits, U32, 1000, [2:2] +brokenClt = bits, U32, 1000, [3:3] +enabledForAc = bits, U32, 1000, [4:4] +hot = bits, U32, 1000, [5:5] +cold = bits, U32, 1000, [6:6] +; total TS size = 1004 +isPrime = bits, U32, 1004, [0:0] +engineTurnedRecently = bits, U32, 1004, [1:1] +isFuelPumpOn = bits, U32, 1004, [2:2] +ignitionOn = bits, U32, 1004, [3:3] +; total TS size = 1008 +isBenchTest = bits, U32, 1008, [0:0] +hasIgnitionVoltage = bits, U32, 1008, [1:1] +mainRelayState = bits, U32, 1008, [2:2] +delayedShutoffRequested = bits, U32, 1008, [3:3] ; total TS size = 1012 -cranking = bits, U32, 1012, [0:0] -notRunning = bits, U32, 1012, [1:1] -disabledWhileEngineStopped = bits, U32, 1012, [2:2] -brokenClt = bits, U32, 1012, [3:3] -enabledForAc = bits, U32, 1012, [4:4] -hot = bits, U32, 1012, [5:5] -cold = bits, U32, 1012, [6:6] -; total TS size = 1016 -isPrime = bits, U32, 1016, [0:0] -engineTurnedRecently = bits, U32, 1016, [1:1] -isFuelPumpOn = bits, U32, 1016, [2:2] -ignitionOn = bits, U32, 1016, [3:3] -; total TS size = 1020 -isBenchTest = bits, U32, 1020, [0:0] -hasIgnitionVoltage = bits, U32, 1020, [1:1] -mainRelayState = bits, U32, 1020, [2:2] -delayedShutoffRequested = bits, U32, 1020, [3:3] -; total TS size = 1024 -lua_fuelAdd = scalar, F32, 1024, "g", 1, 0 -lua_fuelMult = scalar, F32, 1028, "", 1, 0 -lua_clutchUpState = bits, U32, 1032, [0:0] -lua_brakePedalState = bits, U32, 1032, [1:1] -lua_acRequestState = bits, U32, 1032, [2:2] -lua_luaDisableEtb = bits, U32, 1032, [3:3] -lua_luaIgnCut = bits, U32, 1032, [4:4] -sd_tCharge = scalar, S16, 1036, "deg C", 0.01, 0 -sd_tChargeK = scalar, F32, 1040, "", 1, 0 -crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1044, "", 1, 0 -crankingFuel_tpsCoefficient = scalar, F32, 1048, "", 1, 0 -crankingFuel_durationCoefficient = scalar, F32, 1052, "", 1, 0 -crankingFuel_fuel = scalar, U16, 1056, "mg", 0.01, 0 -baroCorrection = scalar, F32, 1060, "", 1, 0 -hellenBoardId = scalar, S16, 1064, "id", 1, 0 -clutchUpState = bits, U32, 1068, [0:0] -clutchDownState = bits, U32, 1068, [1:1] -brakePedalState = bits, U32, 1068, [2:2] -startStopState = bits, U32, 1068, [3:3] -startStopStateToggleCounter = scalar, U32, 1072, "", 1, 0 -egtValue1 = scalar, F32, 1076, "", 1, 0 -egtValue2 = scalar, F32, 1080, "", 1, 0 -desiredRpmLimit = scalar, S16, 1084, "rpm", 1, 0 -fuelInjectionCounter = scalar, U32, 1088, "", 1, 0 -sparkCounter = scalar, U32, 1092, "", 1, 0 -fuelingLoad = scalar, F32, 1096, "", 1, 0 -ignitionLoad = scalar, F32, 1100, "", 1, 0 -veTableYAxis = scalar, U16, 1104, "%", 0.01, 0 -; total TS size = 1108 -tpsFrom = scalar, F32, 1108 -tpsTo = scalar, F32, 1112 -deltaTps = scalar, F32, 1116 -extraFuel = scalar, F32, 1120, "", 1, 0 -valueFromTable = scalar, F32, 1124, "", 1, 0 -isAboveAccelThreshold = bits, U32, 1128, [0:0] -isBelowDecelThreshold = bits, U32, 1128, [1:1] -isTimeToResetAccumulator = bits, U32, 1128, [2:2] -isFractionalEnrichment = bits, U32, 1128, [3:3] -belowEpsilon = bits, U32, 1128, [4:4] -tooShort = bits, U32, 1128, [5:5] -fractionalInjFuel = scalar, F32, 1132, "", 1, 0 -accumulatedValue = scalar, F32, 1136, "", 1, 0 -maxExtraPerCycle = scalar, F32, 1140, "", 1, 0 -maxExtraPerPeriod = scalar, F32, 1144, "", 1, 0 -maxInjectedPerPeriod = scalar, F32, 1148, "", 1, 0 -cycleCnt = scalar, S32, 1152, "", 1, 0 -; total TS size = 1156 -hwEventCounters1 = scalar, U32, 1156, "", 1, 0 -hwEventCounters2 = scalar, U32, 1160, "", 1, 0 -hwEventCounters3 = scalar, U32, 1164, "", 1, 0 -hwEventCounters4 = scalar, U32, 1168, "", 1, 0 -hwEventCounters5 = scalar, U32, 1172, "", 1, 0 -hwEventCounters6 = scalar, U32, 1176, "", 1, 0 -vvtCamCounter = scalar, U32, 1180, "", 1, 0 -mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1184, "", 1, 0 -mapVvt_MAP_AT_DIFF = scalar, F32, 1188, "", 1, 0 -mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1192, "", 1, 0 -mapVvt_map_peak = scalar, U08, 1193, "", 1, 0 -currentEngineDecodedPhase = scalar, F32, 1196, "deg", 1, 0 -triggerToothAngleError = scalar, F32, 1200, "deg", 1, 0 -triggerIgnoredToothCount = scalar, U08, 1204, "", 1, 0 -; total TS size = 1208 -crankSynchronizationCounter = scalar, U32, 1208, "", 1, 0 -vvtSyncGapRatio = scalar, F32, 1212, "", 1, 0 -vvtCurrentPosition = scalar, F32, 1216, "", 1, 0 -triggerSyncGapRatio = scalar, F32, 1220, "", 1, 0 -triggerStateIndex = scalar, U08, 1224, "", 1, 0 -vvtCounter = scalar, U08, 1225, "", 1, 0 -camResyncCounter = scalar, U08, 1226, "", 1, 0 -vvtStateIndex = scalar, U08, 1227, "", 1, 0 +lua_fuelAdd = scalar, F32, 1012, "g", 1, 0 +lua_fuelMult = scalar, F32, 1016, "", 1, 0 +lua_clutchUpState = bits, U32, 1020, [0:0] +lua_brakePedalState = bits, U32, 1020, [1:1] +lua_acRequestState = bits, U32, 1020, [2:2] +lua_luaDisableEtb = bits, U32, 1020, [3:3] +lua_luaIgnCut = bits, U32, 1020, [4:4] +sd_tCharge = scalar, S16, 1024, "deg C", 0.01, 0 +sd_tChargeK = scalar, F32, 1028, "", 1, 0 +crankingFuel_coolantTemperatureCoefficient = scalar, F32, 1032, "", 1, 0 +crankingFuel_tpsCoefficient = scalar, F32, 1036, "", 1, 0 +crankingFuel_durationCoefficient = scalar, F32, 1040, "", 1, 0 +crankingFuel_fuel = scalar, U16, 1044, "mg", 0.01, 0 +baroCorrection = scalar, F32, 1048, "", 1, 0 +hellenBoardId = scalar, S16, 1052, "id", 1, 0 +clutchUpState = bits, U32, 1056, [0:0] +clutchDownState = bits, U32, 1056, [1:1] +brakePedalState = bits, U32, 1056, [2:2] +startStopState = bits, U32, 1056, [3:3] +startStopStateToggleCounter = scalar, U32, 1060, "", 1, 0 +egtValue1 = scalar, F32, 1064, "", 1, 0 +egtValue2 = scalar, F32, 1068, "", 1, 0 +desiredRpmLimit = scalar, S16, 1072, "rpm", 1, 0 +fuelInjectionCounter = scalar, U32, 1076, "", 1, 0 +sparkCounter = scalar, U32, 1080, "", 1, 0 +fuelingLoad = scalar, F32, 1084, "", 1, 0 +ignitionLoad = scalar, F32, 1088, "", 1, 0 +veTableYAxis = scalar, U16, 1092, "%", 0.01, 0 +; total TS size = 1096 +tpsFrom = scalar, F32, 1096 +tpsTo = scalar, F32, 1100 +deltaTps = scalar, F32, 1104 +extraFuel = scalar, F32, 1108, "", 1, 0 +valueFromTable = scalar, F32, 1112, "", 1, 0 +isAboveAccelThreshold = bits, U32, 1116, [0:0] +isBelowDecelThreshold = bits, U32, 1116, [1:1] +isTimeToResetAccumulator = bits, U32, 1116, [2:2] +isFractionalEnrichment = bits, U32, 1116, [3:3] +belowEpsilon = bits, U32, 1116, [4:4] +tooShort = bits, U32, 1116, [5:5] +fractionalInjFuel = scalar, F32, 1120, "", 1, 0 +accumulatedValue = scalar, F32, 1124, "", 1, 0 +maxExtraPerCycle = scalar, F32, 1128, "", 1, 0 +maxExtraPerPeriod = scalar, F32, 1132, "", 1, 0 +maxInjectedPerPeriod = scalar, F32, 1136, "", 1, 0 +cycleCnt = scalar, S32, 1140, "", 1, 0 +; total TS size = 1144 +hwEventCounters1 = scalar, U32, 1144, "", 1, 0 +hwEventCounters2 = scalar, U32, 1148, "", 1, 0 +hwEventCounters3 = scalar, U32, 1152, "", 1, 0 +hwEventCounters4 = scalar, U32, 1156, "", 1, 0 +hwEventCounters5 = scalar, U32, 1160, "", 1, 0 +hwEventCounters6 = scalar, U32, 1164, "", 1, 0 +vvtCamCounter = scalar, U32, 1168, "", 1, 0 +mapVvt_MAP_AT_SPECIAL_POINT = scalar, F32, 1172, "", 1, 0 +mapVvt_MAP_AT_DIFF = scalar, F32, 1176, "", 1, 0 +mapVvt_MAP_AT_CYCLE_COUNT = scalar, U08, 1180, "", 1, 0 +mapVvt_map_peak = scalar, U08, 1181, "", 1, 0 +currentEngineDecodedPhase = scalar, F32, 1184, "deg", 1, 0 +triggerToothAngleError = scalar, F32, 1188, "deg", 1, 0 +triggerIgnoredToothCount = scalar, U08, 1192, "", 1, 0 +; total TS size = 1196 +crankSynchronizationCounter = scalar, U32, 1196, "", 1, 0 +vvtSyncGapRatio = scalar, F32, 1200, "", 1, 0 +vvtCurrentPosition = scalar, F32, 1204, "", 1, 0 +triggerSyncGapRatio = scalar, F32, 1208, "", 1, 0 +triggerStateIndex = scalar, U08, 1212, "", 1, 0 +vvtCounter = scalar, U08, 1213, "", 1, 0 +camResyncCounter = scalar, U08, 1214, "", 1, 0 +vvtStateIndex = scalar, U08, 1215, "", 1, 0 +; total TS size = 1216 +m_hasSynchronizedPhase = bits, U32, 1216, [0:0] +; total TS size = 1220 +wallFuelCorrection = scalar, F32, 1220, "", 1, 0 +wallFuel = scalar, F32, 1224, "", 1, 0 ; total TS size = 1228 -m_hasSynchronizedPhase = bits, U32, 1228, [0:0] -; total TS size = 1232 -wallFuelCorrection = scalar, F32, 1232, "", 1, 0 -wallFuel = scalar, F32, 1236, "", 1, 0 -; total TS size = 1240 -idleState = bits, S32, 1240, [0:2], "not important" -currentIdlePosition = scalar, F32, 1244 -baseIdlePosition = scalar, F32, 1248 -idleClosedLoop = scalar, F32, 1252 -iacByTpsTaper = scalar, F32, 1256 -throttlePedalUpState = scalar, S32, 1260, "", 1, 0 -mightResetPid = bits, U32, 1264, [0:0] -shouldResetPid = bits, U32, 1264, [1:1] -wasResetPid = bits, U32, 1264, [2:2] -mustResetPid = bits, U32, 1264, [3:3] -isCranking = bits, U32, 1264, [4:4] -isIacTableForCoasting = bits, U32, 1264, [5:5] -notIdling = bits, U32, 1264, [6:6] -needReset = bits, U32, 1264, [7:7] -isInDeadZone = bits, U32, 1264, [8:8] -isBlipping = bits, U32, 1264, [9:9] -looksLikeRunning = bits, U32, 1264, [10:10] -looksLikeCoasting = bits, U32, 1264, [11:11] -looksLikeCrankToIdle = bits, U32, 1264, [12:12] -isVerboseIAC = bits, U32, 1264, [13:13] -isIdleCoasting = bits, U32, 1264, [14:14] -isIdleClosedLoop = bits, U32, 1264, [15:15] -idleTarget = scalar, S32, 1268, "", 1, 0 -targetRpmByClt = scalar, S32, 1272, "", 1, 0 -targetRpmAcBump = scalar, S32, 1276, "", 1, 0 -iacByRpmTaper = scalar, F32, 1280 -luaAdd = scalar, F32, 1284 -; total TS size = 1288 -idlePosition = scalar, F32, 1288, "per", 1,0 -trim = scalar, F32, 1292, "", 1, 0 -luaAdjustment = scalar, F32, 1296, "per", 1,0 -m_wastegatePosition = scalar, F32, 1300, "per", 1,0 -etbFeedForward = scalar, F32, 1304 -etbIntegralError = scalar, F32, 1308, "", 1, 0 -etbCurrentTarget = scalar, F32, 1312, "%", 1, 0 -etbCurrentAdjustedTarget = scalar, F32, 1316, "%", 1, 0 -etbRevLimitActive = bits, U32, 1320, [0:0] -jamDetected = bits, U32, 1320, [1:1] -etbDutyRateOfChange = scalar, F32, 1324, "per", 1,0 -etbDutyAverage = scalar, F32, 1328, "per", 1,0 -etbTpsErrorCounter = scalar, U16, 1332, "count", 1,0 -etbPpsErrorCounter = scalar, U16, 1334, "count", 1,0 -etbErrorCode = scalar, S08, 1336, "", 1, 0 -jamTimer = scalar, U16, 1338, "sec", 0.01, 0 +idleState = bits, S32, 1228, [0:2], "not important" +currentIdlePosition = scalar, F32, 1232 +baseIdlePosition = scalar, F32, 1236 +idleClosedLoop = scalar, F32, 1240 +iacByTpsTaper = scalar, F32, 1244 +throttlePedalUpState = scalar, S32, 1248, "", 1, 0 +mightResetPid = bits, U32, 1252, [0:0] +shouldResetPid = bits, U32, 1252, [1:1] +wasResetPid = bits, U32, 1252, [2:2] +mustResetPid = bits, U32, 1252, [3:3] +isCranking = bits, U32, 1252, [4:4] +isIacTableForCoasting = bits, U32, 1252, [5:5] +notIdling = bits, U32, 1252, [6:6] +needReset = bits, U32, 1252, [7:7] +isInDeadZone = bits, U32, 1252, [8:8] +isBlipping = bits, U32, 1252, [9:9] +looksLikeRunning = bits, U32, 1252, [10:10] +looksLikeCoasting = bits, U32, 1252, [11:11] +looksLikeCrankToIdle = bits, U32, 1252, [12:12] +isVerboseIAC = bits, U32, 1252, [13:13] +isIdleCoasting = bits, U32, 1252, [14:14] +isIdleClosedLoop = bits, U32, 1252, [15:15] +idleTarget = scalar, S32, 1256, "", 1, 0 +targetRpmByClt = scalar, S32, 1260, "", 1, 0 +targetRpmAcBump = scalar, S32, 1264, "", 1, 0 +iacByRpmTaper = scalar, F32, 1268 +luaAdd = scalar, F32, 1272 +; total TS size = 1276 +idlePosition = scalar, F32, 1276, "per", 1,0 +trim = scalar, F32, 1280, "", 1, 0 +luaAdjustment = scalar, F32, 1284, "per", 1,0 +m_wastegatePosition = scalar, F32, 1288, "per", 1,0 +etbFeedForward = scalar, F32, 1292 +etbIntegralError = scalar, F32, 1296, "", 1, 0 +etbCurrentTarget = scalar, F32, 1300, "%", 1, 0 +etbCurrentAdjustedTarget = scalar, F32, 1304, "%", 1, 0 +etbRevLimitActive = bits, U32, 1308, [0:0] +jamDetected = bits, U32, 1308, [1:1] +etbDutyRateOfChange = scalar, F32, 1312, "per", 1,0 +etbDutyAverage = scalar, F32, 1316, "per", 1,0 +etbTpsErrorCounter = scalar, U16, 1320, "count", 1,0 +etbPpsErrorCounter = scalar, U16, 1322, "count", 1,0 +etbErrorCode = scalar, S08, 1324, "", 1, 0 +jamTimer = scalar, U16, 1326, "sec", 0.01, 0 +; total TS size = 1328 +faultCode = scalar, U08, 1328, "", 1, 0 +heaterDuty = scalar, U08, 1329, "%", 1, 0 +pumpDuty = scalar, U08, 1330, "%", 1, 0 +tempC = scalar, U16, 1332, "C", 1, 0 +nernstVoltage = scalar, U16, 1334, "V", 0.001, 0 +esr = scalar, U16, 1336, "ohm", 1, 0 ; total TS size = 1340 -faultCode = scalar, U08, 1340, "", 1, 0 -heaterDuty = scalar, U08, 1341, "%", 1, 0 -pumpDuty = scalar, U08, 1342, "%", 1, 0 -tempC = scalar, U16, 1344, "C", 1, 0 -nernstVoltage = scalar, U16, 1346, "V", 0.001, 0 -esr = scalar, U16, 1348, "ohm", 1, 0 +dcOutput0 = scalar, F32, 1340, "per", 1,0 +isEnabled0_int = scalar, U08, 1344, "per", 1,0 +isEnabled0 = bits, U32, 1348, [0:0] ; total TS size = 1352 -dcOutput0 = scalar, F32, 1352, "per", 1,0 -isEnabled0_int = scalar, U08, 1356, "per", 1,0 -isEnabled0 = bits, U32, 1360, [0:0] -; total TS size = 1364 -value0 = scalar, U16, 1364, "value", 1,0 -value1 = scalar, U16, 1366, "value", 1,0 -errorRate = scalar, F32, 1368, "ratio", 1,0 +value0 = scalar, U16, 1352, "value", 1,0 +value1 = scalar, U16, 1354, "value", 1,0 +errorRate = scalar, F32, 1356, "ratio", 1,0 +; total TS size = 1360 +throttleUseWotModel = bits, U32, 1360, [0:0] +throttleModelCrossoverAngle = scalar, S16, 1364, "%", 0.01, 0 +throttleEstimatedFlow = scalar, F32, 1368, "g/s", 1, 0 ; total TS size = 1372 +vvtTarget = scalar, U16, 1372, "deg", 0.1, 0 +vvtOutput = scalar, U08, 1374, "%", 0.5, 0 +; total TS size = 1376 time = { timeNow } @@ -2914,7 +2917,7 @@ errorRate = scalar, F32, 1368, "ratio", 1,0 ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -3842,7 +3845,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -4371,7 +4374,6 @@ entry = actualLastInjection, "Fuel: Last inj pulse width", float, "%.3f" entry = injectorDutyCycle, "Fuel: injector duty cycle", float, "%.3f" entry = veValue, "Fuel: VE", float, "%.3f" entry = injectionOffset, "Fuel: Injection timing SOI", int, "%d" -entry = injectorLagMs, "Fuel: injector lag", float, "%.3f" entry = engineMakeCodeNameCrc16, "Engine CRC16", int, "%d" entry = wallFuelAmount, "Fuel: wall amount", float, "%.3f" entry = wallFuelCorrectionValue, "Fuel: wall correction", float, "%.3f" @@ -4681,9 +4683,6 @@ entry = m_knockRetard, "Knock Degrees retarded", float, "%.3f" entry = m_knockThreshold, "m_knockThreshold", float, "%.3f" entry = m_knockCount, "m_knockCount", int, "%d" entry = m_maximumRetard, "m_maximumRetard", float, "%.3f" -entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" -entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" -entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" entry = m_requested_pump, "HPFP duration", float, "%.3f" entry = fuel_requested_percent, "fuel_requested_percent", float, "%.3f" entry = fuel_requested_percent_pi, "fuel_requested_percent_pi", float, "%.3f" @@ -4692,9 +4691,9 @@ entry = angleAboveMin, "angleAboveMin", int, "%d" entry = isHpfpInactive, "isHpfpInactive", int, "%d" entry = nextLobe, "nextLobe", float, "%.3f" entry = di_nextStart, "DI: next start", float, "%.3f" -entry = m_deadtime, "injectorLag(VBatt)", float, "%.3f" -entry = pressureDelta, "fuel: injector pressureDelta", float, "%.3f" -entry = pressureRatio, "fuel: injector pressureRatio", float, "%.3f" +entry = m_deadtime, "Fuel: injector lag", float, "%.3f" +entry = pressureDelta, "fuel: Injector pressure delta", float, "%.3f" +entry = pressureRatio, "fuel: Injector pressure ratio", float, "%.3f" entry = retardThresholdRpm, "retardThresholdRpm", int, "%d" entry = combinedConditions, "combinedConditions", int, "%d" entry = launchActivatePinState, "launchActivatePinState", int, "%d" @@ -4885,6 +4884,11 @@ entry = isEnabled0, "isEnabled0", int, "%d" entry = value0, "ETB: SENT value0", int, "%d" entry = value1, "ETB: SENT value1", int, "%d" entry = errorRate, "ETB: SENT error rate", float, "%.3f" +entry = throttleUseWotModel, "Air: Throttle model WOT", int, "%d" +entry = throttleModelCrossoverAngle, "Air: Throttle crossover pos", float, "%.3f" +entry = throttleEstimatedFlow, "Air: Throttle flow estimate", float, "%.3f" +entry = vvtTarget, "vvtTarget", float, "%.3f" +entry = vvtOutput, "vvtOutput", float, "%.3f" [Menu] @@ -5206,7 +5210,6 @@ menuDialog = main subMenu = fuel_computerDialog, "fuel_computer" subMenu = ignition_stateDialog, "ignition_state" subMenu = knock_controllerDialog, "knock_controller" - subMenu = throttle_modelDialog, "throttle_model" subMenu = high_pressure_fuel_pumpDialog, "high_pressure_fuel_pump" subMenu = injector_modelDialog, "injector_model" subMenu = launch_control_stateDialog, "launch_control_state" @@ -5227,6 +5230,8 @@ menuDialog = main subMenu = wideband_stateDialog, "wideband_state" subMenu = dc_motorsDialog, "dc_motors" subMenu = sent_stateDialog, "sent_state" + subMenu = throttle_modelDialog, "throttle_model" + subMenu = vvtDialog, "vvt" @@ -5432,15 +5437,6 @@ dialog = knock_controllerDialog, "knock_controller" graphLine = m_knockCount graphLine = m_maximumRetard -indicatorPanel = throttle_modelIndicatorPanel, 2 - indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" - -dialog = throttle_modelDialog, "throttle_model" - panel = throttle_modelIndicatorPanel - liveGraph = throttle_model_1_Graph, "Graph", South - graphLine = throttleModelCrossoverAngle - graphLine = throttleEstimatedFlow - indicatorPanel = high_pressure_fuel_pumpIndicatorPanel, 2 indicator = {noValve}, "noValve No", "noValve Yes" indicator = {angleAboveMin}, "angleAboveMin No", "angleAboveMin Yes" @@ -5764,6 +5760,21 @@ dialog = sent_stateDialog, "sent_state" graphLine = value1 graphLine = errorRate +indicatorPanel = throttle_modelIndicatorPanel, 2 + indicator = {throttleUseWotModel}, "throttleUseWotModel No", "throttleUseWotModel Yes" + +dialog = throttle_modelDialog, "throttle_model" + panel = throttle_modelIndicatorPanel + liveGraph = throttle_model_1_Graph, "Graph", South + graphLine = throttleModelCrossoverAngle + graphLine = throttleEstimatedFlow + + +dialog = vvtDialog, "vvt" + liveGraph = vvt_1_Graph, "Graph", South + graphLine = vvtTarget + graphLine = vvtOutput + dialog = scriptTable1TblSettings, "", yAxis @@ -7126,11 +7137,15 @@ dialog = sent_stateDialog, "sent_state" dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index e11850136e..aa7f757a2b 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -228,7 +228,7 @@ enable2ndByteCanID = false ignModeList = bits, U08, [0:3], "Single Coil", "Sequential", "Wasted", "Two Coils" ; ClearReason - fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR" + fuelIgnCutCodeList = bits, U08, [0:7], "None", "fatal error", "setting disabled", "RPM limit", "fault RPM limit", "boost cut", "oil pressure", "stop requested", "ETB problem", "launch control", "max injector duty", "flood clear", "engine sync", "kickstart", "ign off", "Lua", "ACR", "Lambda Prot" ; TpsState etbCutCodeList = bits, U08, [0:7], "None", "engine stopped", "TPS error", "PPS error", "TPS noise", "PID noise", "Lua", "Manual", "N/A", "Redundancy", "PPS noise" @@ -1156,7 +1156,7 @@ curve = 32Curve, "3-2 Shift Solenoid Percent by Speed" gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. upDownLabel = "(RICHER)", "(LEANER)" - table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation Table", 1 + table = lambdaMaxDeviationTableTbl, lambdaMaxDeviationTableMap, "Maximum Lambda Deviation", 1 xyLabels = "RPM", "" xBins = lambdaMaxDeviationRpmBins, RPMValue yBins = lambdaMaxDeviationLoadBins, afrTableYAxis @@ -3450,11 +3450,15 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@@@ts_command_e_TS_ dialog = lambdaProtectionLeft, "" field = "Enable lambda protection", lambdaProtectionEnable field = "Check above load", lambdaProtectionMinLoad, { lambdaProtectionEnable } - field = "Check above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } - field = "Check above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } - field = "Check after delay", lambdaProtectionTimeout { lambdaProtectionEnable } - - dialog = lambdaProtectionRight, "Lambda Difference Limit Table" + field = "and above TPS", lambdaProtectionMinTps, { lambdaProtectionEnable } + field = "and above RPM", lambdaProtectionMinRpm, { lambdaProtectionEnable } + field = "and after delay", lambdaProtectionTimeout { lambdaProtectionEnable } + field = "Then cut fuel until:" + field = "Load less than", lambdaProtectionRestoreLoad, { lambdaProtectionEnable } + field = "and TPS less than", lambdaProtectionRestoreTps, { lambdaProtectionEnable } + field = "and RPM less than", lambdaProtectionRestoreRpm, { lambdaProtectionEnable } + + dialog = lambdaProtectionRight, "Lambda Difference Table" panel = lambdaMaxDeviationTableTbl dialog = lambdaProtection, "Lambda Protection", border diff --git a/firmware/util/containers/type_list.h b/firmware/util/containers/type_list.h index e9fa6e85e0..47f260eeef 100644 --- a/firmware/util/containers/type_list.h +++ b/firmware/util/containers/type_list.h @@ -63,13 +63,13 @@ struct type_list { * The return type is type_list or type_list> */ template - auto get() -> std::enable_if_t(), + constexpr auto get() -> std::enable_if_t(), decltype(first.template get())> { return first.template get(); } template - auto get() -> std::enable_if_t(), + constexpr auto get() -> std::enable_if_t(), decltype(others.template get())> { return others.template get(); } @@ -111,19 +111,19 @@ struct type_list { } template()>> - auto & get() { + constexpr auto & get() { return *this; } - auto & unmock() { + constexpr auto & unmock() { return me; } - base_t * operator->() { + constexpr base_t * operator->() { return &me; } - base_t & operator*() { + constexpr base_t & operator*() { return me; } }; @@ -170,7 +170,7 @@ struct type_list> { } template()>> - auto & get() { + constexpr auto & get() { return *this; } @@ -186,11 +186,11 @@ struct type_list> { } } - auto * operator->() { + constexpr auto * operator->() { return cur; } - auto & operator*() { + constexpr auto & operator*() { return *cur; } diff --git a/java_console/io/src/main/java/com/rusefi/enums/auto_generated_enums.cpp b/java_console/io/src/main/java/com/rusefi/enums/auto_generated_enums.cpp index 31743c4c34..74acac1ebb 100644 --- a/java_console/io/src/main/java/com/rusefi/enums/auto_generated_enums.cpp +++ b/java_console/io/src/main/java/com/rusefi/enums/auto_generated_enums.cpp @@ -48,6 +48,8 @@ case LDS_trigger_state: return "LDS_trigger_state"; case LDS_trigger_state_primary: return "LDS_trigger_state_primary"; +case LDS_vvt: + return "LDS_vvt"; case LDS_wall_fuel_state: return "LDS_wall_fuel_state"; case LDS_wideband_state: diff --git a/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java b/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java index 39d1bdbaae..064fe377cf 100644 --- a/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java +++ b/java_console/io/src/main/java/com/rusefi/enums/live_data_e.java @@ -9,7 +9,6 @@ public enum live_data_e { LDS_fuel_computer, LDS_ignition_state, LDS_knock_controller, - LDS_throttle_model, LDS_high_pressure_fuel_pump, LDS_injector_model, LDS_launch_control_state, @@ -30,4 +29,6 @@ public enum live_data_e { LDS_wideband_state, LDS_dc_motors, LDS_sent_state, + LDS_throttle_model, + LDS_vvt, } diff --git a/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java b/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java index c26c35a871..e9682fb5f8 100644 --- a/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java +++ b/java_console/io/src/main/java/com/rusefi/ldmp/StateDictionary.java @@ -47,7 +47,8 @@ public enum StateDictionary { register(live_data_e.LDS_antilag_system_state, AntilagSystem.VALUES, "antilag_system"); register(live_data_e.LDS_dc_motors, DcMotors.VALUES, "dc_motors"); register(live_data_e.LDS_sent_state, SentState.VALUES, "sent"); - register(live_data_e.LDS_throttle_model, ThrottleModel.VALUES, "throttle_model"); + register(live_data_e.LDS_throttle_model, ThrottleModel.VALUES, "throttle_model"); + register(live_data_e.LDS_vvt, VvtState.VALUES, "vvt"); if (map.size() != live_data_e.values().length) { Set missing = new HashSet<>(Arrays.asList(live_data_e.values())); missing.removeAll(map.keySet()); diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java index b747f3968c..bb94ea2d8e 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/AcControl.java @@ -155,17 +155,17 @@ public class AcControl { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field ACBUTTONSTATE = Field.create("ACBUTTONSTATE", 0, FieldType.BIT, 0).setBaseOffset(1000); - public static final Field M_ACENABLED = Field.create("M_ACENABLED", 0, FieldType.BIT, 1).setBaseOffset(1000); - public static final Field ENGINETOOSLOW = Field.create("ENGINETOOSLOW", 0, FieldType.BIT, 2).setBaseOffset(1000); - public static final Field ENGINETOOFAST = Field.create("ENGINETOOFAST", 0, FieldType.BIT, 3).setBaseOffset(1000); - public static final Field NOCLT = Field.create("NOCLT", 0, FieldType.BIT, 4).setBaseOffset(1000); - public static final Field ENGINETOOHOT = Field.create("ENGINETOOHOT", 0, FieldType.BIT, 5).setBaseOffset(1000); - public static final Field TPSTOOHIGH = Field.create("TPSTOOHIGH", 0, FieldType.BIT, 6).setBaseOffset(1000); - public static final Field ISDISABLEDBYLUA = Field.create("ISDISABLEDBYLUA", 0, FieldType.BIT, 7).setBaseOffset(1000); - public static final Field ACCOMPRESSORSTATE = Field.create("ACCOMPRESSORSTATE", 0, FieldType.BIT, 8).setBaseOffset(1000); - public static final Field LATEST_USAGE_AC_CONTROL = Field.create("LATEST_USAGE_AC_CONTROL", 4, FieldType.INT).setScale(1.0).setBaseOffset(1000); - public static final Field ACSWITCHLASTCHANGETIMEMS = Field.create("ACSWITCHLASTCHANGETIMEMS", 8, FieldType.INT).setScale(1.0).setBaseOffset(1000); + public static final Field ACBUTTONSTATE = Field.create("ACBUTTONSTATE", 0, FieldType.BIT, 0).setBaseOffset(988); + public static final Field M_ACENABLED = Field.create("M_ACENABLED", 0, FieldType.BIT, 1).setBaseOffset(988); + public static final Field ENGINETOOSLOW = Field.create("ENGINETOOSLOW", 0, FieldType.BIT, 2).setBaseOffset(988); + public static final Field ENGINETOOFAST = Field.create("ENGINETOOFAST", 0, FieldType.BIT, 3).setBaseOffset(988); + public static final Field NOCLT = Field.create("NOCLT", 0, FieldType.BIT, 4).setBaseOffset(988); + public static final Field ENGINETOOHOT = Field.create("ENGINETOOHOT", 0, FieldType.BIT, 5).setBaseOffset(988); + public static final Field TPSTOOHIGH = Field.create("TPSTOOHIGH", 0, FieldType.BIT, 6).setBaseOffset(988); + public static final Field ISDISABLEDBYLUA = Field.create("ISDISABLEDBYLUA", 0, FieldType.BIT, 7).setBaseOffset(988); + public static final Field ACCOMPRESSORSTATE = Field.create("ACCOMPRESSORSTATE", 0, FieldType.BIT, 8).setBaseOffset(988); + public static final Field LATEST_USAGE_AC_CONTROL = Field.create("LATEST_USAGE_AC_CONTROL", 4, FieldType.INT).setScale(1.0).setBaseOffset(988); + public static final Field ACSWITCHLASTCHANGETIMEMS = Field.create("ACSWITCHLASTCHANGETIMEMS", 8, FieldType.INT).setScale(1.0).setBaseOffset(988); public static final Field[] VALUES = { ACBUTTONSTATE, M_ACENABLED, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java b/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java index 44f3006619..d22aa6650d 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/AntilagSystem.java @@ -155,19 +155,19 @@ public class AntilagSystem { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field ISANTILAGCONDITION = Field.create("ISANTILAGCONDITION", 0, FieldType.BIT, 0).setBaseOffset(964); - public static final Field ALSMINRPMCONDITION = Field.create("ALSMINRPMCONDITION", 0, FieldType.BIT, 1).setBaseOffset(964); - public static final Field ALSMAXRPMCONDITION = Field.create("ALSMAXRPMCONDITION", 0, FieldType.BIT, 2).setBaseOffset(964); - public static final Field ALSMINCLTCONDITION = Field.create("ALSMINCLTCONDITION", 0, FieldType.BIT, 3).setBaseOffset(964); - public static final Field ALSMAXCLTCONDITION = Field.create("ALSMAXCLTCONDITION", 0, FieldType.BIT, 4).setBaseOffset(964); - public static final Field ALSMAXTHROTTLEINTENTCONDITION = Field.create("ALSMAXTHROTTLEINTENTCONDITION", 0, FieldType.BIT, 5).setBaseOffset(964); - public static final Field ISALSSWITCHACTIVATED = Field.create("ISALSSWITCHACTIVATED", 0, FieldType.BIT, 6).setBaseOffset(964); - public static final Field ALSACTIVATEPINSTATE = Field.create("ALSACTIVATEPINSTATE", 0, FieldType.BIT, 7).setBaseOffset(964); - public static final Field ALSSWITCHCONDITION = Field.create("ALSSWITCHCONDITION", 0, FieldType.BIT, 8).setBaseOffset(964); - public static final Field ALSTIMERCONDITION = Field.create("ALSTIMERCONDITION", 0, FieldType.BIT, 9).setBaseOffset(964); - public static final Field FUELALSCORRECTION = Field.create("FUELALSCORRECTION", 4, FieldType.FLOAT).setBaseOffset(964); - public static final Field TIMINGALSCORRECTION = Field.create("TIMINGALSCORRECTION", 8, FieldType.INT16).setScale(0.01).setBaseOffset(964); - public static final Field ALIGNMENTFILL_AT_10 = Field.create("ALIGNMENTFILL_AT_10", 10, FieldType.INT8).setScale(1.0).setBaseOffset(964); + public static final Field ISANTILAGCONDITION = Field.create("ISANTILAGCONDITION", 0, FieldType.BIT, 0).setBaseOffset(952); + public static final Field ALSMINRPMCONDITION = Field.create("ALSMINRPMCONDITION", 0, FieldType.BIT, 1).setBaseOffset(952); + public static final Field ALSMAXRPMCONDITION = Field.create("ALSMAXRPMCONDITION", 0, FieldType.BIT, 2).setBaseOffset(952); + public static final Field ALSMINCLTCONDITION = Field.create("ALSMINCLTCONDITION", 0, FieldType.BIT, 3).setBaseOffset(952); + public static final Field ALSMAXCLTCONDITION = Field.create("ALSMAXCLTCONDITION", 0, FieldType.BIT, 4).setBaseOffset(952); + public static final Field ALSMAXTHROTTLEINTENTCONDITION = Field.create("ALSMAXTHROTTLEINTENTCONDITION", 0, FieldType.BIT, 5).setBaseOffset(952); + public static final Field ISALSSWITCHACTIVATED = Field.create("ISALSSWITCHACTIVATED", 0, FieldType.BIT, 6).setBaseOffset(952); + public static final Field ALSACTIVATEPINSTATE = Field.create("ALSACTIVATEPINSTATE", 0, FieldType.BIT, 7).setBaseOffset(952); + public static final Field ALSSWITCHCONDITION = Field.create("ALSSWITCHCONDITION", 0, FieldType.BIT, 8).setBaseOffset(952); + public static final Field ALSTIMERCONDITION = Field.create("ALSTIMERCONDITION", 0, FieldType.BIT, 9).setBaseOffset(952); + public static final Field FUELALSCORRECTION = Field.create("FUELALSCORRECTION", 4, FieldType.FLOAT).setBaseOffset(952); + public static final Field TIMINGALSCORRECTION = Field.create("TIMINGALSCORRECTION", 8, FieldType.INT16).setScale(0.01).setBaseOffset(952); + public static final Field ALIGNMENTFILL_AT_10 = Field.create("ALIGNMENTFILL_AT_10", 10, FieldType.INT8).setScale(1.0).setBaseOffset(952); public static final Field[] VALUES = { ISANTILAGCONDITION, ALSMINRPMCONDITION, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java index 734f47e04d..434186c41d 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/BoostControl.java @@ -155,23 +155,23 @@ public class BoostControl { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field ISTPSINVALID = Field.create("ISTPSINVALID", 0, FieldType.BIT, 0).setBaseOffset(976); - public static final Field M_SHOULDRESETPID = Field.create("M_SHOULDRESETPID", 0, FieldType.BIT, 1).setBaseOffset(976); - public static final Field ISBELOWCLOSEDLOOPTHRESHOLD = Field.create("ISBELOWCLOSEDLOOPTHRESHOLD", 0, FieldType.BIT, 2).setBaseOffset(976); - public static final Field ISNOTCLOSEDLOOP = Field.create("ISNOTCLOSEDLOOP", 0, FieldType.BIT, 3).setBaseOffset(976); - public static final Field ISZERORPM = Field.create("ISZERORPM", 0, FieldType.BIT, 4).setBaseOffset(976); - public static final Field HASINITBOOST = Field.create("HASINITBOOST", 0, FieldType.BIT, 5).setBaseOffset(976); - public static final Field RPMTOOLOW = Field.create("RPMTOOLOW", 0, FieldType.BIT, 6).setBaseOffset(976); - public static final Field TPSTOOLOW = Field.create("TPSTOOLOW", 0, FieldType.BIT, 7).setBaseOffset(976); - public static final Field MAPTOOLOW = Field.create("MAPTOOLOW", 0, FieldType.BIT, 8).setBaseOffset(976); - public static final Field LUATARGETADD = Field.create("LUATARGETADD", 4, FieldType.INT16).setScale(0.5).setBaseOffset(976); - public static final Field BOOSTOUTPUT = Field.create("BOOSTOUTPUT", 6, FieldType.INT16).setScale(0.01).setBaseOffset(976); - public static final Field LUATARGETMULT = Field.create("LUATARGETMULT", 8, FieldType.FLOAT).setBaseOffset(976); - public static final Field OPENLOOPPART = Field.create("OPENLOOPPART", 12, FieldType.FLOAT).setBaseOffset(976); - public static final Field LUAOPENLOOPADD = Field.create("LUAOPENLOOPADD", 16, FieldType.FLOAT).setBaseOffset(976); - public static final Field BOOSTCONTROLLERCLOSEDLOOPPART = Field.create("BOOSTCONTROLLERCLOSEDLOOPPART", 20, FieldType.INT8).setScale(0.5).setBaseOffset(976); - public static final Field ALIGNMENTFILL_AT_21 = Field.create("ALIGNMENTFILL_AT_21", 21, FieldType.INT8).setScale(1.0).setBaseOffset(976); - public static final Field BOOSTCONTROLTARGET = Field.create("BOOSTCONTROLTARGET", 22, FieldType.INT16).setScale(0.03333333333333333).setBaseOffset(976); + public static final Field ISTPSINVALID = Field.create("ISTPSINVALID", 0, FieldType.BIT, 0).setBaseOffset(964); + public static final Field M_SHOULDRESETPID = Field.create("M_SHOULDRESETPID", 0, FieldType.BIT, 1).setBaseOffset(964); + public static final Field ISBELOWCLOSEDLOOPTHRESHOLD = Field.create("ISBELOWCLOSEDLOOPTHRESHOLD", 0, FieldType.BIT, 2).setBaseOffset(964); + public static final Field ISNOTCLOSEDLOOP = Field.create("ISNOTCLOSEDLOOP", 0, FieldType.BIT, 3).setBaseOffset(964); + public static final Field ISZERORPM = Field.create("ISZERORPM", 0, FieldType.BIT, 4).setBaseOffset(964); + public static final Field HASINITBOOST = Field.create("HASINITBOOST", 0, FieldType.BIT, 5).setBaseOffset(964); + public static final Field RPMTOOLOW = Field.create("RPMTOOLOW", 0, FieldType.BIT, 6).setBaseOffset(964); + public static final Field TPSTOOLOW = Field.create("TPSTOOLOW", 0, FieldType.BIT, 7).setBaseOffset(964); + public static final Field MAPTOOLOW = Field.create("MAPTOOLOW", 0, FieldType.BIT, 8).setBaseOffset(964); + public static final Field LUATARGETADD = Field.create("LUATARGETADD", 4, FieldType.INT16).setScale(0.5).setBaseOffset(964); + public static final Field BOOSTOUTPUT = Field.create("BOOSTOUTPUT", 6, FieldType.INT16).setScale(0.01).setBaseOffset(964); + public static final Field LUATARGETMULT = Field.create("LUATARGETMULT", 8, FieldType.FLOAT).setBaseOffset(964); + public static final Field OPENLOOPPART = Field.create("OPENLOOPPART", 12, FieldType.FLOAT).setBaseOffset(964); + public static final Field LUAOPENLOOPADD = Field.create("LUAOPENLOOPADD", 16, FieldType.FLOAT).setBaseOffset(964); + public static final Field BOOSTCONTROLLERCLOSEDLOOPPART = Field.create("BOOSTCONTROLLERCLOSEDLOOPPART", 20, FieldType.INT8).setScale(0.5).setBaseOffset(964); + public static final Field ALIGNMENTFILL_AT_21 = Field.create("ALIGNMENTFILL_AT_21", 21, FieldType.INT8).setScale(1.0).setBaseOffset(964); + public static final Field BOOSTCONTROLTARGET = Field.create("BOOSTCONTROLTARGET", 22, FieldType.INT16).setScale(0.03333333333333333).setBaseOffset(964); public static final Field[] VALUES = { ISTPSINVALID, M_SHOULDRESETPID, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java b/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java index 5b68b1c30f..0375f3e8d7 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/DcMotors.java @@ -155,10 +155,10 @@ public class DcMotors { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field DCOUTPUT0 = Field.create("DCOUTPUT0", 0, FieldType.FLOAT).setBaseOffset(1352); - public static final Field ISENABLED0_INT = Field.create("ISENABLED0_INT", 4, FieldType.INT8).setScale(1.0).setBaseOffset(1352); - public static final Field ALIGNMENTFILL_AT_5 = Field.create("ALIGNMENTFILL_AT_5", 5, FieldType.INT8).setScale(1.0).setBaseOffset(1352); - public static final Field ISENABLED0 = Field.create("ISENABLED0", 8, FieldType.BIT, 0).setBaseOffset(1352); + public static final Field DCOUTPUT0 = Field.create("DCOUTPUT0", 0, FieldType.FLOAT).setBaseOffset(1340); + public static final Field ISENABLED0_INT = Field.create("ISENABLED0_INT", 4, FieldType.INT8).setScale(1.0).setBaseOffset(1340); + public static final Field ALIGNMENTFILL_AT_5 = Field.create("ALIGNMENTFILL_AT_5", 5, FieldType.INT8).setScale(1.0).setBaseOffset(1340); + public static final Field ISENABLED0 = Field.create("ISENABLED0", 8, FieldType.BIT, 0).setBaseOffset(1340); public static final Field[] VALUES = { DCOUTPUT0, ISENABLED0_INT, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java b/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java index e6fd210f70..af98522d98 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/ElectronicThrottle.java @@ -155,23 +155,23 @@ public class ElectronicThrottle { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field IDLEPOSITION = Field.create("IDLEPOSITION", 0, FieldType.FLOAT).setBaseOffset(1288); - public static final Field TRIM = Field.create("TRIM", 4, FieldType.FLOAT).setBaseOffset(1288); - public static final Field LUAADJUSTMENT = Field.create("LUAADJUSTMENT", 8, FieldType.FLOAT).setBaseOffset(1288); - public static final Field M_WASTEGATEPOSITION = Field.create("M_WASTEGATEPOSITION", 12, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBFEEDFORWARD = Field.create("ETBFEEDFORWARD", 16, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBINTEGRALERROR = Field.create("ETBINTEGRALERROR", 20, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBCURRENTTARGET = Field.create("ETBCURRENTTARGET", 24, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBCURRENTADJUSTEDTARGET = Field.create("ETBCURRENTADJUSTEDTARGET", 28, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBREVLIMITACTIVE = Field.create("ETBREVLIMITACTIVE", 32, FieldType.BIT, 0).setBaseOffset(1288); - public static final Field JAMDETECTED = Field.create("JAMDETECTED", 32, FieldType.BIT, 1).setBaseOffset(1288); - public static final Field ETBDUTYRATEOFCHANGE = Field.create("ETBDUTYRATEOFCHANGE", 36, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBDUTYAVERAGE = Field.create("ETBDUTYAVERAGE", 40, FieldType.FLOAT).setBaseOffset(1288); - public static final Field ETBTPSERRORCOUNTER = Field.create("ETBTPSERRORCOUNTER", 44, FieldType.INT16).setScale(1.0).setBaseOffset(1288); - public static final Field ETBPPSERRORCOUNTER = Field.create("ETBPPSERRORCOUNTER", 46, FieldType.INT16).setScale(1.0).setBaseOffset(1288); - public static final Field ETBERRORCODE = Field.create("ETBERRORCODE", 48, FieldType.INT8).setScale(1.0).setBaseOffset(1288); - public static final Field ALIGNMENTFILL_AT_49 = Field.create("ALIGNMENTFILL_AT_49", 49, FieldType.INT8).setScale(1.0).setBaseOffset(1288); - public static final Field JAMTIMER = Field.create("JAMTIMER", 50, FieldType.INT16).setScale(0.01).setBaseOffset(1288); + public static final Field IDLEPOSITION = Field.create("IDLEPOSITION", 0, FieldType.FLOAT).setBaseOffset(1276); + public static final Field TRIM = Field.create("TRIM", 4, FieldType.FLOAT).setBaseOffset(1276); + public static final Field LUAADJUSTMENT = Field.create("LUAADJUSTMENT", 8, FieldType.FLOAT).setBaseOffset(1276); + public static final Field M_WASTEGATEPOSITION = Field.create("M_WASTEGATEPOSITION", 12, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBFEEDFORWARD = Field.create("ETBFEEDFORWARD", 16, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBINTEGRALERROR = Field.create("ETBINTEGRALERROR", 20, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBCURRENTTARGET = Field.create("ETBCURRENTTARGET", 24, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBCURRENTADJUSTEDTARGET = Field.create("ETBCURRENTADJUSTEDTARGET", 28, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBREVLIMITACTIVE = Field.create("ETBREVLIMITACTIVE", 32, FieldType.BIT, 0).setBaseOffset(1276); + public static final Field JAMDETECTED = Field.create("JAMDETECTED", 32, FieldType.BIT, 1).setBaseOffset(1276); + public static final Field ETBDUTYRATEOFCHANGE = Field.create("ETBDUTYRATEOFCHANGE", 36, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBDUTYAVERAGE = Field.create("ETBDUTYAVERAGE", 40, FieldType.FLOAT).setBaseOffset(1276); + public static final Field ETBTPSERRORCOUNTER = Field.create("ETBTPSERRORCOUNTER", 44, FieldType.INT16).setScale(1.0).setBaseOffset(1276); + public static final Field ETBPPSERRORCOUNTER = Field.create("ETBPPSERRORCOUNTER", 46, FieldType.INT16).setScale(1.0).setBaseOffset(1276); + public static final Field ETBERRORCODE = Field.create("ETBERRORCODE", 48, FieldType.INT8).setScale(1.0).setBaseOffset(1276); + public static final Field ALIGNMENTFILL_AT_49 = Field.create("ALIGNMENTFILL_AT_49", 49, FieldType.INT8).setScale(1.0).setBaseOffset(1276); + public static final Field JAMTIMER = Field.create("JAMTIMER", 50, FieldType.INT16).setScale(0.01).setBaseOffset(1276); public static final Field[] VALUES = { IDLEPOSITION, TRIM, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java b/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java index 98618fe595..874dd82495 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/EngineState.java @@ -155,39 +155,39 @@ public class EngineState { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field LUA_FUELADD = Field.create("LUA_FUELADD", 0, FieldType.FLOAT).setBaseOffset(1024); - public static final Field LUA_FUELMULT = Field.create("LUA_FUELMULT", 4, FieldType.FLOAT).setBaseOffset(1024); - public static final Field LUA_CLUTCHUPSTATE = Field.create("LUA_CLUTCHUPSTATE", 8, FieldType.BIT, 0).setBaseOffset(1024); - public static final Field LUA_BRAKEPEDALSTATE = Field.create("LUA_BRAKEPEDALSTATE", 8, FieldType.BIT, 1).setBaseOffset(1024); - public static final Field LUA_ACREQUESTSTATE = Field.create("LUA_ACREQUESTSTATE", 8, FieldType.BIT, 2).setBaseOffset(1024); - public static final Field LUA_LUADISABLEETB = Field.create("LUA_LUADISABLEETB", 8, FieldType.BIT, 3).setBaseOffset(1024); - public static final Field LUA_LUAIGNCUT = Field.create("LUA_LUAIGNCUT", 8, FieldType.BIT, 4).setBaseOffset(1024); - public static final Field SD_TCHARGE = Field.create("SD_TCHARGE", 12, FieldType.INT16).setScale(0.01).setBaseOffset(1024); - public static final Field SD_ALIGNMENTFILL_AT_2 = Field.create("SD_ALIGNMENTFILL_AT_2", 14, FieldType.INT8).setScale(1.0).setBaseOffset(1024); - public static final Field SD_TCHARGEK = Field.create("SD_TCHARGEK", 16, FieldType.FLOAT).setBaseOffset(1024); - public static final Field CRANKINGFUEL_COOLANTTEMPERATURECOEFFICIENT = Field.create("CRANKINGFUEL_COOLANTTEMPERATURECOEFFICIENT", 20, FieldType.FLOAT).setBaseOffset(1024); - public static final Field CRANKINGFUEL_TPSCOEFFICIENT = Field.create("CRANKINGFUEL_TPSCOEFFICIENT", 24, FieldType.FLOAT).setBaseOffset(1024); - public static final Field CRANKINGFUEL_DURATIONCOEFFICIENT = Field.create("CRANKINGFUEL_DURATIONCOEFFICIENT", 28, FieldType.FLOAT).setBaseOffset(1024); - public static final Field CRANKINGFUEL_FUEL = Field.create("CRANKINGFUEL_FUEL", 32, FieldType.INT16).setScale(0.01).setBaseOffset(1024); - public static final Field CRANKINGFUEL_ALIGNMENTFILL_AT_14 = Field.create("CRANKINGFUEL_ALIGNMENTFILL_AT_14", 34, FieldType.INT8).setScale(1.0).setBaseOffset(1024); - public static final Field BAROCORRECTION = Field.create("BAROCORRECTION", 36, FieldType.FLOAT).setBaseOffset(1024); - public static final Field HELLENBOARDID = Field.create("HELLENBOARDID", 40, FieldType.INT16).setScale(1.0).setBaseOffset(1024); - public static final Field ALIGNMENTFILL_AT_42 = Field.create("ALIGNMENTFILL_AT_42", 42, FieldType.INT8).setScale(1.0).setBaseOffset(1024); - public static final Field CLUTCHUPSTATE = Field.create("CLUTCHUPSTATE", 44, FieldType.BIT, 0).setBaseOffset(1024); - public static final Field CLUTCHDOWNSTATE = Field.create("CLUTCHDOWNSTATE", 44, FieldType.BIT, 1).setBaseOffset(1024); - public static final Field BRAKEPEDALSTATE = Field.create("BRAKEPEDALSTATE", 44, FieldType.BIT, 2).setBaseOffset(1024); - public static final Field STARTSTOPSTATE = Field.create("STARTSTOPSTATE", 44, FieldType.BIT, 3).setBaseOffset(1024); - public static final Field STARTSTOPSTATETOGGLECOUNTER = Field.create("STARTSTOPSTATETOGGLECOUNTER", 48, FieldType.INT).setScale(1.0).setBaseOffset(1024); - public static final Field EGTVALUE1 = Field.create("EGTVALUE1", 52, FieldType.FLOAT).setBaseOffset(1024); - public static final Field EGTVALUE2 = Field.create("EGTVALUE2", 56, FieldType.FLOAT).setBaseOffset(1024); - public static final Field DESIREDRPMLIMIT = Field.create("DESIREDRPMLIMIT", 60, FieldType.INT16).setScale(1.0).setBaseOffset(1024); - public static final Field ALIGNMENTFILL_AT_62 = Field.create("ALIGNMENTFILL_AT_62", 62, FieldType.INT8).setScale(1.0).setBaseOffset(1024); - public static final Field FUELINJECTIONCOUNTER = Field.create("FUELINJECTIONCOUNTER", 64, FieldType.INT).setScale(1.0).setBaseOffset(1024); - public static final Field SPARKCOUNTER = Field.create("SPARKCOUNTER", 68, FieldType.INT).setScale(1.0).setBaseOffset(1024); - public static final Field FUELINGLOAD = Field.create("FUELINGLOAD", 72, FieldType.FLOAT).setBaseOffset(1024); - public static final Field IGNITIONLOAD = Field.create("IGNITIONLOAD", 76, FieldType.FLOAT).setBaseOffset(1024); - public static final Field VETABLEYAXIS = Field.create("VETABLEYAXIS", 80, FieldType.INT16).setScale(0.01).setBaseOffset(1024); - public static final Field ALIGNMENTFILL_AT_82 = Field.create("ALIGNMENTFILL_AT_82", 82, FieldType.INT8).setScale(1.0).setBaseOffset(1024); + public static final Field LUA_FUELADD = Field.create("LUA_FUELADD", 0, FieldType.FLOAT).setBaseOffset(1012); + public static final Field LUA_FUELMULT = Field.create("LUA_FUELMULT", 4, FieldType.FLOAT).setBaseOffset(1012); + public static final Field LUA_CLUTCHUPSTATE = Field.create("LUA_CLUTCHUPSTATE", 8, FieldType.BIT, 0).setBaseOffset(1012); + public static final Field LUA_BRAKEPEDALSTATE = Field.create("LUA_BRAKEPEDALSTATE", 8, FieldType.BIT, 1).setBaseOffset(1012); + public static final Field LUA_ACREQUESTSTATE = Field.create("LUA_ACREQUESTSTATE", 8, FieldType.BIT, 2).setBaseOffset(1012); + public static final Field LUA_LUADISABLEETB = Field.create("LUA_LUADISABLEETB", 8, FieldType.BIT, 3).setBaseOffset(1012); + public static final Field LUA_LUAIGNCUT = Field.create("LUA_LUAIGNCUT", 8, FieldType.BIT, 4).setBaseOffset(1012); + public static final Field SD_TCHARGE = Field.create("SD_TCHARGE", 12, FieldType.INT16).setScale(0.01).setBaseOffset(1012); + public static final Field SD_ALIGNMENTFILL_AT_2 = Field.create("SD_ALIGNMENTFILL_AT_2", 14, FieldType.INT8).setScale(1.0).setBaseOffset(1012); + public static final Field SD_TCHARGEK = Field.create("SD_TCHARGEK", 16, FieldType.FLOAT).setBaseOffset(1012); + public static final Field CRANKINGFUEL_COOLANTTEMPERATURECOEFFICIENT = Field.create("CRANKINGFUEL_COOLANTTEMPERATURECOEFFICIENT", 20, FieldType.FLOAT).setBaseOffset(1012); + public static final Field CRANKINGFUEL_TPSCOEFFICIENT = Field.create("CRANKINGFUEL_TPSCOEFFICIENT", 24, FieldType.FLOAT).setBaseOffset(1012); + public static final Field CRANKINGFUEL_DURATIONCOEFFICIENT = Field.create("CRANKINGFUEL_DURATIONCOEFFICIENT", 28, FieldType.FLOAT).setBaseOffset(1012); + public static final Field CRANKINGFUEL_FUEL = Field.create("CRANKINGFUEL_FUEL", 32, FieldType.INT16).setScale(0.01).setBaseOffset(1012); + public static final Field CRANKINGFUEL_ALIGNMENTFILL_AT_14 = Field.create("CRANKINGFUEL_ALIGNMENTFILL_AT_14", 34, FieldType.INT8).setScale(1.0).setBaseOffset(1012); + public static final Field BAROCORRECTION = Field.create("BAROCORRECTION", 36, FieldType.FLOAT).setBaseOffset(1012); + public static final Field HELLENBOARDID = Field.create("HELLENBOARDID", 40, FieldType.INT16).setScale(1.0).setBaseOffset(1012); + public static final Field ALIGNMENTFILL_AT_42 = Field.create("ALIGNMENTFILL_AT_42", 42, FieldType.INT8).setScale(1.0).setBaseOffset(1012); + public static final Field CLUTCHUPSTATE = Field.create("CLUTCHUPSTATE", 44, FieldType.BIT, 0).setBaseOffset(1012); + public static final Field CLUTCHDOWNSTATE = Field.create("CLUTCHDOWNSTATE", 44, FieldType.BIT, 1).setBaseOffset(1012); + public static final Field BRAKEPEDALSTATE = Field.create("BRAKEPEDALSTATE", 44, FieldType.BIT, 2).setBaseOffset(1012); + public static final Field STARTSTOPSTATE = Field.create("STARTSTOPSTATE", 44, FieldType.BIT, 3).setBaseOffset(1012); + public static final Field STARTSTOPSTATETOGGLECOUNTER = Field.create("STARTSTOPSTATETOGGLECOUNTER", 48, FieldType.INT).setScale(1.0).setBaseOffset(1012); + public static final Field EGTVALUE1 = Field.create("EGTVALUE1", 52, FieldType.FLOAT).setBaseOffset(1012); + public static final Field EGTVALUE2 = Field.create("EGTVALUE2", 56, FieldType.FLOAT).setBaseOffset(1012); + public static final Field DESIREDRPMLIMIT = Field.create("DESIREDRPMLIMIT", 60, FieldType.INT16).setScale(1.0).setBaseOffset(1012); + public static final Field ALIGNMENTFILL_AT_62 = Field.create("ALIGNMENTFILL_AT_62", 62, FieldType.INT8).setScale(1.0).setBaseOffset(1012); + public static final Field FUELINJECTIONCOUNTER = Field.create("FUELINJECTIONCOUNTER", 64, FieldType.INT).setScale(1.0).setBaseOffset(1012); + public static final Field SPARKCOUNTER = Field.create("SPARKCOUNTER", 68, FieldType.INT).setScale(1.0).setBaseOffset(1012); + public static final Field FUELINGLOAD = Field.create("FUELINGLOAD", 72, FieldType.FLOAT).setBaseOffset(1012); + public static final Field IGNITIONLOAD = Field.create("IGNITIONLOAD", 76, FieldType.FLOAT).setBaseOffset(1012); + public static final Field VETABLEYAXIS = Field.create("VETABLEYAXIS", 80, FieldType.INT16).setScale(0.01).setBaseOffset(1012); + public static final Field ALIGNMENTFILL_AT_82 = Field.create("ALIGNMENTFILL_AT_82", 82, FieldType.INT8).setScale(1.0).setBaseOffset(1012); public static final Field[] VALUES = { LUA_FUELADD, LUA_FUELMULT, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java index 729ecdf654..8ca7c06b31 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/FanControl.java @@ -3,13 +3,13 @@ import com.rusefi.config.*; public class FanControl { - public static final Field CRANKING = Field.create("CRANKING", 0, FieldType.BIT, 0).setBaseOffset(1012); - public static final Field NOTRUNNING = Field.create("NOTRUNNING", 0, FieldType.BIT, 1).setBaseOffset(1012); - public static final Field DISABLEDWHILEENGINESTOPPED = Field.create("DISABLEDWHILEENGINESTOPPED", 0, FieldType.BIT, 2).setBaseOffset(1012); - public static final Field BROKENCLT = Field.create("BROKENCLT", 0, FieldType.BIT, 3).setBaseOffset(1012); - public static final Field ENABLEDFORAC = Field.create("ENABLEDFORAC", 0, FieldType.BIT, 4).setBaseOffset(1012); - public static final Field HOT = Field.create("HOT", 0, FieldType.BIT, 5).setBaseOffset(1012); - public static final Field COLD = Field.create("COLD", 0, FieldType.BIT, 6).setBaseOffset(1012); + public static final Field CRANKING = Field.create("CRANKING", 0, FieldType.BIT, 0).setBaseOffset(1000); + public static final Field NOTRUNNING = Field.create("NOTRUNNING", 0, FieldType.BIT, 1).setBaseOffset(1000); + public static final Field DISABLEDWHILEENGINESTOPPED = Field.create("DISABLEDWHILEENGINESTOPPED", 0, FieldType.BIT, 2).setBaseOffset(1000); + public static final Field BROKENCLT = Field.create("BROKENCLT", 0, FieldType.BIT, 3).setBaseOffset(1000); + public static final Field ENABLEDFORAC = Field.create("ENABLEDFORAC", 0, FieldType.BIT, 4).setBaseOffset(1000); + public static final Field HOT = Field.create("HOT", 0, FieldType.BIT, 5).setBaseOffset(1000); + public static final Field COLD = Field.create("COLD", 0, FieldType.BIT, 6).setBaseOffset(1000); public static final Field[] VALUES = { CRANKING, NOTRUNNING, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java index 610eb026f4..db70975fbc 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java @@ -1181,10 +1181,10 @@ public class Fields { public static final int TS_RESPONSE_UNDERRUN = 0x80; public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI (FOME) master.2023.06.25.f407-discovery.2309894757"; + public static final String TS_SIGNATURE = "rusEFI (FOME) master.2023.07.09.f407-discovery.4223705144"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final char TS_TEST_COMMAND = 't'; - public static final int TS_TOTAL_OUTPUT_SIZE = 1372; + public static final int TS_TOTAL_OUTPUT_SIZE = 1376; public static final String TS_TRIGGER_SCOPE_CHANNEL_1_NAME = "Channel 1"; public static final String TS_TRIGGER_SCOPE_CHANNEL_2_NAME = "Channel 2"; public static final int TS_TRIGGER_SCOPE_DISABLE = 5; @@ -1561,7 +1561,7 @@ public class Fields { public static final Field STARTCRANKINGDURATION = Field.create("STARTCRANKINGDURATION", 746, FieldType.INT16).setScale(1.0).setBaseOffset(0); public static final Field LAMBDAPROTECTIONMINTPS = Field.create("LAMBDAPROTECTIONMINTPS", 748, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field LAMBDAPROTECTIONTIMEOUT = Field.create("LAMBDAPROTECTIONTIMEOUT", 749, FieldType.INT8).setScale(0.1).setBaseOffset(0); - public static final Field UNUSED748 = Field.create("UNUSED748", 750, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field LAMBDAPROTECTIONRESTORERPM = Field.create("LAMBDAPROTECTIONRESTORERPM", 750, FieldType.INT8).setScale(100.0).setBaseOffset(0); public static final Field ACRELAYPINMODE = Field.create("ACRELAYPINMODE", 751, FieldType.INT8, pin_output_mode_e).setScale(1.0).setBaseOffset(0); public static final Field ACRELAYPIN = Field.create("ACRELAYPIN", 752, FieldType.INT16, output_pin_e).setScale(1.0).setBaseOffset(0); public static final String[] maf_sensor_type_e = {"v0", "v1", "v2", "v3"}; @@ -1882,7 +1882,8 @@ public class Fields { public static final Field CAN2OPENBLT = Field.create("CAN2OPENBLT", 1436, FieldType.BIT, 2).setBaseOffset(0); public static final Field INJECTORFLOWASMASSFLOW = Field.create("INJECTORFLOWASMASSFLOW", 1436, FieldType.BIT, 3).setBaseOffset(0); public static final Field BENCHTESTOFFTIME = Field.create("BENCHTESTOFFTIME", 1440, FieldType.INT8).setScale(5.0).setBaseOffset(0); - public static final Field UNUSED1445 = Field.create("UNUSED1445", 1441, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field LAMBDAPROTECTIONRESTORETPS = Field.create("LAMBDAPROTECTIONRESTORETPS", 1441, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field LAMBDAPROTECTIONRESTORELOAD = Field.create("LAMBDAPROTECTIONRESTORELOAD", 1442, FieldType.INT8).setScale(10.0).setBaseOffset(0); public static final Field LAUNCHACTIVATEPINMODE = Field.create("LAUNCHACTIVATEPINMODE", 1443, FieldType.INT8, pin_input_mode_e).setScale(1.0).setBaseOffset(0); public static final Field CAN2TXPIN = Field.create("CAN2TXPIN", 1444, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); public static final Field CAN2RXPIN = Field.create("CAN2RXPIN", 1446, FieldType.INT16, Gpio).setScale(1.0).setBaseOffset(0); @@ -2926,7 +2927,7 @@ public class Fields { STARTCRANKINGDURATION, LAMBDAPROTECTIONMINTPS, LAMBDAPROTECTIONTIMEOUT, - UNUSED748, + LAMBDAPROTECTIONRESTORERPM, ACRELAYPINMODE, ACRELAYPIN, MAFSENSORTYPE, @@ -3240,7 +3241,8 @@ public class Fields { CAN2OPENBLT, INJECTORFLOWASMASSFLOW, BENCHTESTOFFTIME, - UNUSED1445, + LAMBDAPROTECTIONRESTORETPS, + LAMBDAPROTECTIONRESTORELOAD, LAUNCHACTIVATEPINMODE, CAN2TXPIN, CAN2RXPIN, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java b/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java index 3aecbd5d0e..1ff00d0b37 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/FuelPump.java @@ -3,10 +3,10 @@ import com.rusefi.config.*; public class FuelPump { - public static final Field ISPRIME = Field.create("ISPRIME", 0, FieldType.BIT, 0).setBaseOffset(1016); - public static final Field ENGINETURNEDRECENTLY = Field.create("ENGINETURNEDRECENTLY", 0, FieldType.BIT, 1).setBaseOffset(1016); - public static final Field ISFUELPUMPON = Field.create("ISFUELPUMPON", 0, FieldType.BIT, 2).setBaseOffset(1016); - public static final Field IGNITIONON = Field.create("IGNITIONON", 0, FieldType.BIT, 3).setBaseOffset(1016); + public static final Field ISPRIME = Field.create("ISPRIME", 0, FieldType.BIT, 0).setBaseOffset(1004); + public static final Field ENGINETURNEDRECENTLY = Field.create("ENGINETURNEDRECENTLY", 0, FieldType.BIT, 1).setBaseOffset(1004); + public static final Field ISFUELPUMPON = Field.create("ISFUELPUMPON", 0, FieldType.BIT, 2).setBaseOffset(1004); + public static final Field IGNITIONON = Field.create("IGNITIONON", 0, FieldType.BIT, 3).setBaseOffset(1004); public static final Field[] VALUES = { ISPRIME, ENGINETURNEDRECENTLY, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java b/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java index 58e9ac575a..90d3914598 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/HighPressureFuelPump.java @@ -3,14 +3,14 @@ import com.rusefi.config.*; public class HighPressureFuelPump { - public static final Field M_REQUESTED_PUMP = Field.create("M_REQUESTED_PUMP", 0, FieldType.FLOAT).setBaseOffset(920); - public static final Field FUEL_REQUESTED_PERCENT = Field.create("FUEL_REQUESTED_PERCENT", 4, FieldType.FLOAT).setBaseOffset(920); - public static final Field FUEL_REQUESTED_PERCENT_PI = Field.create("FUEL_REQUESTED_PERCENT_PI", 8, FieldType.FLOAT).setBaseOffset(920); - public static final Field NOVALVE = Field.create("NOVALVE", 12, FieldType.BIT, 0).setBaseOffset(920); - public static final Field ANGLEABOVEMIN = Field.create("ANGLEABOVEMIN", 12, FieldType.BIT, 1).setBaseOffset(920); - public static final Field ISHPFPINACTIVE = Field.create("ISHPFPINACTIVE", 12, FieldType.BIT, 2).setBaseOffset(920); - public static final Field NEXTLOBE = Field.create("NEXTLOBE", 16, FieldType.FLOAT).setBaseOffset(920); - public static final Field DI_NEXTSTART = Field.create("DI_NEXTSTART", 20, FieldType.FLOAT).setBaseOffset(920); + public static final Field M_REQUESTED_PUMP = Field.create("M_REQUESTED_PUMP", 0, FieldType.FLOAT).setBaseOffset(908); + public static final Field FUEL_REQUESTED_PERCENT = Field.create("FUEL_REQUESTED_PERCENT", 4, FieldType.FLOAT).setBaseOffset(908); + public static final Field FUEL_REQUESTED_PERCENT_PI = Field.create("FUEL_REQUESTED_PERCENT_PI", 8, FieldType.FLOAT).setBaseOffset(908); + public static final Field NOVALVE = Field.create("NOVALVE", 12, FieldType.BIT, 0).setBaseOffset(908); + public static final Field ANGLEABOVEMIN = Field.create("ANGLEABOVEMIN", 12, FieldType.BIT, 1).setBaseOffset(908); + public static final Field ISHPFPINACTIVE = Field.create("ISHPFPINACTIVE", 12, FieldType.BIT, 2).setBaseOffset(908); + public static final Field NEXTLOBE = Field.create("NEXTLOBE", 16, FieldType.FLOAT).setBaseOffset(908); + public static final Field DI_NEXTSTART = Field.create("DI_NEXTSTART", 20, FieldType.FLOAT).setBaseOffset(908); public static final Field[] VALUES = { M_REQUESTED_PUMP, FUEL_REQUESTED_PERCENT, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java b/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java index 1a0c4331a5..8c8c76061f 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/IdleState.java @@ -155,33 +155,33 @@ public class IdleState { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field IDLESTATE = Field.create("IDLESTATE", 0, FieldType.INT).setScale(1.0).setBaseOffset(1240); - public static final Field CURRENTIDLEPOSITION = Field.create("CURRENTIDLEPOSITION", 4, FieldType.FLOAT).setBaseOffset(1240); - public static final Field BASEIDLEPOSITION = Field.create("BASEIDLEPOSITION", 8, FieldType.FLOAT).setBaseOffset(1240); - public static final Field IDLECLOSEDLOOP = Field.create("IDLECLOSEDLOOP", 12, FieldType.FLOAT).setBaseOffset(1240); - public static final Field IACBYTPSTAPER = Field.create("IACBYTPSTAPER", 16, FieldType.FLOAT).setBaseOffset(1240); - public static final Field THROTTLEPEDALUPSTATE = Field.create("THROTTLEPEDALUPSTATE", 20, FieldType.INT).setScale(1.0).setBaseOffset(1240); - public static final Field MIGHTRESETPID = Field.create("MIGHTRESETPID", 24, FieldType.BIT, 0).setBaseOffset(1240); - public static final Field SHOULDRESETPID = Field.create("SHOULDRESETPID", 24, FieldType.BIT, 1).setBaseOffset(1240); - public static final Field WASRESETPID = Field.create("WASRESETPID", 24, FieldType.BIT, 2).setBaseOffset(1240); - public static final Field MUSTRESETPID = Field.create("MUSTRESETPID", 24, FieldType.BIT, 3).setBaseOffset(1240); - public static final Field ISCRANKING = Field.create("ISCRANKING", 24, FieldType.BIT, 4).setBaseOffset(1240); - public static final Field ISIACTABLEFORCOASTING = Field.create("ISIACTABLEFORCOASTING", 24, FieldType.BIT, 5).setBaseOffset(1240); - public static final Field NOTIDLING = Field.create("NOTIDLING", 24, FieldType.BIT, 6).setBaseOffset(1240); - public static final Field NEEDRESET = Field.create("NEEDRESET", 24, FieldType.BIT, 7).setBaseOffset(1240); - public static final Field ISINDEADZONE = Field.create("ISINDEADZONE", 24, FieldType.BIT, 8).setBaseOffset(1240); - public static final Field ISBLIPPING = Field.create("ISBLIPPING", 24, FieldType.BIT, 9).setBaseOffset(1240); - public static final Field LOOKSLIKERUNNING = Field.create("LOOKSLIKERUNNING", 24, FieldType.BIT, 10).setBaseOffset(1240); - public static final Field LOOKSLIKECOASTING = Field.create("LOOKSLIKECOASTING", 24, FieldType.BIT, 11).setBaseOffset(1240); - public static final Field LOOKSLIKECRANKTOIDLE = Field.create("LOOKSLIKECRANKTOIDLE", 24, FieldType.BIT, 12).setBaseOffset(1240); - public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 24, FieldType.BIT, 13).setBaseOffset(1240); - public static final Field ISIDLECOASTING = Field.create("ISIDLECOASTING", 24, FieldType.BIT, 14).setBaseOffset(1240); - public static final Field ISIDLECLOSEDLOOP = Field.create("ISIDLECLOSEDLOOP", 24, FieldType.BIT, 15).setBaseOffset(1240); - public static final Field IDLETARGET = Field.create("IDLETARGET", 28, FieldType.INT).setScale(1.0).setBaseOffset(1240); - public static final Field TARGETRPMBYCLT = Field.create("TARGETRPMBYCLT", 32, FieldType.INT).setScale(1.0).setBaseOffset(1240); - public static final Field TARGETRPMACBUMP = Field.create("TARGETRPMACBUMP", 36, FieldType.INT).setScale(1.0).setBaseOffset(1240); - public static final Field IACBYRPMTAPER = Field.create("IACBYRPMTAPER", 40, FieldType.FLOAT).setBaseOffset(1240); - public static final Field LUAADD = Field.create("LUAADD", 44, FieldType.FLOAT).setBaseOffset(1240); + public static final Field IDLESTATE = Field.create("IDLESTATE", 0, FieldType.INT).setScale(1.0).setBaseOffset(1228); + public static final Field CURRENTIDLEPOSITION = Field.create("CURRENTIDLEPOSITION", 4, FieldType.FLOAT).setBaseOffset(1228); + public static final Field BASEIDLEPOSITION = Field.create("BASEIDLEPOSITION", 8, FieldType.FLOAT).setBaseOffset(1228); + public static final Field IDLECLOSEDLOOP = Field.create("IDLECLOSEDLOOP", 12, FieldType.FLOAT).setBaseOffset(1228); + public static final Field IACBYTPSTAPER = Field.create("IACBYTPSTAPER", 16, FieldType.FLOAT).setBaseOffset(1228); + public static final Field THROTTLEPEDALUPSTATE = Field.create("THROTTLEPEDALUPSTATE", 20, FieldType.INT).setScale(1.0).setBaseOffset(1228); + public static final Field MIGHTRESETPID = Field.create("MIGHTRESETPID", 24, FieldType.BIT, 0).setBaseOffset(1228); + public static final Field SHOULDRESETPID = Field.create("SHOULDRESETPID", 24, FieldType.BIT, 1).setBaseOffset(1228); + public static final Field WASRESETPID = Field.create("WASRESETPID", 24, FieldType.BIT, 2).setBaseOffset(1228); + public static final Field MUSTRESETPID = Field.create("MUSTRESETPID", 24, FieldType.BIT, 3).setBaseOffset(1228); + public static final Field ISCRANKING = Field.create("ISCRANKING", 24, FieldType.BIT, 4).setBaseOffset(1228); + public static final Field ISIACTABLEFORCOASTING = Field.create("ISIACTABLEFORCOASTING", 24, FieldType.BIT, 5).setBaseOffset(1228); + public static final Field NOTIDLING = Field.create("NOTIDLING", 24, FieldType.BIT, 6).setBaseOffset(1228); + public static final Field NEEDRESET = Field.create("NEEDRESET", 24, FieldType.BIT, 7).setBaseOffset(1228); + public static final Field ISINDEADZONE = Field.create("ISINDEADZONE", 24, FieldType.BIT, 8).setBaseOffset(1228); + public static final Field ISBLIPPING = Field.create("ISBLIPPING", 24, FieldType.BIT, 9).setBaseOffset(1228); + public static final Field LOOKSLIKERUNNING = Field.create("LOOKSLIKERUNNING", 24, FieldType.BIT, 10).setBaseOffset(1228); + public static final Field LOOKSLIKECOASTING = Field.create("LOOKSLIKECOASTING", 24, FieldType.BIT, 11).setBaseOffset(1228); + public static final Field LOOKSLIKECRANKTOIDLE = Field.create("LOOKSLIKECRANKTOIDLE", 24, FieldType.BIT, 12).setBaseOffset(1228); + public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 24, FieldType.BIT, 13).setBaseOffset(1228); + public static final Field ISIDLECOASTING = Field.create("ISIDLECOASTING", 24, FieldType.BIT, 14).setBaseOffset(1228); + public static final Field ISIDLECLOSEDLOOP = Field.create("ISIDLECLOSEDLOOP", 24, FieldType.BIT, 15).setBaseOffset(1228); + public static final Field IDLETARGET = Field.create("IDLETARGET", 28, FieldType.INT).setScale(1.0).setBaseOffset(1228); + public static final Field TARGETRPMBYCLT = Field.create("TARGETRPMBYCLT", 32, FieldType.INT).setScale(1.0).setBaseOffset(1228); + public static final Field TARGETRPMACBUMP = Field.create("TARGETRPMACBUMP", 36, FieldType.INT).setScale(1.0).setBaseOffset(1228); + public static final Field IACBYRPMTAPER = Field.create("IACBYRPMTAPER", 40, FieldType.FLOAT).setBaseOffset(1228); + public static final Field LUAADD = Field.create("LUAADD", 44, FieldType.FLOAT).setBaseOffset(1228); public static final Field[] VALUES = { IDLESTATE, CURRENTIDLEPOSITION, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java b/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java index d9cae7b951..fdd7df3dd8 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/InjectorModel.java @@ -3,9 +3,161 @@ import com.rusefi.config.*; public class InjectorModel { - public static final Field M_DEADTIME = Field.create("M_DEADTIME", 0, FieldType.FLOAT).setBaseOffset(944); - public static final Field PRESSUREDELTA = Field.create("PRESSUREDELTA", 4, FieldType.FLOAT).setBaseOffset(944); - public static final Field PRESSURERATIO = Field.create("PRESSURERATIO", 8, FieldType.FLOAT).setBaseOffset(944); + public static final int BANKS_COUNT = 2; + public static final int BOOST_BLEND_COUNT = 2; + public static final int CAM_INPUTS_COUNT = 4; + public static final int CAMS_PER_BANK = 2; + public static final int EGT_CHANNEL_COUNT = 8; + public static final String GAUGE_CATEGORY_BOOST_CONTROL = "Boost Control"; + public static final String GAUGE_CATEGORY_ETB = "ETB more"; + public static final String GAUGE_CATEGORY_FUEL_MATH = "Fuel: math"; + public static final String GAUGE_CATEGORY_TIMING = "Timing"; + public static final String GAUGE_COIL_DWELL_TIME = "Ign: Dwell"; + public static final String GAUGE_NAME_ACCEL_ROLL = "Acceleration: Roll"; + public static final String GAUGE_NAME_ACCEL_X = "Acceleration: X"; + public static final String GAUGE_NAME_ACCEL_Y = "Acceleration: Y"; + public static final String GAUGE_NAME_ACCEL_YAW = "Acceleration: Yaw"; + public static final String GAUGE_NAME_ACCEL_Z = "Acceleration: Z"; + public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; + public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; + public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "Air: Flow estimate"; + public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF"; + public static final String GAUGE_NAME_AIR_FLOW_MEASURED_2 = "MAF #2"; + public static final String GAUGE_NAME_AIR_MASS = "Air: Cylinder airmass"; + public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux linear #1"; + public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux linear #2"; + public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; + public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; + public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; + public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost: Closed loop"; + public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost: Open loop"; + public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost: Output"; + public static final String GAUGE_NAME_BOOST_TARGET = "Boost: Target"; + public static final String GAUGE_NAME_CLT = "CLT"; + public static final String GAUGE_NAME_CURRENT_GEAR = "Current Gear"; + public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; + public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; + public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; + public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; + public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; + public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; + public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; + public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; + public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; + public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; + public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; + public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; + public static final String GAUGE_NAME_DESIRED_GEAR = "TCU: Desired Gear"; + public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; + public static final String GAUGE_NAME_DWELL_DUTY = "Ign: Coil duty cycle"; + public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; + public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; + public static final String GAUGE_NAME_ETB_DUTY = "ETB: Duty"; + public static final String GAUGE_NAME_ETB_ERROR = "ETB: position error"; + public static final String GAUGE_NAME_ETB_TARGET = "ETB: position target"; + public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; + public static final String GAUGE_NAME_FUEL_BARO_CORR = "Fuel: Barometric pressure mult"; + public static final String GAUGE_NAME_FUEL_BASE = "Fuel: base cycle mass"; + public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "Fuel: Estimated charge temperature"; + public static final String GAUGE_NAME_FUEL_CLT_CORR = "Fuel: CLT correction"; + public static final String GAUGE_NAME_FUEL_CONSUMPTION = "Fuel: Total consumed"; + public static final String GAUGE_NAME_FUEL_CRANKING = "Fuel: cranking"; + public static final String GAUGE_NAME_FUEL_FLOW = "Fuel: Flow rate"; + public static final String GAUGE_NAME_FUEL_IAT_CORR = "Fuel: IAT correction"; + public static final String GAUGE_NAME_FUEL_INJ_DUTY = "Fuel: injector duty cycle"; + public static final String GAUGE_NAME_FUEL_INJECTION_TIMING = "Fuel: Injection timing SOI"; + public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "Fuel: Last inj pulse width"; + public static final String GAUGE_NAME_FUEL_LEVEL = "Fuel level"; + public static final String GAUGE_NAME_FUEL_LOAD = "Fuel: Load"; + public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; + public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; + public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; + public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; + public static final String GAUGE_NAME_FUEL_RUNNING = "Fuel: running"; + public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "Fuel: TPS AE add fuel ms"; + public static final String GAUGE_NAME_FUEL_TRIM = "Fuel: fuel trim"; + public static final String GAUGE_NAME_FUEL_TRIM_2 = "Fuel: fuel trim 2"; + public static final String GAUGE_NAME_FUEL_VE = "Fuel: VE"; + public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "Fuel: wall amount"; + public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "Fuel: wall correction"; + public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; + public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; + public static final String GAUGE_NAME_IAC = "Idle: Position"; + public static final String GAUGE_NAME_IAT = "IAT"; + public static final String GAUGE_NAME_IDLE_POSITION = "Idle: Position sensor"; + public static final String GAUGE_NAME_IGNITION_LOAD = "Ign: Load"; + public static final String GAUGE_NAME_IGNITION_MODE = "Ign: Mode"; + public static final String GAUGE_NAME_INJECTION_MODE = "Fuel: Injection mode"; + public static final String GAUGE_NAME_INJECTOR_LAG = "Fuel: injector lag"; + public static final String GAUGE_NAME_ISS = "TCU: Input Shaft Speed"; + public static final String GAUGE_NAME_KNOCK_COUNTER = "Knock: Count"; + public static final String GAUGE_NAME_KNOCK_LEVEL = "Knock: Current level"; + public static final String GAUGE_NAME_KNOCK_RETARD = "Knock: Retard"; + public static final String GAUGE_NAME_LAMBDA = "Lambda"; + public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; + public static final String GAUGE_NAME_LAST_ERROR = "Last error"; + public static final String GAUGE_NAME_MAF = "MAF"; + public static final String GAUGE_NAME_MAP = "MAP"; + public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; + public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; + public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; + public static final String GAUGE_NAME_RPM = "RPM"; + public static final String GAUGE_NAME_TARGET_AFR = "Fuel: target AFR"; + public static final String GAUGE_NAME_TARGET_LAMBDA = "Fuel: target lambda"; + public static final String GAUGE_NAME_TC_RATIO = "TCU: Torque Converter Ratio"; + public static final String GAUGE_NAME_TCHARGE = "Air: SD tCharge"; + public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; + public static final String GAUGE_NAME_TIME = "Time"; + public static final String GAUGE_NAME_TIMING_ADVANCE = "Ign: Timing Base"; + public static final String GAUGE_NAME_TPS = "TPS"; + public static final String GAUGE_NAME_TPS2 = "TPS2"; + public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; + public static final String GAUGE_NAME_TRG_GAP = "Trigger Sync Latest Ratio"; + public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; + public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; + public static final String GAUGE_NAME_UPTIME = "Uptime"; + public static final String GAUGE_NAME_VBAT = "VBatt"; + public static final String GAUGE_NAME_VERSION = "firmware"; + public static final String GAUGE_NAME_VVS = "Vehicle Speed"; + public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; + public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; + public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; + public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; + public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; + public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; + public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; + public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; + public static final String GAUGE_NAME_WARNING_COUNTER = "Warning: counter"; + public static final String GAUGE_NAME_WARNING_LAST = "Warning: last"; + public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; + public static final int GEARS_COUNT = 8; + public static final int IGN_BLEND_COUNT = 4; + public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; + public static final String INDICATOR_NAME_BRAKE_DOWN = "Brake switch"; + public static final String INDICATOR_NAME_CLUTCH_DOWN = "Clutch: down"; + public static final String INDICATOR_NAME_CLUTCH_UP = "Clutch: up"; + public static final int LUA_ANALOG_INPUT_COUNT = 8; + public static final int LUA_GAUGE_COUNT = 2; + public static final int PACK_ADD_TEMPERATURE = 40; + public static final int PACK_MULT_AFR = 1000; + public static final int PACK_MULT_AFR_CFG = 10; + public static final int PACK_MULT_ANGLE = 50; + public static final int PACK_MULT_FUEL_FLOW = 200; + public static final int PACK_MULT_FUEL_MASS = 100; + public static final int PACK_MULT_HIGH_PRESSURE = 10; + public static final int PACK_MULT_LAMBDA = 10000; + public static final int PACK_MULT_LAMBDA_CFG = 147; + public static final int PACK_MULT_MASS_FLOW = 10; + public static final int PACK_MULT_MS = 300; + public static final int PACK_MULT_PERCENT = 100; + public static final int PACK_MULT_PRESSURE = 30; + public static final int PACK_MULT_TEMPERATURE = 100; + public static final int PACK_MULT_VOLTAGE = 1000; + public static final int TPS_2_BYTE_PACKING_MULT = 100; + public static final int VE_BLEND_COUNT = 4; + public static final Field M_DEADTIME = Field.create("M_DEADTIME", 0, FieldType.FLOAT).setBaseOffset(932); + public static final Field PRESSUREDELTA = Field.create("PRESSUREDELTA", 4, FieldType.FLOAT).setBaseOffset(932); + public static final Field PRESSURERATIO = Field.create("PRESSURERATIO", 8, FieldType.FLOAT).setBaseOffset(932); public static final Field[] VALUES = { M_DEADTIME, PRESSUREDELTA, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java b/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java index 1e9f86144a..c51b9631c5 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/LaunchControl.java @@ -3,17 +3,17 @@ import com.rusefi.config.*; public class LaunchControl { - public static final Field RETARDTHRESHOLDRPM = Field.create("RETARDTHRESHOLDRPM", 0, FieldType.INT).setScale(1.0).setBaseOffset(956); - public static final Field COMBINEDCONDITIONS = Field.create("COMBINEDCONDITIONS", 4, FieldType.BIT, 0).setBaseOffset(956); - public static final Field LAUNCHACTIVATEPINSTATE = Field.create("LAUNCHACTIVATEPINSTATE", 4, FieldType.BIT, 1).setBaseOffset(956); - public static final Field ISLAUNCHCONDITION = Field.create("ISLAUNCHCONDITION", 4, FieldType.BIT, 2).setBaseOffset(956); - public static final Field ISSWITCHACTIVATED = Field.create("ISSWITCHACTIVATED", 4, FieldType.BIT, 3).setBaseOffset(956); - public static final Field ISCLUTCHACTIVATED = Field.create("ISCLUTCHACTIVATED", 4, FieldType.BIT, 4).setBaseOffset(956); - public static final Field ISVALIDINPUTPIN = Field.create("ISVALIDINPUTPIN", 4, FieldType.BIT, 5).setBaseOffset(956); - public static final Field ACTIVATESWITCHCONDITION = Field.create("ACTIVATESWITCHCONDITION", 4, FieldType.BIT, 6).setBaseOffset(956); - public static final Field RPMCONDITION = Field.create("RPMCONDITION", 4, FieldType.BIT, 7).setBaseOffset(956); - public static final Field SPEEDCONDITION = Field.create("SPEEDCONDITION", 4, FieldType.BIT, 8).setBaseOffset(956); - public static final Field TPSCONDITION = Field.create("TPSCONDITION", 4, FieldType.BIT, 9).setBaseOffset(956); + public static final Field RETARDTHRESHOLDRPM = Field.create("RETARDTHRESHOLDRPM", 0, FieldType.INT).setScale(1.0).setBaseOffset(944); + public static final Field COMBINEDCONDITIONS = Field.create("COMBINEDCONDITIONS", 4, FieldType.BIT, 0).setBaseOffset(944); + public static final Field LAUNCHACTIVATEPINSTATE = Field.create("LAUNCHACTIVATEPINSTATE", 4, FieldType.BIT, 1).setBaseOffset(944); + public static final Field ISLAUNCHCONDITION = Field.create("ISLAUNCHCONDITION", 4, FieldType.BIT, 2).setBaseOffset(944); + public static final Field ISSWITCHACTIVATED = Field.create("ISSWITCHACTIVATED", 4, FieldType.BIT, 3).setBaseOffset(944); + public static final Field ISCLUTCHACTIVATED = Field.create("ISCLUTCHACTIVATED", 4, FieldType.BIT, 4).setBaseOffset(944); + public static final Field ISVALIDINPUTPIN = Field.create("ISVALIDINPUTPIN", 4, FieldType.BIT, 5).setBaseOffset(944); + public static final Field ACTIVATESWITCHCONDITION = Field.create("ACTIVATESWITCHCONDITION", 4, FieldType.BIT, 6).setBaseOffset(944); + public static final Field RPMCONDITION = Field.create("RPMCONDITION", 4, FieldType.BIT, 7).setBaseOffset(944); + public static final Field SPEEDCONDITION = Field.create("SPEEDCONDITION", 4, FieldType.BIT, 8).setBaseOffset(944); + public static final Field TPSCONDITION = Field.create("TPSCONDITION", 4, FieldType.BIT, 9).setBaseOffset(944); public static final Field[] VALUES = { RETARDTHRESHOLDRPM, COMBINEDCONDITIONS, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java b/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java index f291ce4173..50f1b29627 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/MainRelay.java @@ -3,10 +3,10 @@ import com.rusefi.config.*; public class MainRelay { - public static final Field ISBENCHTEST = Field.create("ISBENCHTEST", 0, FieldType.BIT, 0).setBaseOffset(1020); - public static final Field HASIGNITIONVOLTAGE = Field.create("HASIGNITIONVOLTAGE", 0, FieldType.BIT, 1).setBaseOffset(1020); - public static final Field MAINRELAYSTATE = Field.create("MAINRELAYSTATE", 0, FieldType.BIT, 2).setBaseOffset(1020); - public static final Field DELAYEDSHUTOFFREQUESTED = Field.create("DELAYEDSHUTOFFREQUESTED", 0, FieldType.BIT, 3).setBaseOffset(1020); + public static final Field ISBENCHTEST = Field.create("ISBENCHTEST", 0, FieldType.BIT, 0).setBaseOffset(1008); + public static final Field HASIGNITIONVOLTAGE = Field.create("HASIGNITIONVOLTAGE", 0, FieldType.BIT, 1).setBaseOffset(1008); + public static final Field MAINRELAYSTATE = Field.create("MAINRELAYSTATE", 0, FieldType.BIT, 2).setBaseOffset(1008); + public static final Field DELAYEDSHUTOFFREQUESTED = Field.create("DELAYEDSHUTOFFREQUESTED", 0, FieldType.BIT, 3).setBaseOffset(1008); public static final Field[] VALUES = { ISBENCHTEST, HASIGNITIONVOLTAGE, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java b/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java index c4ee188854..1d9d1e7770 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/SentState.java @@ -155,9 +155,9 @@ public class SentState { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field VALUE0 = Field.create("VALUE0", 0, FieldType.INT16).setScale(1.0).setBaseOffset(1364); - public static final Field VALUE1 = Field.create("VALUE1", 2, FieldType.INT16).setScale(1.0).setBaseOffset(1364); - public static final Field ERRORRATE = Field.create("ERRORRATE", 4, FieldType.FLOAT).setBaseOffset(1364); + public static final Field VALUE0 = Field.create("VALUE0", 0, FieldType.INT16).setScale(1.0).setBaseOffset(1352); + public static final Field VALUE1 = Field.create("VALUE1", 2, FieldType.INT16).setScale(1.0).setBaseOffset(1352); + public static final Field ERRORRATE = Field.create("ERRORRATE", 4, FieldType.FLOAT).setBaseOffset(1352); public static final Field[] VALUES = { VALUE0, VALUE1, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/ThrottleModel.java b/java_console/models/src/main/java/com/rusefi/config/generated/ThrottleModel.java index 6711c5c244..2a2c035280 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/ThrottleModel.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/ThrottleModel.java @@ -3,10 +3,10 @@ import com.rusefi.config.*; public class ThrottleModel { - public static final Field THROTTLEUSEWOTMODEL = Field.create("THROTTLEUSEWOTMODEL", 0, FieldType.BIT, 0).setBaseOffset(908); - public static final Field THROTTLEMODELCROSSOVERANGLE = Field.create("THROTTLEMODELCROSSOVERANGLE", 4, FieldType.INT16).setScale(0.01).setBaseOffset(908); - public static final Field ALIGNMENTFILL_AT_6 = Field.create("ALIGNMENTFILL_AT_6", 6, FieldType.INT8).setScale(1.0).setBaseOffset(908); - public static final Field THROTTLEESTIMATEDFLOW = Field.create("THROTTLEESTIMATEDFLOW", 8, FieldType.FLOAT).setBaseOffset(908); + public static final Field THROTTLEUSEWOTMODEL = Field.create("THROTTLEUSEWOTMODEL", 0, FieldType.BIT, 0).setBaseOffset(1360); + public static final Field THROTTLEMODELCROSSOVERANGLE = Field.create("THROTTLEMODELCROSSOVERANGLE", 4, FieldType.INT16).setScale(0.01).setBaseOffset(1360); + public static final Field ALIGNMENTFILL_AT_6 = Field.create("ALIGNMENTFILL_AT_6", 6, FieldType.INT8).setScale(1.0).setBaseOffset(1360); + public static final Field THROTTLEESTIMATEDFLOW = Field.create("THROTTLEESTIMATEDFLOW", 8, FieldType.FLOAT).setBaseOffset(1360); public static final Field[] VALUES = { THROTTLEUSEWOTMODEL, THROTTLEMODELCROSSOVERANGLE, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java b/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java index e1a2c6f296..c58f3f8de9 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TpsAccelState.java @@ -155,23 +155,23 @@ public class TpsAccelState { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field TPSFROM = Field.create("TPSFROM", 0, FieldType.FLOAT).setBaseOffset(1108); - public static final Field TPSTO = Field.create("TPSTO", 4, FieldType.FLOAT).setBaseOffset(1108); - public static final Field DELTATPS = Field.create("DELTATPS", 8, FieldType.FLOAT).setBaseOffset(1108); - public static final Field EXTRAFUEL = Field.create("EXTRAFUEL", 12, FieldType.FLOAT).setBaseOffset(1108); - public static final Field VALUEFROMTABLE = Field.create("VALUEFROMTABLE", 16, FieldType.FLOAT).setBaseOffset(1108); - public static final Field ISABOVEACCELTHRESHOLD = Field.create("ISABOVEACCELTHRESHOLD", 20, FieldType.BIT, 0).setBaseOffset(1108); - public static final Field ISBELOWDECELTHRESHOLD = Field.create("ISBELOWDECELTHRESHOLD", 20, FieldType.BIT, 1).setBaseOffset(1108); - public static final Field ISTIMETORESETACCUMULATOR = Field.create("ISTIMETORESETACCUMULATOR", 20, FieldType.BIT, 2).setBaseOffset(1108); - public static final Field ISFRACTIONALENRICHMENT = Field.create("ISFRACTIONALENRICHMENT", 20, FieldType.BIT, 3).setBaseOffset(1108); - public static final Field BELOWEPSILON = Field.create("BELOWEPSILON", 20, FieldType.BIT, 4).setBaseOffset(1108); - public static final Field TOOSHORT = Field.create("TOOSHORT", 20, FieldType.BIT, 5).setBaseOffset(1108); - public static final Field FRACTIONALINJFUEL = Field.create("FRACTIONALINJFUEL", 24, FieldType.FLOAT).setBaseOffset(1108); - public static final Field ACCUMULATEDVALUE = Field.create("ACCUMULATEDVALUE", 28, FieldType.FLOAT).setBaseOffset(1108); - public static final Field MAXEXTRAPERCYCLE = Field.create("MAXEXTRAPERCYCLE", 32, FieldType.FLOAT).setBaseOffset(1108); - public static final Field MAXEXTRAPERPERIOD = Field.create("MAXEXTRAPERPERIOD", 36, FieldType.FLOAT).setBaseOffset(1108); - public static final Field MAXINJECTEDPERPERIOD = Field.create("MAXINJECTEDPERPERIOD", 40, FieldType.FLOAT).setBaseOffset(1108); - public static final Field CYCLECNT = Field.create("CYCLECNT", 44, FieldType.INT).setScale(1.0).setBaseOffset(1108); + public static final Field TPSFROM = Field.create("TPSFROM", 0, FieldType.FLOAT).setBaseOffset(1096); + public static final Field TPSTO = Field.create("TPSTO", 4, FieldType.FLOAT).setBaseOffset(1096); + public static final Field DELTATPS = Field.create("DELTATPS", 8, FieldType.FLOAT).setBaseOffset(1096); + public static final Field EXTRAFUEL = Field.create("EXTRAFUEL", 12, FieldType.FLOAT).setBaseOffset(1096); + public static final Field VALUEFROMTABLE = Field.create("VALUEFROMTABLE", 16, FieldType.FLOAT).setBaseOffset(1096); + public static final Field ISABOVEACCELTHRESHOLD = Field.create("ISABOVEACCELTHRESHOLD", 20, FieldType.BIT, 0).setBaseOffset(1096); + public static final Field ISBELOWDECELTHRESHOLD = Field.create("ISBELOWDECELTHRESHOLD", 20, FieldType.BIT, 1).setBaseOffset(1096); + public static final Field ISTIMETORESETACCUMULATOR = Field.create("ISTIMETORESETACCUMULATOR", 20, FieldType.BIT, 2).setBaseOffset(1096); + public static final Field ISFRACTIONALENRICHMENT = Field.create("ISFRACTIONALENRICHMENT", 20, FieldType.BIT, 3).setBaseOffset(1096); + public static final Field BELOWEPSILON = Field.create("BELOWEPSILON", 20, FieldType.BIT, 4).setBaseOffset(1096); + public static final Field TOOSHORT = Field.create("TOOSHORT", 20, FieldType.BIT, 5).setBaseOffset(1096); + public static final Field FRACTIONALINJFUEL = Field.create("FRACTIONALINJFUEL", 24, FieldType.FLOAT).setBaseOffset(1096); + public static final Field ACCUMULATEDVALUE = Field.create("ACCUMULATEDVALUE", 28, FieldType.FLOAT).setBaseOffset(1096); + public static final Field MAXEXTRAPERCYCLE = Field.create("MAXEXTRAPERCYCLE", 32, FieldType.FLOAT).setBaseOffset(1096); + public static final Field MAXEXTRAPERPERIOD = Field.create("MAXEXTRAPERPERIOD", 36, FieldType.FLOAT).setBaseOffset(1096); + public static final Field MAXINJECTEDPERPERIOD = Field.create("MAXINJECTEDPERPERIOD", 40, FieldType.FLOAT).setBaseOffset(1096); + public static final Field CYCLECNT = Field.create("CYCLECNT", 44, FieldType.INT).setScale(1.0).setBaseOffset(1096); public static final Field[] VALUES = { TPSFROM, TPSTO, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java index 53325319d9..79909d6fd6 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerCentral.java @@ -4,22 +4,22 @@ public class TriggerCentral { public static final int HW_EVENT_TYPES = 6; - public static final Field HWEVENTCOUNTERS1 = Field.create("HWEVENTCOUNTERS1", 0, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field HWEVENTCOUNTERS2 = Field.create("HWEVENTCOUNTERS2", 4, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field HWEVENTCOUNTERS3 = Field.create("HWEVENTCOUNTERS3", 8, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field HWEVENTCOUNTERS4 = Field.create("HWEVENTCOUNTERS4", 12, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field HWEVENTCOUNTERS5 = Field.create("HWEVENTCOUNTERS5", 16, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field HWEVENTCOUNTERS6 = Field.create("HWEVENTCOUNTERS6", 20, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field VVTCAMCOUNTER = Field.create("VVTCAMCOUNTER", 24, FieldType.INT).setScale(1.0).setBaseOffset(1156); - public static final Field MAPVVT_MAP_AT_SPECIAL_POINT = Field.create("MAPVVT_MAP_AT_SPECIAL_POINT", 28, FieldType.FLOAT).setBaseOffset(1156); - public static final Field MAPVVT_MAP_AT_DIFF = Field.create("MAPVVT_MAP_AT_DIFF", 32, FieldType.FLOAT).setBaseOffset(1156); - public static final Field MAPVVT_MAP_AT_CYCLE_COUNT = Field.create("MAPVVT_MAP_AT_CYCLE_COUNT", 36, FieldType.INT8).setScale(1.0).setBaseOffset(1156); - public static final Field MAPVVT_MAP_PEAK = Field.create("MAPVVT_MAP_PEAK", 37, FieldType.INT8).setScale(1.0).setBaseOffset(1156); - public static final Field ALIGNMENTFILL_AT_38 = Field.create("ALIGNMENTFILL_AT_38", 38, FieldType.INT8).setScale(1.0).setBaseOffset(1156); - public static final Field CURRENTENGINEDECODEDPHASE = Field.create("CURRENTENGINEDECODEDPHASE", 40, FieldType.FLOAT).setBaseOffset(1156); - public static final Field TRIGGERTOOTHANGLEERROR = Field.create("TRIGGERTOOTHANGLEERROR", 44, FieldType.FLOAT).setBaseOffset(1156); - public static final Field TRIGGERIGNOREDTOOTHCOUNT = Field.create("TRIGGERIGNOREDTOOTHCOUNT", 48, FieldType.INT8).setScale(1.0).setBaseOffset(1156); - public static final Field ALIGNMENTFILL_AT_49 = Field.create("ALIGNMENTFILL_AT_49", 49, FieldType.INT8).setScale(1.0).setBaseOffset(1156); + public static final Field HWEVENTCOUNTERS1 = Field.create("HWEVENTCOUNTERS1", 0, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field HWEVENTCOUNTERS2 = Field.create("HWEVENTCOUNTERS2", 4, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field HWEVENTCOUNTERS3 = Field.create("HWEVENTCOUNTERS3", 8, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field HWEVENTCOUNTERS4 = Field.create("HWEVENTCOUNTERS4", 12, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field HWEVENTCOUNTERS5 = Field.create("HWEVENTCOUNTERS5", 16, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field HWEVENTCOUNTERS6 = Field.create("HWEVENTCOUNTERS6", 20, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field VVTCAMCOUNTER = Field.create("VVTCAMCOUNTER", 24, FieldType.INT).setScale(1.0).setBaseOffset(1144); + public static final Field MAPVVT_MAP_AT_SPECIAL_POINT = Field.create("MAPVVT_MAP_AT_SPECIAL_POINT", 28, FieldType.FLOAT).setBaseOffset(1144); + public static final Field MAPVVT_MAP_AT_DIFF = Field.create("MAPVVT_MAP_AT_DIFF", 32, FieldType.FLOAT).setBaseOffset(1144); + public static final Field MAPVVT_MAP_AT_CYCLE_COUNT = Field.create("MAPVVT_MAP_AT_CYCLE_COUNT", 36, FieldType.INT8).setScale(1.0).setBaseOffset(1144); + public static final Field MAPVVT_MAP_PEAK = Field.create("MAPVVT_MAP_PEAK", 37, FieldType.INT8).setScale(1.0).setBaseOffset(1144); + public static final Field ALIGNMENTFILL_AT_38 = Field.create("ALIGNMENTFILL_AT_38", 38, FieldType.INT8).setScale(1.0).setBaseOffset(1144); + public static final Field CURRENTENGINEDECODEDPHASE = Field.create("CURRENTENGINEDECODEDPHASE", 40, FieldType.FLOAT).setBaseOffset(1144); + public static final Field TRIGGERTOOTHANGLEERROR = Field.create("TRIGGERTOOTHANGLEERROR", 44, FieldType.FLOAT).setBaseOffset(1144); + public static final Field TRIGGERIGNOREDTOOTHCOUNT = Field.create("TRIGGERIGNOREDTOOTHCOUNT", 48, FieldType.INT8).setScale(1.0).setBaseOffset(1144); + public static final Field ALIGNMENTFILL_AT_49 = Field.create("ALIGNMENTFILL_AT_49", 49, FieldType.INT8).setScale(1.0).setBaseOffset(1144); public static final Field[] VALUES = { HWEVENTCOUNTERS1, HWEVENTCOUNTERS2, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java index 7279f97318..5360b6b9d5 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerState.java @@ -155,14 +155,14 @@ public class TriggerState { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field CRANKSYNCHRONIZATIONCOUNTER = Field.create("CRANKSYNCHRONIZATIONCOUNTER", 0, FieldType.INT).setScale(1.0).setBaseOffset(1208); - public static final Field VVTSYNCGAPRATIO = Field.create("VVTSYNCGAPRATIO", 4, FieldType.FLOAT).setBaseOffset(1208); - public static final Field VVTCURRENTPOSITION = Field.create("VVTCURRENTPOSITION", 8, FieldType.FLOAT).setBaseOffset(1208); - public static final Field TRIGGERSYNCGAPRATIO = Field.create("TRIGGERSYNCGAPRATIO", 12, FieldType.FLOAT).setBaseOffset(1208); - public static final Field TRIGGERSTATEINDEX = Field.create("TRIGGERSTATEINDEX", 16, FieldType.INT8).setScale(1.0).setBaseOffset(1208); - public static final Field VVTCOUNTER = Field.create("VVTCOUNTER", 17, FieldType.INT8).setScale(1.0).setBaseOffset(1208); - public static final Field CAMRESYNCCOUNTER = Field.create("CAMRESYNCCOUNTER", 18, FieldType.INT8).setScale(1.0).setBaseOffset(1208); - public static final Field VVTSTATEINDEX = Field.create("VVTSTATEINDEX", 19, FieldType.INT8).setScale(1.0).setBaseOffset(1208); + public static final Field CRANKSYNCHRONIZATIONCOUNTER = Field.create("CRANKSYNCHRONIZATIONCOUNTER", 0, FieldType.INT).setScale(1.0).setBaseOffset(1196); + public static final Field VVTSYNCGAPRATIO = Field.create("VVTSYNCGAPRATIO", 4, FieldType.FLOAT).setBaseOffset(1196); + public static final Field VVTCURRENTPOSITION = Field.create("VVTCURRENTPOSITION", 8, FieldType.FLOAT).setBaseOffset(1196); + public static final Field TRIGGERSYNCGAPRATIO = Field.create("TRIGGERSYNCGAPRATIO", 12, FieldType.FLOAT).setBaseOffset(1196); + public static final Field TRIGGERSTATEINDEX = Field.create("TRIGGERSTATEINDEX", 16, FieldType.INT8).setScale(1.0).setBaseOffset(1196); + public static final Field VVTCOUNTER = Field.create("VVTCOUNTER", 17, FieldType.INT8).setScale(1.0).setBaseOffset(1196); + public static final Field CAMRESYNCCOUNTER = Field.create("CAMRESYNCCOUNTER", 18, FieldType.INT8).setScale(1.0).setBaseOffset(1196); + public static final Field VVTSTATEINDEX = Field.create("VVTSTATEINDEX", 19, FieldType.INT8).setScale(1.0).setBaseOffset(1196); public static final Field[] VALUES = { CRANKSYNCHRONIZATIONCOUNTER, VVTSYNCGAPRATIO, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java index acc1834c75..b6a6305585 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TriggerStatePrimary.java @@ -155,7 +155,7 @@ public class TriggerStatePrimary { public static final int PACK_MULT_VOLTAGE = 1000; public static final int TPS_2_BYTE_PACKING_MULT = 100; public static final int VE_BLEND_COUNT = 4; - public static final Field M_HASSYNCHRONIZEDPHASE = Field.create("M_HASSYNCHRONIZEDPHASE", 0, FieldType.BIT, 0).setBaseOffset(1228); + public static final Field M_HASSYNCHRONIZEDPHASE = Field.create("M_HASSYNCHRONIZEDPHASE", 0, FieldType.BIT, 0).setBaseOffset(1216); public static final Field[] VALUES = { M_HASSYNCHRONIZEDPHASE, }; diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java b/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java index f856c757d0..f6c6c2b25d 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/TsOutputs.java @@ -205,24 +205,24 @@ public class TsOutputs { public static final Field INJECTORDUTYCYCLE = Field.create("INJECTORDUTYCYCLE", 46, FieldType.INT8).setScale(0.5).setBaseOffset(0); public static final Field VEVALUE = Field.create("VEVALUE", 47, FieldType.INT8).setScale(0.5).setBaseOffset(0); public static final Field INJECTIONOFFSET = Field.create("INJECTIONOFFSET", 48, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field INJECTORLAGMS = Field.create("INJECTORLAGMS", 50, FieldType.INT16).setScale(0.0033333333333333335).setBaseOffset(0); - public static final Field ENGINEMAKECODENAMECRC16 = Field.create("ENGINEMAKECODENAMECRC16", 52, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field WALLFUELAMOUNT = Field.create("WALLFUELAMOUNT", 54, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field WALLFUELCORRECTIONVALUE = Field.create("WALLFUELCORRECTIONVALUE", 56, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field REVOLUTIONCOUNTERSINCESTART = Field.create("REVOLUTIONCOUNTERSINCESTART", 58, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field CANREADCOUNTER = Field.create("CANREADCOUNTER", 60, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field TPSACCELFUEL = Field.create("TPSACCELFUEL", 62, FieldType.INT16).setScale(0.0033333333333333335).setBaseOffset(0); - public static final Field IGNITIONADVANCE = Field.create("IGNITIONADVANCE", 64, FieldType.INT16).setScale(0.02).setBaseOffset(0); - public static final Field CURRENTIGNITIONMODE = Field.create("CURRENTIGNITIONMODE", 66, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field CURRENTINJECTIONMODE = Field.create("CURRENTINJECTIONMODE", 67, FieldType.INT8).setScale(1.0).setBaseOffset(0); - public static final Field COILDUTYCYCLE = Field.create("COILDUTYCYCLE", 68, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field ETBTARGET = Field.create("ETBTARGET", 70, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field ETB1DUTYCYCLE = Field.create("ETB1DUTYCYCLE", 72, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field FUELTANKLEVEL = Field.create("FUELTANKLEVEL", 74, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field TOTALFUELCONSUMPTION = Field.create("TOTALFUELCONSUMPTION", 76, FieldType.INT16).setScale(1.0).setBaseOffset(0); - public static final Field FUELFLOWRATE = Field.create("FUELFLOWRATE", 78, FieldType.INT16).setScale(0.005).setBaseOffset(0); - public static final Field TPS2VALUE = Field.create("TPS2VALUE", 80, FieldType.INT16).setScale(0.01).setBaseOffset(0); - public static final Field TUNECRC16 = Field.create("TUNECRC16", 82, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ENGINEMAKECODENAMECRC16 = Field.create("ENGINEMAKECODENAMECRC16", 50, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field WALLFUELAMOUNT = Field.create("WALLFUELAMOUNT", 52, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field WALLFUELCORRECTIONVALUE = Field.create("WALLFUELCORRECTIONVALUE", 54, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field REVOLUTIONCOUNTERSINCESTART = Field.create("REVOLUTIONCOUNTERSINCESTART", 56, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field CANREADCOUNTER = Field.create("CANREADCOUNTER", 58, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field TPSACCELFUEL = Field.create("TPSACCELFUEL", 60, FieldType.INT16).setScale(0.0033333333333333335).setBaseOffset(0); + public static final Field IGNITIONADVANCE = Field.create("IGNITIONADVANCE", 62, FieldType.INT16).setScale(0.02).setBaseOffset(0); + public static final Field CURRENTIGNITIONMODE = Field.create("CURRENTIGNITIONMODE", 64, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field CURRENTINJECTIONMODE = Field.create("CURRENTINJECTIONMODE", 65, FieldType.INT8).setScale(1.0).setBaseOffset(0); + public static final Field COILDUTYCYCLE = Field.create("COILDUTYCYCLE", 66, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ETBTARGET = Field.create("ETBTARGET", 68, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field ETB1DUTYCYCLE = Field.create("ETB1DUTYCYCLE", 70, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field FUELTANKLEVEL = Field.create("FUELTANKLEVEL", 72, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field TOTALFUELCONSUMPTION = Field.create("TOTALFUELCONSUMPTION", 74, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field FUELFLOWRATE = Field.create("FUELFLOWRATE", 76, FieldType.INT16).setScale(0.005).setBaseOffset(0); + public static final Field TPS2VALUE = Field.create("TPS2VALUE", 78, FieldType.INT16).setScale(0.01).setBaseOffset(0); + public static final Field TUNECRC16 = Field.create("TUNECRC16", 80, FieldType.INT16).setScale(1.0).setBaseOffset(0); + public static final Field ALIGNMENTFILL_AT_82 = Field.create("ALIGNMENTFILL_AT_82", 82, FieldType.INT8).setScale(1.0).setBaseOffset(0); public static final Field KNOCKLEVEL = Field.create("KNOCKLEVEL", 84, FieldType.FLOAT).setBaseOffset(0); public static final Field SECONDS = Field.create("SECONDS", 88, FieldType.INT).setScale(1.0).setBaseOffset(0); public static final Field ENGINEMODE = Field.create("ENGINEMODE", 92, FieldType.INT).setScale(1.0).setBaseOffset(0); @@ -703,7 +703,6 @@ public class TsOutputs { INJECTORDUTYCYCLE, VEVALUE, INJECTIONOFFSET, - INJECTORLAGMS, ENGINEMAKECODENAMECRC16, WALLFUELAMOUNT, WALLFUELCORRECTIONVALUE, @@ -721,6 +720,7 @@ public class TsOutputs { FUELFLOWRATE, TPS2VALUE, TUNECRC16, + ALIGNMENTFILL_AT_82, KNOCKLEVEL, SECONDS, ENGINEMODE, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/VvtState.java b/java_console/models/src/main/java/com/rusefi/config/generated/VvtState.java new file mode 100644 index 0000000000..6b7e41dd66 --- /dev/null +++ b/java_console/models/src/main/java/com/rusefi/config/generated/VvtState.java @@ -0,0 +1,14 @@ +package com.rusefi.config.generated; + +import com.rusefi.config.*; + +public class VvtState { + public static final Field VVTTARGET = Field.create("VVTTARGET", 0, FieldType.INT16).setScale(0.1).setBaseOffset(1372); + public static final Field VVTOUTPUT = Field.create("VVTOUTPUT", 2, FieldType.INT8).setScale(0.5).setBaseOffset(1372); + public static final Field ALIGNMENTFILL_AT_3 = Field.create("ALIGNMENTFILL_AT_3", 3, FieldType.INT8).setScale(1.0).setBaseOffset(1372); + public static final Field[] VALUES = { + VVTTARGET, + VVTOUTPUT, + ALIGNMENTFILL_AT_3, + }; +} diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java b/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java index 4ef705a8f9..322666243a 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/WallFuelState.java @@ -3,8 +3,8 @@ import com.rusefi.config.*; public class WallFuelState { - public static final Field WALLFUELCORRECTION = Field.create("WALLFUELCORRECTION", 0, FieldType.FLOAT).setBaseOffset(1232); - public static final Field WALLFUEL = Field.create("WALLFUEL", 4, FieldType.FLOAT).setBaseOffset(1232); + public static final Field WALLFUELCORRECTION = Field.create("WALLFUELCORRECTION", 0, FieldType.FLOAT).setBaseOffset(1220); + public static final Field WALLFUEL = Field.create("WALLFUEL", 4, FieldType.FLOAT).setBaseOffset(1220); public static final Field[] VALUES = { WALLFUELCORRECTION, WALLFUEL, diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/WidebandController.java b/java_console/models/src/main/java/com/rusefi/config/generated/WidebandController.java index 71cabcf1b5..56db46a915 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/WidebandController.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/WidebandController.java @@ -3,14 +3,14 @@ import com.rusefi.config.*; public class WidebandController { - public static final Field FAULTCODE = Field.create("FAULTCODE", 0, FieldType.INT8).setScale(1.0).setBaseOffset(1340); - public static final Field HEATERDUTY = Field.create("HEATERDUTY", 1, FieldType.INT8).setScale(1.0).setBaseOffset(1340); - public static final Field PUMPDUTY = Field.create("PUMPDUTY", 2, FieldType.INT8).setScale(1.0).setBaseOffset(1340); - public static final Field ALIGNMENTFILL_AT_3 = Field.create("ALIGNMENTFILL_AT_3", 3, FieldType.INT8).setScale(1.0).setBaseOffset(1340); - public static final Field TEMPC = Field.create("TEMPC", 4, FieldType.INT16).setScale(1.0).setBaseOffset(1340); - public static final Field NERNSTVOLTAGE = Field.create("NERNSTVOLTAGE", 6, FieldType.INT16).setScale(0.001).setBaseOffset(1340); - public static final Field ESR = Field.create("ESR", 8, FieldType.INT16).setScale(1.0).setBaseOffset(1340); - public static final Field ALIGNMENTFILL_AT_10 = Field.create("ALIGNMENTFILL_AT_10", 10, FieldType.INT8).setScale(1.0).setBaseOffset(1340); + public static final Field FAULTCODE = Field.create("FAULTCODE", 0, FieldType.INT8).setScale(1.0).setBaseOffset(1328); + public static final Field HEATERDUTY = Field.create("HEATERDUTY", 1, FieldType.INT8).setScale(1.0).setBaseOffset(1328); + public static final Field PUMPDUTY = Field.create("PUMPDUTY", 2, FieldType.INT8).setScale(1.0).setBaseOffset(1328); + public static final Field ALIGNMENTFILL_AT_3 = Field.create("ALIGNMENTFILL_AT_3", 3, FieldType.INT8).setScale(1.0).setBaseOffset(1328); + public static final Field TEMPC = Field.create("TEMPC", 4, FieldType.INT16).setScale(1.0).setBaseOffset(1328); + public static final Field NERNSTVOLTAGE = Field.create("NERNSTVOLTAGE", 6, FieldType.INT16).setScale(0.001).setBaseOffset(1328); + public static final Field ESR = Field.create("ESR", 8, FieldType.INT16).setScale(1.0).setBaseOffset(1328); + public static final Field ALIGNMENTFILL_AT_10 = Field.create("ALIGNMENTFILL_AT_10", 10, FieldType.INT8).setScale(1.0).setBaseOffset(1328); public static final Field[] VALUES = { FAULTCODE, HEATERDUTY, diff --git a/java_console/ui/build.gradle b/java_console/ui/build.gradle index 4181ed842b..6ba5efac9f 100644 --- a/java_console/ui/build.gradle +++ b/java_console/ui/build.gradle @@ -4,7 +4,7 @@ plugins { } configurations { - // not sure what is this and why but it's huge + // icu4j is huge: https://en.wikipedia.org/wiki/International_Components_for_Unicode all*.exclude group: 'com.ibm.icu', module: 'icu4j' } @@ -25,7 +25,7 @@ dependencies { shadowJar { archivesBaseName = 'fome_console' - destinationDir = file("$rootDir/../java_console_binary") + destinationDir = file("$rootDir/../java_console_binary") archiveClassifier = '' manifest { @@ -33,4 +33,4 @@ shadowJar { 'Main-Class': 'com.rusefi.Launcher' ) } -} \ No newline at end of file +} diff --git a/java_tools/ConfigDefinition.jar b/java_tools/ConfigDefinition.jar index 1d22059c69..34bbffe9bb 100644 Binary files a/java_tools/ConfigDefinition.jar and b/java_tools/ConfigDefinition.jar differ diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDataProcessor.java b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDataProcessor.java index 3ecbc33be4..7cfd5ec1a7 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDataProcessor.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/ldmp/LiveDataProcessor.java @@ -79,7 +79,7 @@ private void end() throws IOException { } interface EntryHandler { - void onEntry(String name, String javaName, String folder, String prepend, boolean withCDefines, String[] outputNames, String constexpr, String conditional) throws IOException; + void onEntry(String name, String javaName, String folder, String prepend, boolean withCDefines, String[] outputNames, String constexpr, String conditional, Boolean isPtr) throws IOException; } private int handleYaml(Map data) throws IOException { @@ -93,7 +93,7 @@ private int handleYaml(Map data) throws IOException { EntryHandler handler = new EntryHandler() { @Override - public void onEntry(String name, String javaName, String folder, String prepend, boolean withCDefines, String[] outputNames, String constexpr, String conditional) throws IOException { + public void onEntry(String name, String javaName, String folder, String prepend, boolean withCDefines, String[] outputNames, String constexpr, String conditional, Boolean isPtr) throws IOException { // TODO: use outputNames int startingPosition = outputsSections.sensorTsPosition; @@ -122,10 +122,12 @@ public void onEntry(String name, String javaName, String folder, String prepend, if (constexpr != null) { sdCardFieldsConsumer.home = constexpr; + sdCardFieldsConsumer.isPtr = isPtr; state.addDestination((state1, structure) -> sdCardFieldsConsumer.handleEndStruct(state1, structure)); outputValueConsumer.currentSectionPrefix = constexpr; outputValueConsumer.conditional = conditional; + outputValueConsumer.isPtr = isPtr; state.addDestination((state1, structure) -> outputValueConsumer.handleEndStruct(state1, structure)); } @@ -157,8 +159,10 @@ public void handleEndStruct(ReaderState readerState, ConfigStructure structure) String constexpr = (String) entry.get("constexpr"); String conditional = (String) entry.get("conditional_compilation"); Boolean withCDefines = (Boolean) entry.get("withCDefines"); + Boolean isPtr = (Boolean) entry.get("isPtr"); // Defaults to false if not specified withCDefines = withCDefines != null && withCDefines; + isPtr = isPtr != null && isPtr; Object outputNames = entry.get("output_name"); @@ -174,7 +178,7 @@ public void handleEndStruct(ReaderState readerState, ConfigStructure structure) nameList.toArray(outputNamesArr); } - handler.onEntry(name, java, folder, prepend, withCDefines, outputNamesArr, constexpr, conditional); + handler.onEntry(name, java, folder, prepend, withCDefines, outputNamesArr, constexpr, conditional, isPtr); String enumName = "LDS_" + name; String type = name + "_s"; // convention diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetOutputValueConsumer.java b/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetOutputValueConsumer.java index 3f1a6f96af..dd2596d537 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetOutputValueConsumer.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/output/GetOutputValueConsumer.java @@ -30,6 +30,7 @@ public class GetOutputValueConsumer implements ConfigurationConsumer { public String currentSectionPrefix = "engine->outputChannels"; public String conditional; + public Boolean isPtr = false; public GetOutputValueConsumer(String fileName) { this.fileName = fileName; @@ -55,7 +56,7 @@ private String processOutput(ConfigField cf, String prefix) { } String userName = prefix + cf.getName(); - String javaName = currentSectionPrefix + "." + prefix; + String javaName = currentSectionPrefix + (isPtr ? "->" : ".") + prefix; getterPairs.add(new VariableRecord(userName, javaName + cf.getName(), null, conditional)); @@ -75,10 +76,12 @@ public String getContent() { String fullSwitch = wrapSwitchStatement(switchBody); - return FILE_HEADER + + return "#if !EFI_UNIT_TEST\n" + + FILE_HEADER + "float getOutputValueByName(const char *name) {\n" + fullSwitch + - getterBody + GetConfigValueConsumer.GET_METHOD_FOOTER; + getterBody + GetConfigValueConsumer.GET_METHOD_FOOTER + + "#endif\n"; } @NotNull diff --git a/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsContent.java b/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsContent.java index 150496c1f2..2892ac487f 100644 --- a/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsContent.java +++ b/java_tools/configuration_definition/src/main/java/com/rusefi/output/SdCardFieldsContent.java @@ -13,6 +13,7 @@ public class SdCardFieldsContent { private final StringBuilder body = new StringBuilder(); public String home = "engine->outputChannels"; + public Boolean isPtr = false; public void handleEndStruct(ReaderState state, ConfigStructure structure) throws IOException { if (state.isStackEmpty()) { @@ -49,7 +50,7 @@ private String getLine(ConfigField configField, String prefix, String name) { categoryStr = ", " + categoryStr; } - return "\t{" + home + "." + name + + return "\t{" + home + (isPtr ? "->" : ".") + name + ", " + DataLogConsumer.getHumanGaugeName(prefix, configField) + ", " + diff --git a/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java b/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java index d23b318858..3961f1068a 100644 --- a/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java +++ b/java_tools/configuration_definition/src/test/java/com/rusefi/test/OutputsTest.java @@ -145,6 +145,7 @@ public void generateGetOutputs() { outputValueConsumer.conditional = "EFI_BOOST_CONTROL"; state.readBufferedReader(test, (outputValueConsumer)); assertEquals( + "#if !EFI_UNIT_TEST\n" + "#include \"pch.h\"\n" + "#include \"value_lookup.h\"\n" + "float getOutputValueByName(const char *name) {\n" + @@ -164,7 +165,8 @@ public void generateGetOutputs() { "#endif\n" + "\t}\n" + "\treturn EFI_ERROR_CODE;\n" + - "}\n", outputValueConsumer.getContent()); + "}\n" + + "#endif\n", outputValueConsumer.getContent()); } @Test diff --git a/misc/Strategy_2019.md b/misc/Strategy_2019.md deleted file mode 100644 index e24c13c980..0000000000 --- a/misc/Strategy_2019.md +++ /dev/null @@ -1,24 +0,0 @@ -[Update: this is still rusEfi strategy even for 2020] - -1a) As of June 2019, rusEfi has a _LOT_ of potential but probably is pretty far from being easily usable and pretty far from being -easy to use. - -1c) As of June 2019, only 4 to 6 vehicles TOTAL have put any significant miles on rusEfi. _Significant_ means 10 000 km per vehicle. - -1e) Most of the 51 vehicles with rusEfi have driven below 10 km per vehicle. - -1g) rusEfi has a number of great hardware options and **reliable** firmware. While **reliable**, the models and features of -the software are extremely limited. - -1i) As of 2019, rusEfi focus is on tools, infrastructure and development community. - -1m) In order to get more developers to contribute to rusEfi firmware and content, rusEfi Strategy 2017 and -Strategy 2018 was to provide kits and assembled units of highly flexible but large and not very cheap [Frankenso](https://rusefi.com/wiki/index.php?title=Hardware:For_Sale) board. - -1s) rusEfi Strategy 2019 (Update: and 2020) is to provide the community with smaller and cheaper boards. Maybe [microRusEfi](https://github.com/960/hw_microRusEfi) maybe -[Deucalion](https://rusefi.com/forum/viewtopic.php?f=4&t=1516). - -1z) it is NOT rusEfi Strategy 2019 to market rusEfi to a wide retail audience. The lack of documentation and the steep -learning curve would cause a less than ideal user experience. - - \ No newline at end of file diff --git a/misc/Strategy_2020.md b/misc/Strategy_2020.md deleted file mode 100644 index 0e9c979b44..0000000000 --- a/misc/Strategy_2020.md +++ /dev/null @@ -1 +0,0 @@ -Nothing has changed - see [Strategy 2019](Strategy_2019.md) \ No newline at end of file diff --git a/misc/Strategy_2021.md b/misc/Strategy_2021.md deleted file mode 100644 index 01dd067a77..0000000000 --- a/misc/Strategy_2021.md +++ /dev/null @@ -1,20 +0,0 @@ -TL,DR: we want to develop a much _smarter_ ECU. At the moment the two bottlenecks for us are: - -a) software developers - -b) actionable user feedback - -As of February 2021, rusEFI has a LOT of potential but is far from easy to use. -1) rusEFI has a number of great hardware options and stable features. More information about particular features and their status can be found on the Wiki here: -https://github.com/rusefi/rusefi/wiki#features -2) As of February 2021, the focus of rusEFI is on tools, infrastructure and further development. Attracting more developers is a goal. -3) In order to get more developers to contribute to rusEFI firmware and content, rusEFI Strategy 2020 was to provide kits and assembled units of highly flexible but large and not very cheap Proteus board. rusEFI Strategy February 2021 is to provide the community with smaller and cheaper boards that can be assembled completely by automated methods which do not require as much labor from developers, allowing developers to focus on writing firmware and designing more hardware instead of building kits for new users. -5) Some important tasks to be finished in 2021 are:
- a. Move production of hardware sold by rusEFI to automated assembly, away from hand assembly.
- b. Complete a Proteus board that fits into a standard ECU case (154 pin)
- c. Incorporate results of Ion Sense testing conducted in 2020 to the spark control system
- d. Improve Variable Camshaft control to allow more engines with this feature to run on rusEFI
- e. Continue to improve documentation for development process, firmware, tuning and use
-4) As of February 2021, 65 cars are listed as running on https://github.com/rusefi/rusefi/wiki/List-of-engines-running-rusEFI -5) As of February 2021, hundreds of rusEFI units have been sold in addition to any ECUs produced from our designs independently. There is no true count of how many rusEFI derived devices are in the wild anymore. -6) As of February 2021 is is NOT the goal of rusEFI to market to a wide retail audience. The lack of documentation and the steep learning curve would cause a less than ideal user experience. Developers continue to be the intended audience for the immediate future. diff --git a/misc/Strategy_2022_draft.md b/misc/Strategy_2022_draft.md deleted file mode 100644 index de1577f337..0000000000 --- a/misc/Strategy_2022_draft.md +++ /dev/null @@ -1,13 +0,0 @@ - -We still need software developers. - -Two years of microRusEFI and Proteus sales did not bring us much of new software developers. -At the moment most of rusEFI Hellen boards are pretty successful as end-user products, not as means to bring new developers. - -I think it's time to admit that we enjoy focusing on a small number of specific platforms instead of running thin trying to remotely -support rusEFI as a completely universal ECU. - -Significant portion of rusEFI KiCAD work in 2021 was done by hired professionals. At the moment rusEFI LLC is focusing on building -a steady stream of revenue in order to hire software developers. - -Our goal is still to develop the smartest open source ECU. diff --git a/misc/atollic_truestudio_notes.txt b/misc/atollic_truestudio_notes.txt deleted file mode 100644 index 8e8227c1f0..0000000000 --- a/misc/atollic_truestudio_notes.txt +++ /dev/null @@ -1,33 +0,0 @@ -Debug Configurations Settings Window won't close - -mkdir -p firmware/.settings -touch firmware/.settings/com.atollic.truestudio.debug.hardware_device.prefs - -https://forum.atollic.com/viewtopic.php?t=1015 - - -target software startup script - -#start - -# Set flash parallelism mode to 32, 16, or 8 bit when using STM32 F2/F4 microcontrollers -# Uncomment next line, 2=32 bit, 1=16 bit and 0=8 bit parallelism mode -monitor flash set_parallelism_mode 2 -# Set character encoding -set host-charset CP1252 -set target-charset CP1252 -# Reset to known state -monitor reset -# Load the program executable -load -# Reset the chip to get to a known state. Remove "monitor reset" command -# if the code is not located at default address and does not run by reset. -monitor reset -# Enable Debug connection in low power modes (DBGMCU->CR) -set *0xE0042004 = (*0xE0042004) | 0x7 -# Set a breakpoint at main(). -tbreak main -# Run to the breakpoint. -continue - -#end \ No newline at end of file diff --git a/misc/work_in_progress.md b/misc/work_in_progress.md deleted file mode 100644 index b1a7f7e860..0000000000 --- a/misc/work_in_progress.md +++ /dev/null @@ -1,106 +0,0 @@ -Jan, 11 2022 status -* AndreyB works on data point logging and live view https://github.com/rusefi/rusefi/issues/3614 as part of rusEFI usability improvements -* AndreyB is trying to push https://github.com/mck1117/wideband/issues/28 forward as part of Hellen fabrication improvements -* AndreyB is working on GDI4 https://github.com/rusefi/rusefi-hardware/issues?q=is%3Aissue+label%3AGDI as part of BMW 760 epic -* Mark is working on STM32 sleep / CAN wake up as part of Harley Hellen -* Anyone to pick up https://github.com/rusefi/rusefi/issues/936? -* Anyone to pick up https://github.com/rusefi/rusefi/issues/3771? -* Anyone to pick up https://github.com/rusefi/rusefi/labels/ADC-shortage? - - -Sept, 23 2021 status -* two Hellen-Mercedes driving -* Hellen-Nissan started! -* Lua progress - -July, 25 2021 status -* we now have five or six Hellen boards too many of these untested -* Matt is helping Hellen-Mercedes and H7 progress -* AndreyB is testing Hellen-Nissan and working on VVT code -* AndreiKA is focusing on Hellen81 and H7 - -Feb 9, 2021 status -* AndreiKA is focusing on Hellen-One -* AndreyB is focusing on quad VVT -* Matt is working on wideband and VR without ASIC - -Jan, 2 2021 status -* We had GDI vehicle start & idle! GDI effort is now suspected since too many projects in the works. -* TCU first real hardware test was not a success - -Nov, 18 2020 status -* GDI test mule was damaged during GDI tests -* Matt is working on fueling, wideband and knock detection logic -* TCU first hardware tests are getting closer! - -Sep, 7 2020 status -* Stefan is happy enough with idle control and now manufacturing a batch of Miata NA6 & developing a Miata NB2 PnP board -* AndreiKA and AndreyB are merging Hellen code into rusEFI master -* Matt is working on fueling and knock detection logic -* AndreiKA and AndreyB are making rusEFI Online better -* David is making TCU progress -* GDI is slooooowly moving forward - -July, 19 2020 status -* Stefan and AndreiKA are looking to improve miata idle (again!) -* AndreiKA and AndreyB are focused on rusEFI Online -* Matt is dealing with a number of different scheduling defects -* Miata NA base tune is getting closer -* GDI is a bit on hold - -Apr, 20 2020 status: -* Nick and Chris are focusing on GDI progress -* Matt is focusing on ETB https://github.com/rusefi/rusefi/issues/1240 https://github.com/rusefi/rusefi/issues/1336 -* x number of Andreys are focusing on data gathering usability https://github.com/rusefi/rusefi/issues/1337 -* andreika is currently focusing on Hellen, SD-card/binary logging, TS plugin and online connectivity - -Mar, 02 2020 status: -* playing with some GDI software, but now waiting for repaired MC33816 to come from Seattle -* Matt and DronoGus are working on different parts of getting stepper control using two universal H-bridged, that would give us stepper idle control on microRusEfi. -* A _lot_ of hardware to play with - v12 on Manhattan, v12 on Proteus, setting up microRusEfi fabrication. - -Dec, 28 2019 status: -* playing with some GDI while waiting for proteus 0.2 and microRusEfi 0.4.6 -* [DONE] top priority is https://github.com/rusefi/rusefi/issues/1011 Fix and expand commit gate check - -Nov, 19 2019 status: -* top priority is https://github.com/rusefi/rusefi/issues/1011 Fix and expand commit gate check -* [DONE] https://github.com/rusefi/rusefi/issues/796 Missing dwell altogether in some corner cases still should be addressed - -Sep, 19 2019 status: -* https://github.com/rusefi/rusefi/issues/796 Missing dwell altogether in some corner cases still should be addressed -* Ion Sense https://rusefi.com/forum/viewtopic.php?f=4&t=963 is now somewhere on top of the list! -* [DONE] build server is reliable again -* [DONE] Electronic throttle body is now road-tested including idle control -* CJ125 - probably falling off the wagon since no time :( - -June, 07 2019 status: -* new annoying issue: integration testing on new build server is unreliable - disconnects https://github.com/rusefi/rusefi/issues/816 -* https://github.com/rusefi/rusefi/issues/796 should be addressed -* Electronic throttle body - two and three wire control seems good enough, next step ETB-based idle control see https://github.com/rusefi/rusefi/issues/783 -* Ion Sense https://rusefi.com/forum/viewtopic.php?f=4&t=963 -* HIP9011 - still need to improve unit tests and give this functionality another test now that we can reproduce detonation -* CJ125 - still need to improve unit tests and give this functionality another test - -May, 31 2019 status: -* https://github.com/rusefi/rusefi/issues/796 should be addressed -* Electronic throttle body - two and three wire control seems good enough, next step ETB-based idle control see https://github.com/rusefi/rusefi/issues/783 -* Ion Sense https://rusefi.com/forum/viewtopic.php?f=4&t=963 -* HIP9011 - still need to improve unit tests and give this functionality another test now that we can reproduce detonation -* CJ125 - still need to improve unit tests and give this functionality another test, also need to merge mck1117's changes into master now that we have a source for cheap used 4.9 sensors - -May, 11 2019 status: -* Electronic throttle body - two and three wire control seems good enough, next step ETB-based idle control see https://github.com/rusefi/rusefi/issues/783 -* Ion Sense https://rusefi.com/forum/viewtopic.php?f=4&t=963 -* HIP9011 - still need to improve unit tests and give this functionality another test now that we can reproduce detonation -* CJ125 - still need to improve unit tests and give this functionality another test, also need to merge mck1117's changes into master now that we have a source for cheap used 4.9 sensors - -Jan, 7 2019 status: -* Electronic throttle body - need to merge mck1117's changes into master https://rusefi.com/forum/viewtopic.php?f=5&t=592 -* Ion Sense https://rusefi.com/forum/viewtopic.php?f=4&t=963 -* HIP9011 - need to improve unit tests and give this functionality another test now that we can reproduce detonation -* CJ125 - need to improve unit tests and give this functionality another test, alsoneed to merge mck1117's changes into master now we have a source for cheap used 4.9 sensors - -Dec, 16 2018 status: -* Electronic throttle body https://rusefi.com/forum/viewtopic.php?f=5&t=592 -* Ion Sense https://rusefi.com/forum/viewtopic.php?f=4&t=963 diff --git a/misc/www/readme.md b/misc/www/readme.md deleted file mode 100644 index 6fc3361ca3..0000000000 --- a/misc/www/readme.md +++ /dev/null @@ -1 +0,0 @@ -Files moved to https://github.com/rusefi/web_backend/tree/master/www \ No newline at end of file diff --git a/simulator/main.cpp b/simulator/main.cpp index 3f89430461..152ac45e89 100644 --- a/simulator/main.cpp +++ b/simulator/main.cpp @@ -32,7 +32,7 @@ static thread_t *cdtp; #define cputs(msg) chMsgSend(cdtp, (msg_t)msg) -void printToConsole(char *p) { +void printToConsole(const char *p) { cputs(p); } @@ -59,7 +59,7 @@ extern int isSerialOverTcpReady; * * @param[in] id event id. */ -static void termination_handler(eventid_t id) { +static void termination_handler(eventid_t /*id*/) { chThdSleepMilliseconds(10); diff --git a/simulator/simulator/global.h b/simulator/simulator/global.h index e5c331cd8c..68a6534050 100644 --- a/simulator/simulator/global.h +++ b/simulator/simulator/global.h @@ -52,7 +52,7 @@ extern "C" { #endif /* __cplusplus */ -void printToConsole(char *p); +void printToConsole(const char *p); #define getCurrentRemainingStack() getRemainingStack(chThdGetSelfX()) diff --git a/unit_tests/tests/tests.mk b/unit_tests/tests/tests.mk index f59e651f32..e151ce7398 100644 --- a/unit_tests/tests/tests.mk +++ b/unit_tests/tests/tests.mk @@ -11,6 +11,7 @@ TESTS_SRC_CPP = \ tests/trigger/test_real_cranking_miata_NA.cpp \ tests/trigger/test_real_cranking_miata_na6.cpp \ tests/trigger/test_real_cranking_nissan_vq40.cpp \ + tests/trigger/test_real_cas_24_plus_1.cpp \ tests/trigger/test_trigger_skipped_wheel.cpp \ tests/trigger/test_real_4b11.cpp \ tests/trigger/test_real_4g93.cpp \ diff --git a/unit_tests/tests/trigger/resources/cas_nissan_24_plus_1.csv b/unit_tests/tests/trigger/resources/cas_nissan_24_plus_1.csv new file mode 100644 index 0000000000..b40e8ad7c6 --- /dev/null +++ b/unit_tests/tests/trigger/resources/cas_nissan_24_plus_1.csv @@ -0,0 +1,449 @@ +timestamp,pri,sec +8.937617,1,0 +8.940322,0,0 +8.943855,1,0 +8.946542,0,0 +8.950059,1,0 +8.952713,0,0 +8.956174,1,0 +8.958801,0,0 +8.962274,1,0 +8.964871,0,0 +8.968273,1,0 +8.97086,0,0 +8.974244,1,0 +8.976776,0,0 +8.980122,1,0 +8.982656,0,0 +8.98595,1,0 +8.988429,0,0 +8.991714,1,0 +8.9942,0,0 +8.997441,1,0 +8.999913,0,0 +9.003146,1,0 +9.005591,0,0 +9.008795,1,0 +9.011229,0,0 +9.014393,1,0 +9.016801,0,0 +9.019959,1,0 +9.022345,0,0 +9.025471,1,0 +9.027858,0,0 +9.030973,1,0 +9.033345,0,0 +9.036436,1,0 +9.036453,1,0 +9.036456,1,0 +9.038789,0,0 +9.041863,1,0 +9.043581,1,1 +9.044232,0,1 +9.045688,0,0 +9.047325,1,0 +9.049667,0,0 +9.052764,1,0 +9.05512,0,0 +9.05818,1,0 +9.060501,0,0 +9.063539,1,0 +9.065865,0,0 +9.068908,1,0 +9.07121,0,0 +9.074194,1,0 +9.076471,0,0 +9.079485,1,0 +9.081775,0,0 +9.084792,1,0 +9.087073,0,0 +9.090081,1,0 +9.092347,0,0 +9.095342,1,0 +9.097615,0,0 +9.100608,1,0 +9.102871,0,0 +9.105835,1,0 +9.10808,0,0 +9.111051,1,0 +9.113295,0,0 +9.116238,1,0 +9.118473,0,0 +9.12144,1,0 +9.123696,0,0 +9.12665,1,0 +9.128885,0,0 +9.131805,1,0 +9.134014,0,0 +9.136925,1,0 +9.139134,0,0 +9.142013,1,0 +9.144209,0,0 +9.147095,1,0 +9.149276,0,0 +9.152151,1,0 +9.154355,0,0 +9.157222,1,0 +9.159417,0,0 +9.162306,1,0 +9.162323,1,0 +9.162326,1,0 +9.164505,0,0 +9.167362,1,0 +9.168955,1,1 +9.169557,0,1 +9.170915,0,0 +9.172439,1,0 +9.174624,0,0 +9.1775,1,0 +9.179671,0,0 +9.182513,1,0 +9.184695,0,0 +9.187535,1,0 +9.189694,0,0 +9.192531,1,0 +9.194711,0,0 +9.19756,1,0 +9.199707,0,0 +9.202535,1,0 +9.204697,0,0 +9.207539,1,0 +9.209694,0,0 +9.212523,1,0 +9.21465,0,0 +9.21748,1,0 +9.219632,0,0 +9.222457,1,0 +9.224588,0,0 +9.227414,1,0 +9.229568,0,0 +9.2324,1,0 +9.234544,0,0 +9.237382,1,0 +9.239545,0,0 +9.242387,1,0 +9.244523,0,0 +9.247338,1,0 +9.249473,0,0 +9.252262,1,0 +9.254372,0,0 +9.257163,1,0 +9.259285,0,0 +9.262046,1,0 +9.264156,0,0 +9.266941,1,0 +9.269059,0,0 +9.27184,1,0 +9.273976,0,0 +9.276768,1,0 +9.278891,0,0 +9.281655,1,0 +9.281674,1,0 +9.281676,1,0 +9.283768,0,0 +9.28654,1,0 +9.288081,1,1 +9.288662,0,1 +9.289956,0,0 +9.29141,1,0 +9.293517,0,0 +9.296308,1,0 +9.298404,0,0 +9.301169,1,0 +9.303294,0,0 +9.306082,1,0 +9.3082,0,0 +9.310982,1,0 +9.313096,0,0 +9.315838,1,0 +9.317928,0,0 +9.320701,1,0 +9.322807,0,0 +9.325562,1,0 +9.327657,0,0 +9.330424,1,0 +9.332503,0,0 +9.335259,1,0 +9.337373,0,0 +9.340174,1,0 +9.342285,0,0 +9.345053,1,0 +9.347155,0,0 +9.349943,1,0 +9.352051,0,0 +9.3548,1,0 +9.356893,0,0 +9.359678,1,0 +9.361763,0,0 +9.364493,1,0 +9.366583,0,0 +9.369345,1,0 +9.371441,0,0 +9.374206,1,0 +9.3763,0,0 +9.379032,1,0 +9.381124,0,0 +9.383883,1,0 +9.385974,0,0 +9.388702,1,0 +9.390794,0,0 +9.39354,1,0 +9.395632,0,0 +9.398357,1,0 +9.398375,1,0 +9.398377,1,0 +9.400441,0,0 +9.403164,1,0 +9.404667,1,1 +9.405233,0,1 +9.406507,0,0 +9.407949,1,0 +9.410042,0,0 +9.412814,1,0 +9.414893,0,0 +9.417629,1,0 +9.41973,0,0 +9.422472,1,0 +9.424542,0,0 +9.427269,1,0 +9.429352,0,0 +9.432057,1,0 +9.434112,0,0 +9.43684,1,0 +9.438912,0,0 +9.441628,1,0 +9.443687,0,0 +9.4464,1,0 +9.448466,0,0 +9.451215,1,0 +9.453288,0,0 +9.456027,1,0 +9.45811,0,0 +9.460841,1,0 +9.462908,0,0 +9.465636,1,0 +9.467705,0,0 +9.470415,1,0 +9.472482,0,0 +9.475204,1,0 +9.477254,0,0 +9.479978,1,0 +9.482068,0,0 +9.484803,1,0 +9.486864,0,0 +9.48959,1,0 +9.491665,0,0 +9.494355,1,0 +9.496401,0,0 +9.499116,1,0 +9.501184,0,0 +9.50389,1,0 +9.505949,0,0 +9.508647,1,0 +9.510717,0,0 +9.51342,1,0 +9.513438,1,0 +9.51344,1,0 +9.515482,0,0 +9.518196,1,0 +9.519716,1,1 +9.52029,0,1 +9.521578,0,0 +9.523021,1,0 +9.525097,0,0 +9.52783,1,0 +9.529905,0,0 +9.532637,1,0 +9.534727,0,0 +9.537436,1,0 +9.539497,0,0 +9.542209,1,0 +9.544278,0,0 +9.546987,1,0 +9.549046,0,0 +9.551775,1,0 +9.553853,0,0 +9.556589,1,0 +9.558648,0,0 +9.561369,1,0 +9.563429,0,0 +9.566165,1,0 +9.568231,0,0 +9.570969,1,0 +9.573039,0,0 +9.575739,1,0 +9.577801,0,0 +9.58054,1,0 +9.582614,0,0 +9.585336,1,0 +9.587418,0,0 +9.59017,1,0 +9.592253,0,0 +9.594983,1,0 +9.597075,0,0 +9.599817,1,0 +9.601879,0,0 +9.60458,1,0 +9.606634,0,0 +9.609345,1,0 +9.611412,0,0 +9.614115,1,0 +9.616172,0,0 +9.618886,1,0 +9.620961,0,0 +9.62368,1,0 +9.625759,0,0 +9.628485,1,0 +9.628503,1,0 +9.628505,1,0 +9.630569,0,0 +9.633305,1,0 +9.634817,1,1 +9.635386,0,1 +9.636661,0,0 +9.638091,1,0 +9.640162,0,0 +9.642911,1,0 +9.644975,0,0 +9.647684,1,0 +9.64977,0,0 +9.652508,1,0 +9.654576,0,0 +9.657287,1,0 +9.659374,0,0 +9.662116,1,0 +9.664198,0,0 +9.666913,1,0 +9.668979,0,0 +9.67171,1,0 +9.673771,0,0 +9.676491,1,0 +9.678549,0,0 +9.681278,1,0 +9.683341,0,0 +9.686078,1,0 +9.688154,0,0 +9.690892,1,0 +9.692982,0,0 +9.695743,1,0 +9.697826,0,0 +9.700568,1,0 +9.702654,0,0 +9.705395,1,0 +9.707474,0,0 +9.71021,1,0 +9.712288,0,0 +9.715014,1,0 +9.717077,0,0 +9.719783,1,0 +9.721845,0,0 +9.724563,1,0 +9.726647,0,0 +9.729371,1,0 +9.731449,0,0 +9.734172,1,0 +9.73624,0,0 +9.738958,1,0 +9.741047,0,0 +9.743765,1,0 +9.743782,1,0 +9.743785,1,0 +9.745828,0,0 +9.748548,1,0 +9.750056,1,1 +9.750626,0,1 +9.751901,0,0 +9.753332,1,0 +9.755398,0,0 +9.758145,1,0 +9.760222,0,0 +9.762954,1,0 +9.765045,0,0 +9.767772,1,0 +9.769846,0,0 +9.77258,1,0 +9.774655,0,0 +9.777358,1,0 +9.779424,0,0 +9.782146,1,0 +9.7842,0,0 +9.786895,1,0 +9.788949,0,0 +9.791672,1,0 +9.793733,0,0 +9.79644,1,0 +9.798496,0,0 +9.801232,1,0 +9.803315,0,0 +9.806042,1,0 +9.808106,0,0 +9.81084,1,0 +9.812906,0,0 +9.815611,1,0 +9.81766,0,0 +9.820372,1,0 +9.822437,0,0 +9.825159,1,0 +9.827213,0,0 +9.829919,1,0 +9.831982,0,0 +9.834686,1,0 +9.83674,0,0 +9.839434,1,0 +9.841492,0,0 +9.844191,1,0 +9.846241,0,0 +9.848928,1,0 +9.850984,0,0 +9.853681,1,0 +9.855738,0,0 +9.858414,1,0 +9.858431,1,0 +9.858434,1,0 +9.860461,0,0 +9.863141,1,0 +9.86463,1,1 +9.865194,0,1 +9.866461,0,0 +9.867891,1,0 +9.869958,0,0 +9.872688,1,0 +9.874751,0,0 +9.877467,1,0 +9.879533,0,0 +9.882227,1,0 +9.884286,0,0 +9.886998,1,0 +9.889044,0,0 +9.891724,1,0 +9.893765,0,0 +9.896442,1,0 +9.898487,0,0 +9.9012,1,0 +9.903256,0,0 +9.905954,1,0 +9.908,0,0 +9.910716,1,0 +9.912772,0,0 +9.915478,1,0 +9.917528,0,0 +9.920245,1,0 +9.922298,0,0 +9.924992,1,0 +9.927023,0,0 +9.929717,1,0 +9.931773,0,0 +9.934469,1,0 +9.936519,0,0 +9.939243,1,0 +9.941315,0,0 +9.944002,1,0 +9.946039,0,0 +9.948735,1,0 +9.950783,0,0 +9.953461,1,0 +9.955485,0,0 +9.958163,1,0 +9.960207,0,0 +9.962884,1,0 +9.964915,0,0 diff --git a/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp b/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp index d7452c56b5..28924f6b5a 100644 --- a/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp +++ b/unit_tests/tests/trigger/test_fasterEngineSpinningUp.cpp @@ -79,7 +79,7 @@ TEST(cranking, testFasterEngineSpinningUp) { eth.assertEvent5("inj end#2", 1, (void*)endSimultaneousInjection, 149999); // Now perform a fake VVT sync and check that ignition mode changes to sequential - engine->triggerCentral.syncAndReport(1, 0); + engine->triggerCentral.syncAndReport(2, 0); ASSERT_EQ(IM_SEQUENTIAL, getCurrentIgnitionMode()); // skip, clear & advance 1 more revolution at higher RPM diff --git a/unit_tests/tests/trigger/test_real_cas_24_plus_1.cpp b/unit_tests/tests/trigger/test_real_cas_24_plus_1.cpp new file mode 100644 index 0000000000..18185ad436 --- /dev/null +++ b/unit_tests/tests/trigger/test_real_cas_24_plus_1.cpp @@ -0,0 +1,64 @@ +// Mitsubishi 4B11 trigger pattern +// Crank: 36-2-1 +// Cam: Single tooth (half moon) + +#include "pch.h" + +#include "logicdata_csv_reader.h" + +TEST(realCas24Plus1, spinningOnBench) { + CsvReader reader(1, /* vvtCount */ 1); + + reader.open("tests/trigger/resources/cas_nissan_24_plus_1.csv"); + EngineTestHelper eth(engine_type_e::TEST_ENGINE); + + engineConfiguration->isFasterEngineSpinUpEnabled = true; + engineConfiguration->alwaysInstantRpm = true; + + engineConfiguration->isPhaseSyncRequiredForIgnition = true; + + // 24 teeth at cam speed + 1 tooth + // AKA 12 teeth at crank speed + 1 cam tooth + engineConfiguration->vvtMode[0] = VVT_SECOND_HALF; + eth.setTriggerType(trigger_type_e::TT_12_TOOTH_CRANK); + + int eventCount = 0; + bool gotRpm = false; + bool gotFullSync = false; + + while (reader.haveMore()) { + reader.processLine(ð); + eventCount++; + engine->rpmCalculator.onSlowCallback(); + + // Expect that all teeth are in the correct spot + float angleError = getTriggerCentral()->triggerToothAngleError; + EXPECT_TRUE(angleError < 3 && angleError > -3) << "tooth angle of " << angleError << " at timestamp " << (getTimeNowNt() / 1e8); + + auto rpm = Sensor::getOrZero(SensorType::Rpm); + if (!gotRpm && rpm) { + gotRpm = true; + + // We should get first RPM on exactly the first (primary) sync point - this means the instant RPM pre-sync event copy all worked OK + EXPECT_EQ(eventCount, 7); + EXPECT_NEAR(rpm, 808.32f, 0.1); + } + + bool hasFullSync = getTriggerCentral()->triggerState.hasSynchronizedPhase(); + if (!gotFullSync && hasFullSync) { + gotFullSync = true; + + // Should get full sync on the first cam tooth + EXPECT_EQ(eventCount, 40); + EXPECT_NEAR(rpm, 915.08f, 0.1); + } + + float vvt = engine->triggerCentral.getVVTPosition(/*bankIndex*/0, /*camIndex*/0); + if (vvt != 0) { + // cam position should never be reported outside of correct range + EXPECT_TRUE(vvt > -10 && vvt < -9); + } + } + + ASSERT_EQ(0, eth.recentWarnings()->getCount()); +} diff --git a/unit_tests/tests/trigger/test_trigger_decoder.cpp b/unit_tests/tests/trigger/test_trigger_decoder.cpp index 52c0c618f1..b8dd025e97 100644 --- a/unit_tests/tests/trigger/test_trigger_decoder.cpp +++ b/unit_tests/tests/trigger/test_trigger_decoder.cpp @@ -813,7 +813,6 @@ TEST(big, testTwoWireBatch) { assertInjectionEventBatch("inj#3@", &t->elements[3], 1, 2, 0, 153 + 180); // Cyl 2 and 3 } - TEST(big, testSequential) { EngineTestHelper eth(engine_type_e::TEST_ENGINE); setTable(config->injectionPhase, -180.0f); @@ -842,6 +841,62 @@ TEST(big, testSequential) { assertInjectionEvent("inj#3@", &t->elements[3], 1, 0, 126 + 180); // Cyl 2 } +TEST(big, testBatch) { + EngineTestHelper eth(engine_type_e::TEST_ENGINE); + setTable(config->injectionPhase, -180.0f); + EXPECT_CALL(*eth.mockAirmass, getAirmass(_, _)) + .WillRepeatedly(Return(AirmassResult{0.1008f, 50.0f})); + + setupSimpleTestEngineWithMafAndTT_ONE_trigger(ð); + + engineConfiguration->injectionMode = IM_BATCH; + + eth.fireTriggerEventsWithDuration(20); + // still no RPM since need to cycles measure cycle duration + eth.fireTriggerEventsWithDuration(20); + eth.executeActions(); + + /** + * Trigger up - scheduling fuel for full engine cycle + */ + eth.fireRise(20); + + FuelSchedule * t = &engine->injectionEvents; + + assertInjectionEventBatch("#0", &t->elements[0], 0, 3, 1, 153 + 360); // Cyl 1 + 4 + assertInjectionEventBatch("#1_i_@", &t->elements[1], 2, 1, 1, 153 + 540); // Cyl 3 + 2 + assertInjectionEventBatch("#2@", &t->elements[2], 3, 0, 0, 153); // Cyl 4 + 1 + assertInjectionEventBatch("inj#3@", &t->elements[3], 1, 2, 0, 153 + 180); // Cyl 2 + 3 +} + +TEST(big, testSinglePoint) { + EngineTestHelper eth(engine_type_e::TEST_ENGINE); + setTable(config->injectionPhase, -180.0f); + EXPECT_CALL(*eth.mockAirmass, getAirmass(_, _)) + .WillRepeatedly(Return(AirmassResult{0.1008f, 50.0f})); + + setupSimpleTestEngineWithMafAndTT_ONE_trigger(ð); + + engineConfiguration->injectionMode = IM_SINGLE_POINT; + + eth.fireTriggerEventsWithDuration(20); + // still no RPM since need to cycles measure cycle duration + eth.fireTriggerEventsWithDuration(20); + eth.executeActions(); + + /** + * Trigger up - scheduling fuel for full engine cycle + */ + eth.fireRise(20); + + FuelSchedule * t = &engine->injectionEvents; + + assertInjectionEvent("#0", &t->elements[0], 0, 1, 126 + 360); // Cyl 1 + assertInjectionEvent("#1_i_@", &t->elements[1], 0, 1, 126 + 540); // Cyl 3 + assertInjectionEvent("#2@", &t->elements[2], 0, 0, 126); // Cyl 4 + assertInjectionEvent("inj#3@", &t->elements[3], 0, 0, 126 + 180); // Cyl 2 +} + TEST(big, testFuelSchedulerBug299smallAndLarge) { EngineTestHelper eth(engine_type_e::TEST_ENGINE); setTable(config->injectionPhase, -180.0f); @@ -972,7 +1027,7 @@ TEST(big, testSparkReverseOrderBug319) { setConstantDwell(45); - engine->triggerCentral.syncAndReport(1, 0); + engine->triggerCentral.syncAndReport(2, 0); // this is needed to update injectorLag engine->updateSlowSensors(); @@ -985,7 +1040,7 @@ TEST(big, testSparkReverseOrderBug319) { eth.fireRise(20); eth.fireFall(20); - engine->triggerCentral.syncAndReport(1, 0); + engine->triggerCentral.syncAndReport(2, 0); eth.executeActions();