rusefi-1/firmware/controllers/generated/engine_configuration_genera...

4958 lines
99 KiB
C
Raw Normal View History

2022-07-27 23:53:58 -07:00
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 28 06:53:47 UTC 2022
2019-07-21 09:16:25 -07:00
// by class com.rusefi.output.CHeaderConsumer
2017-03-27 19:19:58 -07:00
// begin
2020-07-05 23:07:22 -07:00
#pragma once
2015-07-10 06:01:56 -07:00
#include "rusefi_types.h"
2020-04-13 06:23:13 -07:00
// start of stft_cell_cfg_s
struct stft_cell_cfg_s {
/**
2021-04-26 14:59:44 -07:00
%
2020-04-13 06:23:13 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
int8_t maxAdd;
2022-04-24 20:46:16 -07:00
/**
%
2022-04-24 21:01:07 -07:00
* offset 1
2022-04-24 20:46:16 -07:00
*/
2021-12-01 21:04:17 -08:00
int8_t maxRemove;
2020-04-13 06:23:13 -07:00
/**
2021-10-29 12:52:10 -07:00
* Time constant for correction while in this cell: this sets responsiveness of the closed loop correction. A value of 5.0 means it will try to make most of the correction within 5 seconds, and a value of 1.0 will try to correct within 1 second.
2021-04-26 14:59:44 -07:00
sec
2022-04-24 21:01:07 -07:00
* offset 2
2020-04-13 06:23:13 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint16_t, 10, 1> timeConstant;
2020-04-13 06:23:13 -07:00
};
2022-04-24 21:01:07 -07:00
static_assert(sizeof(stft_cell_cfg_s) == 4);
2020-04-13 06:23:13 -07:00
// start of stft_s
struct stft_s {
/**
* Below this RPM, the idle region is active
2021-04-26 14:59:44 -07:00
RPM
2020-04-13 06:23:13 -07:00
* offset 0
*/
2021-12-19 19:56:33 -08:00
scaled_channel<uint8_t, 1, 50> maxIdleRegionRpm;
2020-04-13 06:23:13 -07:00
/**
* Below this engine load, the overrun region is active
2021-04-26 14:59:44 -07:00
load
2022-04-24 21:01:07 -07:00
* offset 1
2020-04-13 06:23:13 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t maxOverrunLoad;
2020-04-13 06:23:13 -07:00
/**
* Above this engine load, the power region is active
2021-04-26 14:59:44 -07:00
load
2022-04-24 21:01:07 -07:00
* offset 2
2020-04-13 06:23:13 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t minPowerLoad;
2020-04-13 06:23:13 -07:00
/**
* When close to correct AFR, pause correction. This can improve stability by not changing the adjustment if the error is extremely small, but is not required.
2021-04-26 14:59:44 -07:00
%
2022-04-24 21:01:07 -07:00
* offset 3
2020-04-13 06:23:13 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 10, 1> deadband;
2020-04-13 06:23:13 -07:00
/**
* Below this temperature, correction is disabled.
2021-04-26 14:59:44 -07:00
C
2022-04-24 21:01:07 -07:00
* offset 4
2020-04-13 06:23:13 -07:00
*/
2021-12-01 21:04:17 -08:00
int8_t minClt;
2020-04-13 06:23:13 -07:00
/**
* Below this AFR, correction is paused
2021-04-26 14:59:44 -07:00
afr
2022-04-24 21:01:07 -07:00
* offset 5
2020-04-13 06:23:13 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 10, 1> minAfr;
2020-04-13 06:23:13 -07:00
/**
* Above this AFR, correction is paused
2021-04-26 14:59:44 -07:00
afr
2022-04-24 21:01:07 -07:00
* offset 6
2020-04-13 06:23:13 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 10, 1> maxAfr;
2020-04-13 06:23:13 -07:00
/**
* Delay after starting the engine before beginning closed loop correction.
2021-04-26 14:59:44 -07:00
seconds
2022-04-24 21:01:07 -07:00
* offset 7
2020-04-13 06:23:13 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t startupDelay;
2020-04-13 06:23:13 -07:00
/**
2022-04-24 21:01:07 -07:00
* offset 8
2020-04-13 06:23:13 -07:00
*/
stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT];
};
2022-04-24 21:01:07 -07:00
static_assert(sizeof(stft_s) == 24);
2020-04-13 06:23:13 -07:00
2018-12-19 18:32:26 -08:00
// start of pid_s
struct pid_s {
2017-03-27 19:19:58 -07:00
/**
* offset 0
*/
2021-12-01 21:04:17 -08:00
float pFactor;
2017-03-27 19:19:58 -07:00
/**
* offset 4
*/
2021-12-01 21:04:17 -08:00
float iFactor;
2017-03-27 19:19:58 -07:00
/**
* offset 8
*/
2021-12-01 21:04:17 -08:00
float dFactor;
2017-03-27 19:19:58 -07:00
/**
* Linear addition to PID logic
* offset 12
*/
2021-12-01 21:04:17 -08:00
int16_t offset;
/**
* PID dTime
2021-04-26 14:59:44 -07:00
ms
* offset 14
*/
2021-12-01 21:04:17 -08:00
int16_t periodMs;
/**
2021-10-28 11:24:50 -07:00
* Output Min Duty Cycle
* offset 16
*/
2021-12-01 21:04:17 -08:00
int16_t minValue;
/**
2021-10-28 11:24:50 -07:00
* Output Max Duty Cycle
* offset 18
*/
2021-12-01 21:04:17 -08:00
int16_t maxValue;
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(pid_s) == 20);
2018-12-19 18:32:26 -08:00
// start of cranking_parameters_s
struct cranking_parameters_s {
2017-03-27 19:19:58 -07:00
/**
2020-10-26 04:25:24 -07:00
* Base mass of the per-cylinder fuel injected during cranking. This is then modified by the multipliers for CLT, IAT, TPS ect, to give the final cranking pulse width.
* A reasonable starting point is 60mg per liter per cylinder.
* ex: 2 liter 4 cyl = 500cc/cyl, so 30mg cranking fuel.
2021-04-26 14:59:44 -07:00
mg
2017-03-27 19:19:58 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
float baseFuel;
2017-03-27 19:19:58 -07:00
/**
2019-06-13 11:56:13 -07:00
* This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm.
2017-03-27 19:19:58 -07:00
* set cranking_rpm X
2021-04-26 14:59:44 -07:00
RPM
2017-03-27 19:19:58 -07:00
* offset 4
*/
2021-12-01 21:04:17 -08:00
int16_t rpm;
2017-03-27 19:19:58 -07:00
/**
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
2017-03-27 19:19:58 -07:00
* offset 6
*/
2020-02-02 10:18:41 -08:00
uint8_t alignmentFill_at_6[2];
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(cranking_parameters_s) == 8);
2019-04-04 18:34:33 -07:00
// start of spi_pins
struct spi_pins {
2019-04-04 18:34:33 -07:00
/**
* offset 0
*/
2022-04-28 15:06:22 -07:00
Gpio mosiPin;
2019-04-04 18:34:33 -07:00
/**
2022-04-29 16:48:53 -07:00
* offset 2
2019-04-04 18:34:33 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio misoPin;
2019-04-04 18:34:33 -07:00
/**
2022-04-29 16:48:53 -07:00
* offset 4
2019-04-04 18:34:33 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio sckPin;
2019-04-04 18:34:33 -07:00
/**
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
2022-04-29 16:48:53 -07:00
* offset 6
2019-04-04 18:34:33 -07:00
*/
2022-04-29 16:48:53 -07:00
uint8_t alignmentFill_at_6[2];
};
2022-04-29 16:48:53 -07:00
static_assert(sizeof(spi_pins) == 8);
2020-04-25 15:07:37 -07:00
// start of gppwm_channel
struct gppwm_channel {
/**
* Select a pin to use for PWM or on-off output.
* offset 0
*/
2020-04-26 11:19:00 -07:00
output_pin_e pin;
2020-04-25 15:07:37 -07:00
/**
* If an error (with a sensor, etc) is detected, this value is used instead of reading from the table.
* This should be a safe value for whatever hardware is connected to prevent damage.
2021-04-26 14:59:44 -07:00
%
2022-04-29 16:48:53 -07:00
* offset 2
2020-04-25 15:07:37 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t dutyIfError;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
* offset 3
*/
uint8_t alignmentFill_at_3[1];
2020-04-25 15:07:37 -07:00
/**
* Select a frequency to run PWM at.
* Set this to 0hz to enable on-off mode.
2021-04-26 14:59:44 -07:00
hz
2022-04-29 16:48:53 -07:00
* offset 4
2020-04-25 15:07:37 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t pwmFrequency;
2020-04-25 15:07:37 -07:00
/**
2021-09-05 17:26:59 -07:00
* Hysteresis: in on-off mode, turn the output on when the table value is above this duty.
2021-04-26 14:59:44 -07:00
%
2022-04-29 16:48:53 -07:00
* offset 6
2020-04-25 15:07:37 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t onAboveDuty;
2020-04-25 15:07:37 -07:00
/**
2021-09-05 17:26:59 -07:00
* Hysteresis: in on-off mode, turn the output off when the table value is below this duty.
2021-04-26 14:59:44 -07:00
%
2022-04-29 16:48:53 -07:00
* offset 7
2020-04-25 15:07:37 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t offBelowDuty;
2020-04-25 15:07:37 -07:00
/**
* Selects the load axis to use for the table.
2022-04-29 16:48:53 -07:00
* offset 8
2020-04-25 15:07:37 -07:00
*/
gppwm_channel_e loadAxis;
/**
2021-04-26 14:59:44 -07:00
unit
2022-04-29 16:48:53 -07:00
* offset 9
2020-04-25 15:07:37 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t alignmentFill_map;
2020-04-25 15:07:37 -07:00
/**
2021-04-26 14:59:44 -07:00
load
2022-04-29 16:48:53 -07:00
* offset 10
2020-04-25 15:07:37 -07:00
*/
uint8_t loadBins[GPPWM_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2022-04-29 16:48:53 -07:00
* offset 18
2020-04-25 15:07:37 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<uint8_t, 1, 100> rpmBins[GPPWM_RPM_COUNT];
2020-04-25 15:07:37 -07:00
/**
2021-11-05 19:01:07 -07:00
duty
2022-04-29 16:48:53 -07:00
* offset 26
2020-04-25 15:07:37 -07:00
*/
2021-11-05 19:01:07 -07:00
uint8_t table[GPPWM_RPM_COUNT][GPPWM_LOAD_COUNT];
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
* offset 90
*/
uint8_t alignmentFill_at_90[2];
2020-04-25 15:07:37 -07:00
};
2022-04-29 16:48:53 -07:00
static_assert(sizeof(gppwm_channel) == 92);
2020-04-25 15:07:37 -07:00
2018-12-19 18:32:26 -08:00
// start of air_pressure_sensor_config_s
struct air_pressure_sensor_config_s {
2017-03-27 19:19:58 -07:00
/**
* kPa value at low volts
2021-04-26 14:59:44 -07:00
kpa
2017-03-27 19:19:58 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
float lowValue;
2017-03-27 19:19:58 -07:00
/**
* kPa value at high volts
2021-04-26 14:59:44 -07:00
kpa
2017-03-27 19:19:58 -07:00
* offset 4
*/
2021-12-01 21:04:17 -08:00
float highValue;
2017-03-27 19:19:58 -07:00
/**
* offset 8
*/
air_pressure_sensor_type_e type;
/**
2022-05-01 05:09:38 -07:00
* offset 9
2017-03-27 19:19:58 -07:00
*/
adc_channel_e hwChannel;
2022-04-24 20:46:16 -07:00
/**
2022-04-25 18:42:14 -07:00
* need 4 byte alignment
units
2022-05-01 05:09:38 -07:00
* offset 10
2022-04-24 20:46:16 -07:00
*/
2022-05-01 05:09:38 -07:00
uint8_t alignmentFill_at_10[2];
};
2022-05-01 05:09:38 -07:00
static_assert(sizeof(air_pressure_sensor_config_s) == 12);
/**
2017-03-27 19:19:58 -07:00
* @brief MAP averaging configuration
*/
2018-12-19 18:32:26 -08:00
// start of MAP_sensor_config_s
struct MAP_sensor_config_s {
2017-03-27 19:19:58 -07:00
/**
* offset 0
*/
2015-07-10 06:01:56 -07:00
float samplingAngleBins[MAP_ANGLE_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* MAP averaging sampling start crank degree angle
2021-04-26 14:59:44 -07:00
deg
2017-03-27 19:19:58 -07:00
* offset 32
*/
2015-07-10 06:01:56 -07:00
float samplingAngle[MAP_ANGLE_SIZE];
2017-03-27 19:19:58 -07:00
/**
* offset 64
*/
2015-07-10 06:01:56 -07:00
float samplingWindowBins[MAP_WINDOW_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* MAP averaging angle crank degree duration
2021-04-26 14:59:44 -07:00
deg
2017-03-27 19:19:58 -07:00
* offset 96
*/
2015-07-10 06:01:56 -07:00
float samplingWindow[MAP_WINDOW_SIZE];
2017-03-27 19:19:58 -07:00
/**
* offset 128
*/
air_pressure_sensor_config_s sensor;
};
2022-05-01 05:09:38 -07:00
static_assert(sizeof(MAP_sensor_config_s) == 140);
/**
2017-03-27 19:19:58 -07:00
* @brief Thermistor known values
*/
2018-12-19 18:32:26 -08:00
// start of thermistor_conf_s
struct thermistor_conf_s {
2017-03-27 19:19:58 -07:00
/**
2019-06-11 19:01:07 -07:00
* these values are in Celcius
2021-04-26 14:59:44 -07:00
*C
2017-03-27 19:19:58 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
float tempC_1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
*C
2017-03-27 19:19:58 -07:00
* offset 4
*/
2021-12-01 21:04:17 -08:00
float tempC_2;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
*C
2017-03-27 19:19:58 -07:00
* offset 8
*/
2021-12-01 21:04:17 -08:00
float tempC_3;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
Ohm
2017-03-27 19:19:58 -07:00
* offset 12
*/
2021-12-01 21:04:17 -08:00
float resistance_1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
Ohm
2017-03-27 19:19:58 -07:00
* offset 16
*/
2021-12-01 21:04:17 -08:00
float resistance_2;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
Ohm
2017-03-27 19:19:58 -07:00
* offset 20
*/
2021-12-01 21:04:17 -08:00
float resistance_3;
2017-03-27 19:19:58 -07:00
/**
2019-06-11 17:32:27 -07:00
* Pull-up resistor value on your board
2021-04-26 14:59:44 -07:00
Ohm
2017-03-27 19:19:58 -07:00
* offset 24
*/
2021-12-01 21:04:17 -08:00
float bias_resistor;
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(thermistor_conf_s) == 28);
/**
2020-10-23 04:33:40 -07:00
* @brief Linear sensor interpolation
*/
2020-10-23 04:33:40 -07:00
// start of linear_sensor_s
struct linear_sensor_s {
/**
* offset 0
*/
adc_channel_e hwChannel;
2022-04-24 20:46:16 -07:00
/**
2022-04-25 18:42:14 -07:00
* need 4 byte alignment
units
2022-04-24 21:01:07 -07:00
* offset 1
2022-04-24 20:46:16 -07:00
*/
2022-04-25 18:42:14 -07:00
uint8_t alignmentFill_at_1[3];
/**
2021-04-26 14:59:44 -07:00
volts
2022-04-24 21:01:07 -07:00
* offset 4
*/
2021-12-01 21:04:17 -08:00
float v1;
/**
2021-04-26 14:59:44 -07:00
kPa
2022-04-24 21:01:07 -07:00
* offset 8
*/
2021-12-01 21:04:17 -08:00
float value1;
/**
2021-04-26 14:59:44 -07:00
volts
2022-04-24 21:01:07 -07:00
* offset 12
*/
2021-12-01 21:04:17 -08:00
float v2;
/**
2021-04-26 14:59:44 -07:00
kPa
2022-04-24 21:01:07 -07:00
* offset 16
*/
2021-12-01 21:04:17 -08:00
float value2;
};
2022-04-24 21:01:07 -07:00
static_assert(sizeof(linear_sensor_s) == 20);
/**
2017-03-27 19:19:58 -07:00
* @brief Thermistor curve parameters
*/
2018-12-19 18:32:26 -08:00
// start of ThermistorConf
struct ThermistorConf {
2017-03-27 19:19:58 -07:00
/**
* offset 0
*/
thermistor_conf_s config;
/**
* offset 28
*/
adc_channel_e adcChannel;
/**
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
* offset 29
*/
2020-02-02 10:18:41 -08:00
uint8_t alignmentFill_at_29[3];
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(ThermistorConf) == 32);
2018-12-19 18:32:26 -08:00
// start of injector_s
struct injector_s {
2017-03-27 19:19:58 -07:00
/**
* This is your injector flow at the fuel pressure used in the vehicle. cc/min, cubic centimetre per minute
2017-03-27 19:19:58 -07:00
* By the way, g/s = 0.125997881 * (lb/hr)
* g/s = 0.125997881 * (cc/min)/10.5
* g/s = 0.0119997981 * cc/min
2021-04-26 14:59:44 -07:00
cm3/min
2017-03-27 19:19:58 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
float flow;
2017-03-27 19:19:58 -07:00
/**
* set_flat_injector_lag LAG
* set_injector_lag VOLTAGE LAG
2021-04-26 14:59:44 -07:00
volts
* offset 4
2017-03-27 19:19:58 -07:00
*/
2015-07-10 06:01:56 -07:00
float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
* ms delay between injector open and close dead times
2021-04-26 14:59:44 -07:00
ms
* offset 36
2017-03-27 19:19:58 -07:00
*/
2015-07-10 06:01:56 -07:00
float battLagCorr[VBAT_INJECTOR_CURVE_SIZE];
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(injector_s) == 68);
2018-12-19 18:32:26 -08:00
// start of specs_s
struct specs_s {
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* Engine volume/capacity, in litres
2017-03-27 19:19:58 -07:00
* see also cylindersCount
2021-04-26 14:59:44 -07:00
L
2017-03-27 19:19:58 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
float displacement;
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* Number of cylinder the engine has.
2017-03-27 19:19:58 -07:00
* offset 4
*/
2021-12-01 21:04:17 -08:00
uint32_t cylindersCount;
2017-03-27 19:19:58 -07:00
/**
* offset 8
*/
firing_order_e firingOrder;
2022-05-01 20:14:48 -07:00
/**
* need 4 byte alignment
units
* offset 9
*/
uint8_t alignmentFill_at_9[3];
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(specs_s) == 12);
/**
2017-03-27 19:19:58 -07:00
* @brief Trigger wheel(s) configuration
*/
2018-12-19 18:32:26 -08:00
// start of trigger_config_s
struct trigger_config_s {
2017-03-27 19:19:58 -07:00
/**
2021-04-18 06:37:46 -07:00
* https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers
2017-03-27 19:19:58 -07:00
* set trigger_type X
* offset 0
*/
trigger_type_e type;
/**
2021-04-26 14:59:44 -07:00
number
2022-05-30 04:21:11 -07:00
* offset 4
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int customTotalToothCount;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
number
2022-05-30 04:21:11 -07:00
* offset 8
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int customSkippedToothCount;
};
2022-05-30 04:21:11 -07:00
static_assert(sizeof(trigger_config_s) == 12);
2018-12-19 18:32:26 -08:00
// start of afr_sensor_s
struct afr_sensor_s {
2017-03-27 19:19:58 -07:00
/**
* offset 0
*/
adc_channel_e hwChannel;
2022-04-24 20:46:16 -07:00
/**
2022-04-25 18:42:14 -07:00
* need 4 byte alignment
units
2022-04-24 21:01:07 -07:00
* offset 1
2022-04-24 20:46:16 -07:00
*/
2022-04-25 18:42:14 -07:00
uint8_t alignmentFill_at_1[3];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
volts
2022-04-24 21:01:07 -07:00
* offset 4
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float v1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
AFR
2022-04-24 21:01:07 -07:00
* offset 8
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float value1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
volts
2022-04-24 21:01:07 -07:00
* offset 12
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float v2;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
AFR
2022-04-24 21:01:07 -07:00
* offset 16
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float value2;
};
2022-04-24 21:01:07 -07:00
static_assert(sizeof(afr_sensor_s) == 20);
2018-12-19 18:32:26 -08:00
// start of idle_hardware_s
struct idle_hardware_s {
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
Hz
2017-03-27 19:19:58 -07:00
* offset 0
*/
2021-12-01 21:04:17 -08:00
int solenoidFrequency;
2017-03-27 19:19:58 -07:00
/**
* offset 4
*/
2020-03-09 16:15:13 -07:00
output_pin_e solenoidPin;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* offset 6
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio stepperDirectionPin;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* offset 8
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio stepperStepPin;
/**
2022-04-29 16:48:53 -07:00
* offset 10
*/
pin_output_mode_e solenoidPinMode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
* offset 11
*/
uint8_t alignmentFill_at_11[1];
};
2022-04-29 16:48:53 -07:00
static_assert(sizeof(idle_hardware_s) == 12);
2020-11-16 16:45:34 -08:00
// start of dc_io
struct dc_io {
/**
* offset 0
*/
2022-04-28 15:06:22 -07:00
Gpio directionPin1;
/**
2022-04-29 16:48:53 -07:00
* offset 2
*/
2022-04-28 15:06:22 -07:00
Gpio directionPin2;
/**
2021-06-05 13:09:52 -07:00
* Acts as EN pin in two-wire mode
2022-04-29 16:48:53 -07:00
* offset 4
*/
2022-04-28 15:06:22 -07:00
Gpio controlPin;
/**
2022-04-29 16:48:53 -07:00
* offset 6
*/
2022-04-28 15:06:22 -07:00
Gpio disablePin;
};
2022-04-29 16:48:53 -07:00
static_assert(sizeof(dc_io) == 8);
2021-07-28 04:49:04 -07:00
// start of vr_threshold_s
struct vr_threshold_s {
/**
2022-04-24 23:20:36 -07:00
rpm
2021-07-28 04:49:04 -07:00
* offset 0
*/
2022-04-24 23:20:36 -07:00
scaled_channel<uint8_t, 1, 50> rpmBins[6];
2021-07-28 04:49:04 -07:00
/**
2022-04-24 23:20:36 -07:00
volts
* offset 6
2021-07-28 04:49:04 -07:00
*/
2022-04-24 23:20:36 -07:00
scaled_channel<uint8_t, 100, 1> values[6];
2021-07-28 04:49:04 -07:00
/**
2022-04-24 23:20:36 -07:00
* offset 12
2021-07-28 04:49:04 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio pin;
2021-07-28 04:49:04 -07:00
/**
2022-04-24 23:20:36 -07:00
* need 4 byte alignment
units
2022-04-29 16:48:53 -07:00
* offset 14
2021-07-28 04:49:04 -07:00
*/
2022-04-29 16:48:53 -07:00
uint8_t alignmentFill_at_14[2];
2021-07-28 04:49:04 -07:00
};
2022-04-24 21:01:07 -07:00
static_assert(sizeof(vr_threshold_s) == 16);
2021-07-28 04:49:04 -07:00
// start of engine_configuration_s
struct engine_configuration_s {
2017-03-27 19:19:58 -07:00
/**
* http://rusefi.com/wiki/index.php?title=Manual:Engine_Type
* set engine_type X
2017-03-27 19:19:58 -07:00
* offset 0
*/
engine_type_e engineType;
2021-12-19 23:04:16 -08:00
/**
* Disable sensor sniffer above this rpm
RPM
2022-05-02 02:02:46 -07:00
* offset 4
2021-12-19 23:04:16 -08:00
*/
2022-06-29 15:52:53 -07:00
uint16_t sensorSnifferRpmThreshold;
2021-12-19 23:04:16 -08:00
/**
2022-06-29 15:52:53 -07:00
* A secondary Rev limit engaged by the driver to help launch the vehicle faster
2021-12-19 23:04:16 -08:00
rpm
2022-06-29 15:52:53 -07:00
* offset 6
2021-12-19 23:04:16 -08:00
*/
2022-06-29 15:52:53 -07:00
uint16_t launchRpm;
2021-12-19 23:04:16 -08:00
/**
2022-06-29 15:52:53 -07:00
* set rpm_hard_limit X
2021-12-19 23:04:16 -08:00
rpm
2022-06-29 15:52:53 -07:00
* offset 8
2021-12-19 23:04:16 -08:00
*/
2022-06-29 15:52:53 -07:00
uint16_t rpmHardLimit;
2022-04-24 20:46:16 -07:00
/**
* Engine sniffer would be disabled above this rpm
* set engineSnifferRpmThreshold X
RPM
2022-06-29 15:52:53 -07:00
* offset 10
*/
2022-06-29 15:52:53 -07:00
uint16_t engineSnifferRpmThreshold;
2017-03-27 19:19:58 -07:00
/**
2021-12-19 23:04:16 -08:00
* Disable multispark above this engine speed.
rpm
2022-06-29 15:52:53 -07:00
* offset 12
2017-03-27 19:19:58 -07:00
*/
2021-12-19 23:04:16 -08:00
scaled_channel<uint8_t, 1, 50> multisparkMaxRpm;
/**
* Above this RPM, disable AC. Set to 0 to disable check.
rpm
2022-06-29 15:52:53 -07:00
* offset 13
2021-12-19 23:04:16 -08:00
*/
scaled_channel<uint8_t, 1, 50> maxAcRpm;
/**
* Above this TPS, disable AC. Set to 0 to disable check.
%
2022-06-29 15:52:53 -07:00
* offset 14
2021-12-19 23:04:16 -08:00
*/
uint8_t maxAcTps;
/**
* Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check.
deg C
2022-06-29 15:52:53 -07:00
* offset 15
2021-12-19 23:04:16 -08:00
*/
uint8_t maxAcClt;
/**
2022-04-18 05:10:05 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 16
2021-12-19 23:04:16 -08:00
*/
2022-06-29 15:52:53 -07:00
uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE];
2021-12-19 23:04:16 -08:00
/**
* This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC.
deg
2022-06-29 15:52:53 -07:00
* offset 48
2021-12-19 23:04:16 -08:00
*/
uint8_t multisparkMaxSparkingAngle;
/**
* Configures the maximum number of extra sparks to fire (does not include main spark)
count
2022-06-29 15:52:53 -07:00
* offset 49
2021-12-19 23:04:16 -08:00
*/
uint8_t multisparkMaxExtraSparkCount;
2022-04-24 21:01:07 -07:00
/**
2022-05-02 02:02:46 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 50
2022-05-02 02:02:46 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_50[2];
2022-05-02 02:02:46 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 52
2021-12-19 23:04:16 -08:00
*/
injector_s injector;
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* Does the vehicle have a turbo or supercharger?
2022-06-29 15:52:53 -07:00
offset 120 bit 0 */
2021-11-19 20:16:43 -08:00
bool isForcedInduction : 1 {};
/**
2021-04-30 08:03:28 -07:00
* On Ford vehicles one of the sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor.
2022-06-29 15:52:53 -07:00
offset 120 bit 1 */
2021-11-19 20:16:43 -08:00
bool useFordRedundantTps : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 2 */
2021-11-19 20:16:43 -08:00
bool isVerboseAuxPid1 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 3 */
2021-11-19 20:16:43 -08:00
bool overrideTriggerGaps : 1 {};
/**
2021-06-11 03:27:21 -07:00
* Turn on this fan when AC is on.
2022-06-29 15:52:53 -07:00
offset 120 bit 4 */
2021-11-19 20:16:43 -08:00
bool enableFan1WithAc : 1 {};
/**
2021-06-11 03:27:21 -07:00
* Turn on this fan when AC is on.
2022-06-29 15:52:53 -07:00
offset 120 bit 5 */
2021-11-19 20:16:43 -08:00
bool enableFan2WithAc : 1 {};
/**
2021-06-28 05:55:05 -07:00
* Inhibit operation of this fan while the engine is not running.
2022-06-29 15:52:53 -07:00
offset 120 bit 6 */
2021-11-19 20:16:43 -08:00
bool disableFan1WhenStopped : 1 {};
/**
2021-06-28 05:55:05 -07:00
* Inhibit operation of this fan while the engine is not running.
2022-06-29 15:52:53 -07:00
offset 120 bit 7 */
2021-11-19 20:16:43 -08:00
bool disableFan2WhenStopped : 1 {};
/**
2021-07-09 05:40:06 -07:00
* Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines).
2022-06-29 15:52:53 -07:00
offset 120 bit 8 */
2021-11-19 20:16:43 -08:00
bool enableTrailingSparks : 1 {};
/**
2020-04-08 19:12:33 -07:00
* enable cj125verbose/disable cj125verbose
2022-06-29 15:52:53 -07:00
offset 120 bit 9 */
2021-11-19 20:16:43 -08:00
bool isCJ125Verbose : 1 {};
/**
2020-05-01 14:36:33 -07:00
* Is your UA CJ125 output wired to MCU via resistor divider? Ua can go over 3.3v but only at lambda >3, i.e very lean AFR above 44.1
* When exposed to free air and 17x gain, Ua will be 4.17 volt
2022-06-29 15:52:53 -07:00
offset 120 bit 10 */
2021-11-19 20:16:43 -08:00
bool cj125isUaDivided : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 11 */
2021-11-19 20:16:43 -08:00
bool cj125isLsu49 : 1 {};
/**
2020-03-29 07:29:33 -07:00
* TLE7209 uses two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode.
2022-06-29 15:52:53 -07:00
offset 120 bit 12 */
2021-11-19 20:16:43 -08:00
bool etb_use_two_wires : 1 {};
/**
2020-12-06 15:08:10 -08:00
* Subaru/BMW style where default valve position is somewhere in the middle. First solenoid opens it more while second can close it more than default position.
2022-06-29 15:52:53 -07:00
offset 120 bit 13 */
2021-11-19 20:16:43 -08:00
bool isDoubleSolenoidIdle : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 14 */
2022-02-06 16:04:39 -08:00
bool useEeprom : 1 {};
/**
2020-03-17 07:20:29 -07:00
* Is your UR CJ125 output wired to MCU via resistor divider?
* Looks like 3v range should be enough, divider generally not needed.
2022-06-29 15:52:53 -07:00
offset 120 bit 15 */
2021-11-19 20:16:43 -08:00
bool cj125isUrDivided : 1 {};
/**
2020-07-12 14:36:03 -07:00
* Switch between Industrial and Cic PID implementation
2022-06-29 15:52:53 -07:00
offset 120 bit 16 */
2021-11-19 20:16:43 -08:00
bool useCicPidForIdle : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 17 */
2021-11-19 20:16:43 -08:00
bool useTLE8888_cranking_hack : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 18 */
2021-11-19 20:16:43 -08:00
bool useInstantRpmForIdle : 1 {};
/**
2021-10-06 09:18:32 -07:00
* This uses separate ignition timing and VE tables not only for idle conditions, also during the postcranking-to-idle taper transition (See also afterCrankingIACtaperDuration).
2022-06-29 15:52:53 -07:00
offset 120 bit 19 */
2021-11-19 20:16:43 -08:00
bool useSeparateIdleTablesForCrankingTaper : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 20 */
2021-11-19 20:16:43 -08:00
bool launchControlEnabled : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 21 */
2021-11-19 20:16:43 -08:00
bool rollingLaunchEnabled : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 22 */
2021-11-19 20:16:43 -08:00
bool antiLagEnabled : 1 {};
/**
2021-05-21 12:28:41 -07:00
* For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table).
2022-06-29 15:52:53 -07:00
offset 120 bit 23 */
2021-11-19 20:16:43 -08:00
bool useRunningMathForCranking : 1 {};
/**
2021-04-04 17:01:45 -07:00
* Shall we display real life signal or just the part consumed by trigger decoder.
2021-10-24 13:06:18 -07:00
* Applies to both trigger and cam/vvt input.
*
2021-04-07 13:46:09 -07:00
* enable logic_level_trigger
2022-06-29 15:52:53 -07:00
offset 120 bit 24 */
2021-11-19 20:16:43 -08:00
bool displayLogicLevelsInEngineSniffer : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 25 */
2021-11-19 20:16:43 -08:00
bool useTLE8888_stepper : 1 {};
/**
2021-01-31 14:21:02 -08:00
* If enabled, the MAP estimate table will be used if the MAP sensor fails to estimate manifold pressure based on RPM and TPS.
2022-06-29 15:52:53 -07:00
offset 120 bit 26 */
2021-11-19 20:16:43 -08:00
bool enableMapEstimationTableFallback : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 27 */
2021-11-19 20:16:43 -08:00
bool usescriptTableForCanSniffingFiltering : 1 {};
/**
2022-02-10 07:29:24 -08:00
* Print incoming and outgoing first bus CAN messages in rusEFI console
2022-06-29 15:52:53 -07:00
offset 120 bit 28 */
2021-12-06 18:38:31 -08:00
bool verboseCan : 1 {};
/**
2021-11-03 14:10:50 -07:00
* Experimental setting that will cause a misfire
2021-11-06 06:26:06 -07:00
* DO NOT ENABLE.
2022-06-29 15:52:53 -07:00
offset 120 bit 29 */
2021-11-19 20:16:43 -08:00
bool artificialTestMisfire : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 30 */
2021-11-19 20:16:43 -08:00
bool issue_294_31 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 120 bit 31 */
2022-05-02 02:02:46 -07:00
bool unusedBit_45_31 : 1 {};
/**
2020-11-14 15:08:03 -08:00
* Closed throttle, 1 volt = 200 units.
* See also tps1_1AdcChannel
* set tps_min X
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 124
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t tpsMin;
2017-03-27 19:19:58 -07:00
/**
2020-11-14 15:08:03 -08:00
* Full throttle.
* See also tps1_1AdcChannel
* set tps_max X
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 126
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t tpsMax;
2017-03-27 19:19:58 -07:00
/**
2020-05-10 07:11:51 -07:00
* TPS error detection: what throttle % is unrealistically low?
* Also used for accelerator pedal error detection if so equiped.
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 128
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t tpsErrorDetectionTooLow;
2017-03-27 19:19:58 -07:00
/**
2020-05-10 07:11:51 -07:00
* TPS error detection: what throttle % is unrealistically high?
* Also used for accelerator pedal error detection if so equiped.
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 130
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t tpsErrorDetectionTooHigh;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 132
2017-03-27 19:19:58 -07:00
*/
cranking_parameters_s cranking;
/**
2021-06-13 05:01:23 -07:00
* Dwell duration while cranking
2021-04-26 14:59:44 -07:00
ms
2022-06-29 15:52:53 -07:00
* offset 140
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float ignitionDwellForCrankingMs;
2017-03-27 19:19:58 -07:00
/**
2021-06-16 05:54:10 -07:00
* Once engine speed passes this value, start reducing ETB angle.
2021-06-16 14:09:18 -07:00
rpm
2022-06-29 15:52:53 -07:00
* offset 144
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t etbRevLimitStart;
2021-06-16 05:54:10 -07:00
/**
* This far above 'Soft limiter start', fully close the throttle. At the bottom of the range, throttle control is normal. At the top of the range, the throttle is fully closed.
2021-06-16 14:09:18 -07:00
rpm
2022-06-29 15:52:53 -07:00
* offset 146
2021-06-16 05:54:10 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t etbRevLimitRange;
2017-03-27 19:19:58 -07:00
/**
* @see isMapAveragingEnabled
2022-06-29 15:52:53 -07:00
* offset 148
2017-03-27 19:19:58 -07:00
*/
MAP_sensor_config_s map;
2017-03-27 19:19:58 -07:00
/**
* todo: merge with channel settings, use full-scale Thermistor here!
2022-06-29 15:52:53 -07:00
* offset 288
2017-03-27 19:19:58 -07:00
*/
ThermistorConf clt;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 320
2017-03-27 19:19:58 -07:00
*/
ThermistorConf iat;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 352
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int launchTimingRetard;
2017-03-27 19:19:58 -07:00
/**
* value '6' for 8MHz hw osc
* read hip9011 datasheet for details
* todo split into two bit fields
2021-04-26 14:59:44 -07:00
integer
2022-06-29 15:52:53 -07:00
* offset 356
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int hip9011PrescalerAndSDO;
2017-03-27 19:19:58 -07:00
/**
* We calculate knock band based of cylinderBore
* Use this to override - kHz knock band override
2021-04-26 14:59:44 -07:00
kHz
2022-06-29 15:52:53 -07:00
* offset 360
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float knockBandCustom;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 364
2017-03-27 19:19:58 -07:00
*/
specs_s specs;
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* Cylinder diameter in mm.
2021-04-26 14:59:44 -07:00
mm
2022-06-29 15:52:53 -07:00
* offset 376
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float cylinderBore;
/**
2021-06-17 08:41:07 -07:00
* This setting controls which fuel quantity control algorithm is used.
2021-11-03 14:10:50 -07:00
* Alpha-N means drive by TPS commonly only used for NA engines
* Speed Density requires MAP sensor and is the default choice for may installs
* MAF air charge is a cylinder filling based method that uses a mass air flow sensor.
2022-06-29 15:52:53 -07:00
* offset 380
*/
engine_load_mode_e fuelAlgorithm;
/**
2022-06-29 15:52:53 -07:00
* offset 381
*/
2022-05-01 12:20:46 -07:00
uint8_t alignmentFill_at_1[3];
/**
* This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous".
2022-06-29 15:52:53 -07:00
* offset 384
2022-05-01 12:20:46 -07:00
*/
injection_mode_e crankingInjectionMode;
/**
* This is where the fuel injection type is defined: "Simultaneous" means all injectors will fire together at once. "Sequential" fires the injectors on a per cylinder basis, which requires individually wired injectors. "Batched" will fire the injectors in groups. If your injectors are individually wired you will also need to enable "Two wire batch emulation".
* set injection_mode X
* See also twoWireBatchInjection
2022-06-29 15:52:53 -07:00
* offset 385
*/
injection_mode_e injectionMode;
2022-05-01 11:18:04 -07:00
/**
2022-07-27 23:53:58 -07:00
* Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.
2022-06-29 15:52:53 -07:00
* offset 386
2022-05-01 11:18:04 -07:00
*/
2022-07-27 23:53:58 -07:00
uint16_t boostControlMinRpm;
/**
2022-07-27 23:53:58 -07:00
* Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.
2022-06-29 15:52:53 -07:00
* offset 388
*/
2022-07-27 23:53:58 -07:00
uint8_t boostControlMinTps;
/**
* Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.
* offset 389
*/
uint8_t boostControlMinMap;
/**
* need 4 byte alignment
units
* offset 390
*/
uint8_t alignmentFill_at_390[2];
/**
* Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.
2021-05-23 11:03:56 -07:00
* There is tapering towards running timing advance
* set cranking_timing_angle X
2021-04-26 14:59:44 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 392
*/
2021-12-01 21:04:17 -08:00
angle_t crankingTimingAngle;
/**
2021-05-21 12:28:41 -07:00
* Single coil = distributor
* Individual coils = one coil per cylinder (COP, coil-near-plug), requires sequential mode
* Wasted spark = Fires pairs of cylinders together, either one coil per pair of cylinders or one coil per cylinder
* Two distributors = A pair of distributors, found on some BMW, Toyota and other engines
* set ignition_mode X
2022-06-29 15:52:53 -07:00
* offset 396
*/
ignition_mode_e ignitionMode;
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* How many consecutive gap rations have to match expected ranges for sync to happen
2021-05-23 17:47:26 -07:00
count
2022-06-29 15:52:53 -07:00
* offset 397
*/
2021-12-01 21:04:17 -08:00
int8_t gapTrackingLengthOverride;
2021-05-23 17:47:26 -07:00
/**
2021-07-04 06:37:12 -07:00
* Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).
kph
2022-06-29 15:52:53 -07:00
* offset 398
2021-05-23 17:47:26 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t maxIdleVss;
2022-05-01 18:23:41 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 399
2022-05-01 18:23:41 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_399[1];
2021-06-16 14:31:59 -07:00
/**
* Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting.
kPa
2022-06-29 15:52:53 -07:00
* offset 400
2021-06-16 14:31:59 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t minOilPressureAfterStart;
/**
2020-10-09 14:19:04 -07:00
* Dynamic uses the timing map to decide the ignition timing, Static timing fixes the timing to the value set below (only use for checking static timing with a timing light).
2022-06-29 15:52:53 -07:00
* offset 402
*/
timing_mode_e timingMode;
2022-05-01 05:09:38 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 403
2022-05-01 05:09:38 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_403[1];
/**
* This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing
* This mode is useful when adjusting distributor location.
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 404
*/
2021-12-01 21:04:17 -08:00
angle_t fixedModeTiming;
/**
* Angle between Top Dead Center (TDC) and the first trigger event.
2020-10-08 23:07:46 -07:00
* Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC
* .Knowing this angle allows us to control timing and other angles in reference to TDC.
* set global_trigger_offset_angle X
2021-04-26 14:59:44 -07:00
deg btdc
2022-06-29 15:52:53 -07:00
* offset 408
*/
2021-12-01 21:04:17 -08:00
angle_t globalTriggerAngleOffset;
/**
2020-03-01 19:32:09 -08:00
* Ratio/coefficient of input voltage dividers on your PCB. For example, use '2' if your board divides 5v into 2.5v. Use '1.66' if your board divides 5v into 3v.
2021-04-26 14:59:44 -07:00
coef
2022-06-29 15:52:53 -07:00
* offset 412
*/
2021-12-01 21:04:17 -08:00
float analogInputDividerCoefficient;
/**
* This is the ratio of the resistors for the battery voltage, measure the voltage at the battery and then adjust this number until the gauge matches the reading.
2021-04-26 14:59:44 -07:00
coef
2022-06-29 15:52:53 -07:00
* offset 416
*/
2021-12-01 21:04:17 -08:00
float vbattDividerCoeff;
/**
* Cooling fan turn-on temperature threshold, in Celsius
2021-06-11 03:27:21 -07:00
deg C
2022-06-29 15:52:53 -07:00
* offset 420
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float fanOnTemperature;
2017-03-27 19:19:58 -07:00
/**
* Cooling fan turn-off temperature threshold, in Celsius
2021-06-11 03:27:21 -07:00
deg C
2022-06-29 15:52:53 -07:00
* offset 424
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float fanOffTemperature;
2017-03-27 19:19:58 -07:00
/**
2021-11-27 06:01:08 -08:00
* Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.
revs/km
2022-06-29 15:52:53 -07:00
* offset 428
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float driveWheelRevPerKm;
2017-03-27 19:19:58 -07:00
/**
* set can_mode X
2022-06-29 15:52:53 -07:00
* offset 432
2017-03-27 19:19:58 -07:00
*/
can_nbc_e canNbcType;
2022-05-01 05:09:38 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 433
2022-05-01 05:09:38 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_433[3];
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* CANbus thread period in ms
2021-04-26 14:59:44 -07:00
ms
2022-06-29 15:52:53 -07:00
* offset 436
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int canSleepPeriodMs;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 440
2017-03-27 19:19:58 -07:00
*/
display_mode_e displayMode;
2022-05-01 11:18:04 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 441
2022-05-01 11:18:04 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_441[3];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
index
2022-06-29 15:52:53 -07:00
* offset 444
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int byFirmwareVersion;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
index
2022-06-29 15:52:53 -07:00
* offset 448
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int HD44780width;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
index
2022-06-29 15:52:53 -07:00
* offset 452
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int HD44780height;
2017-03-27 19:19:58 -07:00
/**
2020-01-10 22:08:41 -08:00
* First throttle body, first sensor. See also pedalPositionAdcChannel
2022-06-29 15:52:53 -07:00
* offset 456
2017-03-27 19:19:58 -07:00
*/
adc_channel_e tps1_1AdcChannel;
2019-04-14 15:12:15 -07:00
/**
* This is the processor input pin that the battery voltage circuit is connected to, if you are unsure of what pin to use, check the schematic that corresponds to your PCB.
2022-06-29 15:52:53 -07:00
* offset 457
2019-04-14 15:12:15 -07:00
*/
adc_channel_e vbattAdcChannel;
/**
* This is the processor pin that your fuel level sensor in connected to. This is a non standard input so will need to be user defined.
2022-06-29 15:52:53 -07:00
* offset 458
*/
adc_channel_e fuelLevelSensor;
/**
* Second throttle body position sensor, single channel so far
2020-03-29 22:13:02 -07:00
* set_analog_input_pin tps2 X
2022-06-29 15:52:53 -07:00
* offset 459
*/
adc_channel_e tps2_1AdcChannel;
2017-03-27 19:19:58 -07:00
/**
2020-07-10 13:06:22 -07:00
* 0.1 is a good default value
2021-04-26 14:59:44 -07:00
x
2022-06-29 15:52:53 -07:00
* offset 460
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float idle_derivativeFilterLoss;
2019-12-02 14:49:01 -08:00
/**
2021-07-09 07:09:27 -07:00
* just a temporary solution
angle
2022-06-29 15:52:53 -07:00
* offset 464
2019-12-02 14:49:01 -08:00
*/
2021-12-01 21:04:17 -08:00
int trailingSparkAngle;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 468
2017-03-27 19:19:58 -07:00
*/
trigger_config_s trigger;
2022-05-30 04:21:11 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 480
2022-05-30 04:21:11 -07:00
*/
int unused460;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 484
2017-03-27 19:19:58 -07:00
*/
spi_device_e hip9011SpiDevice;
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* Single value to be used in event of a failed MAP sensor
2021-01-27 17:33:00 -08:00
* This value is only used for speed density fueling calculations.
2021-04-26 14:59:44 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 485
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t failedMapFallback;
2017-03-27 19:19:58 -07:00
/**
2022-07-27 23:53:58 -07:00
* Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met.
2021-05-30 04:06:46 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 486
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t boostControlSafeDutyCycle;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 487
*/
adc_channel_e mafAdcChannel;
/**
* set global_fuel_correction X
2021-04-26 14:59:44 -07:00
coef
2022-06-29 15:52:53 -07:00
* offset 488
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float globalFuelCorrection;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
volts
2022-06-29 15:52:53 -07:00
* offset 492
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float adcVcc;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
Deg
2022-06-29 15:52:53 -07:00
* offset 496
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float mapCamDetectionAnglePosition;
2017-03-27 19:19:58 -07:00
/**
* Camshaft input could be used either just for engine phase detection if your trigger shape does not include cam sensor as 'primary' channel, or it could be used for Variable Valve timing on one of the camshafts.
2022-06-29 15:52:53 -07:00
* offset 500
2017-03-27 19:19:58 -07:00
*/
brain_input_pin_e camInputs[CAM_INPUTS_COUNT];
2021-02-08 21:26:52 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 508
2021-02-08 21:26:52 -08:00
*/
uint8_t camInputsPadding[CAM_INPUTS_COUNT_padding];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 508
2017-03-27 19:19:58 -07:00
*/
afr_sensor_s afr;
2017-03-27 19:19:58 -07:00
/**
2020-08-18 21:48:34 -07:00
* Electronic throttle pedal position first channel
* See throttlePedalPositionSecondAdcChannel for second channel
* See also tps1_1AdcChannel
2020-03-29 22:13:02 -07:00
* set_analog_input_pin pps X
2020-11-06 11:37:34 -08:00
* See throttlePedalUpVoltage and throttlePedalWOTVoltage
2022-06-29 15:52:53 -07:00
* offset 528
2017-03-27 19:19:58 -07:00
*/
adc_channel_e throttlePedalPositionAdcChannel;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 529
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_529[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 530
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio tle6240_cs;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 532
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e tle6240_csPinMode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 533
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_533[1];
2019-07-21 14:06:16 -07:00
/**
* Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata
2022-06-29 15:52:53 -07:00
* offset 534
2019-07-21 14:06:16 -07:00
*/
switch_input_pin_e throttlePedalUpPin;
2017-03-27 19:19:58 -07:00
/**
* @see hasBaroSensor
2022-06-29 15:52:53 -07:00
* offset 536
2017-03-27 19:19:58 -07:00
*/
air_pressure_sensor_config_s baroSensor;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 548
2017-03-27 19:19:58 -07:00
*/
idle_hardware_s idle;
2017-03-27 19:19:58 -07:00
/**
2021-11-03 14:10:50 -07:00
* Value between 0 and 100 used in Manual mode
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 560
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float manIdlePosition;
2017-03-27 19:19:58 -07:00
/**
2021-10-22 13:03:15 -07:00
* Ignition timing to remove when a knock event occurs.
%
2022-06-29 15:52:53 -07:00
* offset 564
2017-03-27 19:19:58 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 10, 1> knockRetardAggression;
2021-10-22 13:03:15 -07:00
/**
* After a knock event, reapply timing at this rate.
deg/s
2022-06-29 15:52:53 -07:00
* offset 565
2021-10-22 13:03:15 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 10, 1> knockRetardReapplyRate;
2021-10-22 13:03:15 -07:00
/**
* Maximum amount of knock retard.
deg
2022-06-29 15:52:53 -07:00
* offset 566
2021-10-22 13:03:15 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t knockRetardMaximum;
2021-10-22 13:03:15 -07:00
/**
2022-04-09 06:32:30 -07:00
* Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.
2022-06-29 15:52:53 -07:00
* offset 567
2021-10-22 13:03:15 -07:00
*/
2022-04-09 06:32:30 -07:00
uint8_t vssFilterReciprocal;
2017-03-27 19:19:58 -07:00
/**
2021-11-27 06:01:08 -08:00
* Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.
ratio
2022-06-29 15:52:53 -07:00
* offset 568
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
scaled_channel<uint16_t, 1000, 1> vssGearRatio;
2021-11-27 06:01:08 -08:00
/**
* Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.
count
2022-06-29 15:52:53 -07:00
* offset 570
2021-11-27 06:01:08 -08:00
*/
2021-12-01 21:04:17 -08:00
uint8_t vssToothCount;
2021-11-27 06:01:08 -08:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 571
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_571[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 572
2021-11-27 06:01:08 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio l9779_cs;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 574
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_574[2];
2017-03-27 19:19:58 -07:00
/**
* Same RPM is used for two ways of producing simulated RPM. See also triggerSimulatorPins (with wires)
* See also directSelfStimulation (no wires, bypassing input hardware)
* rpm X
2020-10-11 16:07:39 -07:00
* TODO: rename to triggerSimulatorRpm
2021-04-26 14:59:44 -07:00
Rpm
2022-06-29 15:52:53 -07:00
* offset 576
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int triggerSimulatorFrequency;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 580
2017-03-27 19:19:58 -07:00
*/
2021-07-06 17:57:01 -07:00
output_pin_e injectionPins[MAX_CYLINDER_COUNT];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 604
2017-03-27 19:19:58 -07:00
*/
2021-07-06 17:57:01 -07:00
output_pin_e ignitionPins[MAX_CYLINDER_COUNT];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 628
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e injectionPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 629
2017-03-27 19:19:58 -07:00
*/
2022-04-24 20:46:16 -07:00
pin_output_mode_e ignitionPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 630
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio HD44780_rs;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 632
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio HD44780_e;
2022-04-24 20:46:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 634
2022-04-24 20:46:16 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio HD44780_db4;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 636
2022-04-24 20:46:16 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio HD44780_db5;
2022-04-24 20:46:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 638
2022-04-24 20:46:16 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio HD44780_db6;
2022-04-24 20:46:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 640
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio HD44780_db7;
/**
2022-06-29 15:52:53 -07:00
* offset 642
*/
2022-04-28 15:06:22 -07:00
Gpio gps_rx_pin;
/**
2022-06-29 15:52:53 -07:00
* offset 644
*/
2022-04-28 15:06:22 -07:00
Gpio gps_tx_pin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 646
2017-03-27 19:19:58 -07:00
*/
output_pin_e fuelPumpPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 648
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e fuelPumpPinMode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 649
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_649[1];
/**
* Check engine light, also malfunction indicator light. Always blinks once on boot.
2022-06-29 15:52:53 -07:00
* offset 650
*/
output_pin_e malfunctionIndicatorPin;
2019-09-20 17:18:22 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 652
2019-09-20 17:18:22 -07:00
*/
pin_output_mode_e malfunctionIndicatorPinMode;
/**
2022-06-29 15:52:53 -07:00
* offset 653
*/
pin_output_mode_e fanPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 654
2017-03-27 19:19:58 -07:00
*/
output_pin_e fanPin;
2019-11-24 21:59:05 -08:00
/**
2021-07-24 10:28:25 -07:00
* Some cars have a switch to indicate that clutch pedal is all the way down
2022-06-29 15:52:53 -07:00
* offset 656
2019-11-24 21:59:05 -08:00
*/
switch_input_pin_e clutchDownPin;
2019-11-24 22:01:00 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 658
2019-11-24 22:01:00 -08:00
*/
output_pin_e alternatorControlPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 660
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e alternatorControlPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 661
2017-03-27 19:19:58 -07:00
*/
pin_input_mode_e clutchDownPinMode;
2017-05-27 20:43:48 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 662
2017-05-27 20:43:48 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 670
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e electronicThrottlePin1Mode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 671
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_671[1];
2017-03-27 19:19:58 -07:00
/**
* set_cj125_heater_pin XXX
2022-06-29 15:52:53 -07:00
* offset 672
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio wboHeaterPin;
2017-03-27 19:19:58 -07:00
/**
* set_cj125_cs_pin XXX
2022-06-29 15:52:53 -07:00
* offset 674
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio cj125CsPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 676
2017-03-27 19:19:58 -07:00
*/
spi_device_e max31855spiDevice;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 677
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_677[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 678
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio debugTriggerSync;
2017-03-27 19:19:58 -07:00
/**
* Digital Potentiometer is used by stock ECU stimulation code
2022-06-29 15:52:53 -07:00
* offset 680
2017-03-27 19:19:58 -07:00
*/
spi_device_e digitalPotentiometerSpiDevice;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 681
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_681[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 682
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio mc33972_cs;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 684
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e mc33972_csPinMode;
2017-03-27 19:19:58 -07:00
/**
* Useful in Research&Development phase
2022-06-29 15:52:53 -07:00
* offset 685
2017-03-27 19:19:58 -07:00
*/
adc_channel_e auxFastSensor1_adcChannel;
2017-03-27 19:19:58 -07:00
/**
2020-01-10 22:08:41 -08:00
* First throttle body, second sensor.
2022-06-29 15:52:53 -07:00
* offset 686
2017-03-27 19:19:58 -07:00
*/
2020-01-10 22:08:41 -08:00
adc_channel_e tps1_2AdcChannel;
/**
* Second throttle body, second sensor.
2022-06-29 15:52:53 -07:00
* offset 687
2020-01-10 22:08:41 -08:00
*/
adc_channel_e tps2_2AdcChannel;
/**
* Electronic throttle pedal position input
* Second channel
* See also tps1_1AdcChannel
2020-11-06 11:37:34 -08:00
* See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage
2022-06-29 15:52:53 -07:00
* offset 688
2020-01-10 22:08:41 -08:00
*/
adc_channel_e throttlePedalPositionSecondAdcChannel;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 689
2017-03-27 19:19:58 -07:00
*/
2021-03-19 05:41:10 -07:00
uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT];
2017-03-27 19:19:58 -07:00
/**
* AFR, WBO, EGO - whatever you like to call it
2022-06-29 15:52:53 -07:00
* offset 697
2017-03-27 19:19:58 -07:00
*/
ego_sensor_e afr_type;
2022-05-01 05:09:38 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 698
2022-05-01 05:09:38 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_698[2];
2017-03-27 19:19:58 -07:00
/**
2020-07-10 13:06:22 -07:00
* 0.1 is a good default value
2021-04-26 14:59:44 -07:00
x
2022-06-29 15:52:53 -07:00
* offset 700
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float idle_antiwindupFreq;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 704
2017-03-27 19:19:58 -07:00
*/
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT];
2022-06-01 18:31:50 -07:00
/**
2022-07-15 23:38:35 -07:00
* Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit.
us
2022-06-29 15:52:53 -07:00
* offset 708
2022-06-01 18:31:50 -07:00
*/
2022-07-15 23:38:35 -07:00
uint16_t mc33_t_min_boost;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 710
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e hip9011CsPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 711
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_711[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 712
2017-03-27 19:19:58 -07:00
*/
output_pin_e tachOutputPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 714
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e tachOutputPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 715
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_715[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 716
2017-03-27 19:19:58 -07:00
*/
output_pin_e mainRelayPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 718
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio sdCardCsPin;
2017-03-27 19:19:58 -07:00
/**
2020-03-31 13:49:19 -07:00
* set_can_tx_pin X
2022-06-29 15:52:53 -07:00
* offset 720
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio canTxPin;
2017-03-27 19:19:58 -07:00
/**
2020-03-31 13:49:19 -07:00
* set_can_rx_pin X
2022-06-29 15:52:53 -07:00
* offset 722
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio canRxPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 724
2017-03-27 19:19:58 -07:00
*/
pin_input_mode_e throttlePedalUpPinMode;
/**
2021-05-31 15:02:57 -07:00
* Additional idle % while A/C is active
%
2022-06-29 15:52:53 -07:00
* offset 725
*/
2021-12-01 21:04:17 -08:00
uint8_t acIdleExtraOffset;
2017-03-27 19:19:58 -07:00
/**
2022-04-06 13:22:52 -07:00
* Ratio between the wheels and your transmission output.
2022-01-13 19:39:21 -08:00
ratio
2022-06-29 15:52:53 -07:00
* offset 726
2017-03-27 19:19:58 -07:00
*/
2022-04-06 13:22:52 -07:00
scaled_channel<uint16_t, 100, 1> finalGearRatio;
2022-01-13 19:39:21 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 728
2022-01-13 19:39:21 -08:00
*/
2022-04-21 06:14:29 -07:00
brain_input_pin_e tcuInputSpeedSensorPin;
/**
2022-06-29 15:52:53 -07:00
* offset 730
2022-04-21 06:14:29 -07:00
*/
uint8_t tcuInputSpeedSensorTeeth;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 731
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_731[1];
/**
2020-09-18 00:05:55 -07:00
* Voltage when the wastegate is closed.
* You probably don't have one of these!
2021-04-26 14:59:44 -07:00
mv
2022-06-29 15:52:53 -07:00
* offset 732
*/
2021-12-01 21:04:17 -08:00
uint16_t wastegatePositionMin;
/**
2020-09-18 00:05:55 -07:00
* Voltage when the wastegate is fully open.
* You probably don't have one of these!
2020-11-14 15:08:03 -08:00
* 1 volt = 1000 units
2021-04-26 14:59:44 -07:00
mv
2022-06-29 15:52:53 -07:00
* offset 734
2020-09-18 00:05:55 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t wastegatePositionMax;
2020-09-18 00:05:55 -07:00
/**
* Voltage when the idle valve is closed.
* You probably don't have one of these!
2021-04-26 14:59:44 -07:00
mv
2022-06-29 15:52:53 -07:00
* offset 736
*/
2021-12-01 21:04:17 -08:00
uint16_t idlePositionMin;
2020-09-18 00:05:55 -07:00
/**
* Voltage when the idle valve is open.
* You probably don't have one of these!
2020-11-14 15:08:03 -08:00
* 1 volt = 1000 units
2021-04-26 14:59:44 -07:00
mv
2022-06-29 15:52:53 -07:00
* offset 738
2020-09-18 00:05:55 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t idlePositionMax;
2017-03-27 19:19:58 -07:00
/**
2020-05-03 00:41:14 -07:00
* Secondary TTL channel baud rate
2021-04-26 14:59:44 -07:00
BPs
2022-06-29 15:52:53 -07:00
* offset 740
*/
2021-12-01 21:04:17 -08:00
uint32_t tunerStudioSerialSpeed;
2017-03-27 19:19:58 -07:00
/**
2020-05-06 22:00:02 -07:00
* Just for reference really, not taken into account by any logic at this point
2021-04-26 14:59:44 -07:00
CR
2022-06-29 15:52:53 -07:00
* offset 744
*/
2021-12-01 21:04:17 -08:00
float compressionRatio;
2017-03-27 19:19:58 -07:00
/**
2022-04-23 18:03:14 -07:00
* Each rusEFI piece can provide synthetic trigger signal for external ECU. Sometimes these wires are routed back into trigger inputs of the same rusEFI board.
* See also directSelfStimulation which is different.
2022-06-29 15:52:53 -07:00
* offset 748
*/
2022-04-28 15:06:22 -07:00
Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 754
*/
pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT];
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 757
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_757[1];
2017-03-27 19:19:58 -07:00
/**
2021-02-14 19:38:10 -08:00
* Narrow band o2 heater, not used for CJ125. 'ON' if engine is running, 'OFF' if stopped or cranking. See wboHeaterPin
2022-06-29 15:52:53 -07:00
* offset 758
*/
output_pin_e o2heaterPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 760
*/
pin_output_mode_e o2heaterPinModeTodO;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 761
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_761[3];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 0 */
2021-11-19 20:16:43 -08:00
bool is_enabled_spi_1 : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 1 */
2021-11-19 20:16:43 -08:00
bool is_enabled_spi_2 : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 2 */
2021-11-19 20:16:43 -08:00
bool is_enabled_spi_3 : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-07-09 13:02:54 -07:00
* enable sd/disable sd
2022-06-29 15:52:53 -07:00
offset 764 bit 3 */
2021-11-19 20:16:43 -08:00
bool isSdCardEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-11-28 12:32:19 -08:00
* Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format.
2022-06-29 15:52:53 -07:00
offset 764 bit 4 */
2021-11-28 12:32:19 -08:00
bool rusefiVerbose29b : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 5 */
2021-11-19 20:16:43 -08:00
bool isEngineControlEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 6 */
2021-11-19 20:16:43 -08:00
bool isHip9011Enabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 7 */
2021-11-19 20:16:43 -08:00
bool isVerboseAlternator : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 8 */
2022-06-26 17:12:14 -07:00
bool verboseQuad : 1 {};
/**
* This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed.
2022-06-29 15:52:53 -07:00
offset 764 bit 9 */
2021-11-19 20:16:43 -08:00
bool useStepperIdle : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 10 */
2021-11-19 20:16:43 -08:00
bool enabledStep1Limiter : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 11 */
2021-11-19 20:16:43 -08:00
bool useTpicAdvancedMode : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 12 */
2021-11-19 20:16:43 -08:00
bool useLcdScreen : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 13 */
2021-11-19 20:16:43 -08:00
bool verboseTLE8888 : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-06-09 19:44:43 -07:00
* CAN broadcast using custom rusEFI protocol
2020-03-31 13:49:19 -07:00
* enable can_broadcast/disable can_broadcast
2022-06-29 15:52:53 -07:00
offset 764 bit 14 */
2021-11-19 20:16:43 -08:00
bool enableVerboseCanTx : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-06-09 19:44:43 -07:00
* This will cause the alternator to be operated in a basic on or off mode, this is the simplest alternator control.
2022-06-29 15:52:53 -07:00
offset 764 bit 15 */
2021-11-19 20:16:43 -08:00
bool onOffAlternatorLogic : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-04-08 18:43:05 -07:00
* enable cj125/disable cj125
2022-06-29 15:52:53 -07:00
offset 764 bit 16 */
2021-11-19 20:16:43 -08:00
bool isCJ125Enabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
* Use rise or fall signal front
2020-08-29 14:47:22 -07:00
* get vvtCamSensorUseRise
2022-06-29 15:52:53 -07:00
offset 764 bit 17 */
2021-11-19 20:16:43 -08:00
bool vvtCamSensorUseRise : 1 {};
2017-03-27 19:19:58 -07:00
/**
* Useful for individual intakes
2022-06-29 15:52:53 -07:00
offset 764 bit 18 */
2021-11-19 20:16:43 -08:00
bool measureMapOnlyInOneCylinder : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 19 */
2021-11-19 20:16:43 -08:00
bool stepperForceParkingEveryRestart : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-05-31 01:21:59 -07:00
* If enabled, try to fire the engine before a full engine cycle has been completed using RPM estimated from the last 90 degrees of engine rotation. As soon as the trigger syncs plus 90 degrees rotation, fuel and ignition events will occur. If disabled, worst case may require up to 4 full crank rotations before any events are scheduled.
2022-06-29 15:52:53 -07:00
offset 764 bit 20 */
2021-11-19 20:16:43 -08:00
bool isFasterEngineSpinUpEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.
2022-06-29 15:52:53 -07:00
offset 764 bit 21 */
2021-11-19 20:16:43 -08:00
bool coastingFuelCutEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-06-28 07:12:01 -07:00
* This setting allows the ECU to open the IAC during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars. Used in Auto-PID Idle mode.
2022-06-29 15:52:53 -07:00
offset 764 bit 22 */
2021-11-19 20:16:43 -08:00
bool useIacTableForCoasting : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 23 */
2021-11-19 20:16:43 -08:00
bool useNoiselessTriggerDecoder : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 24 */
2021-11-19 20:16:43 -08:00
bool useIdleTimingPidControl : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-02-05 15:21:55 -08:00
* Allows disabling the ETB when the engine is stopped. You may not like the power draw or PWM noise from the motor, so this lets you turn it off until it's necessary.
2022-06-29 15:52:53 -07:00
offset 764 bit 25 */
2021-11-19 20:16:43 -08:00
bool disableEtbWhenEngineStopped : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 26 */
2021-11-19 20:16:43 -08:00
bool is_enabled_spi_4 : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-07-26 12:09:43 -07:00
* Disable the electronic throttle motor and DC idle motor for testing.
* This mode is for testing ETB/DC idle position sensors, etc without actually driving the throttle.
2022-06-29 15:52:53 -07:00
offset 764 bit 27 */
2021-11-19 20:16:43 -08:00
bool pauseEtbControl : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 28 */
2021-11-19 20:16:43 -08:00
bool alignEngineSnifferAtTDC : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This setting allows the ETB to act as the idle air control valve and move to regulate the airflow at idle.
2022-06-29 15:52:53 -07:00
offset 764 bit 29 */
2021-11-19 20:16:43 -08:00
bool useETBforIdleControl : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 764 bit 30 */
2021-11-19 20:16:43 -08:00
bool idleIncrementalPidCic : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-05-26 11:21:01 -07:00
* AEM X-Series or rusEFI Wideband
2022-06-29 15:52:53 -07:00
offset 764 bit 31 */
2021-11-19 20:16:43 -08:00
bool enableAemXSeries : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 768
2017-03-27 19:19:58 -07:00
*/
brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 776
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e mainRelayPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 777
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_777[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 778
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio hip9011CsPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 780
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio hip9011IntHoldPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 782
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e hip9011IntHoldPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 783
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_783[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 784
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint32_t verboseCanBaseAddress;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
v
2022-06-29 15:52:53 -07:00
* offset 788
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t mc33_hvolt;
2020-04-15 18:28:44 -07:00
/**
2021-08-27 15:03:24 -07:00
* Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost.
kPa
2022-06-29 15:52:53 -07:00
* offset 789
2020-04-15 18:28:44 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t minimumBoostClosedLoopMap;
2020-07-07 19:20:59 -07:00
/**
2020-09-05 20:38:02 -07:00
* Optional Radiator Fan used with A/C
2022-06-29 15:52:53 -07:00
* offset 790
2020-07-07 19:20:59 -07:00
*/
2020-09-05 20:38:02 -07:00
output_pin_e acFanPin;
/**
2022-06-29 15:52:53 -07:00
* offset 792
2020-09-05 20:38:02 -07:00
*/
pin_output_mode_e acFanPinMode;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 793
2017-03-27 19:19:58 -07:00
*/
2022-01-10 14:06:22 -08:00
spi_device_e l9779spiDevice;
2021-12-04 15:06:32 -08:00
/**
volts
2022-06-29 15:52:53 -07:00
* offset 794
2021-08-15 12:38:17 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 10, 1> dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE];
2022-04-24 20:46:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 802
2022-04-24 21:01:07 -07:00
*/
imu_type_e imuType;
2021-08-15 12:38:17 -07:00
/**
2021-09-15 05:21:12 -07:00
multiplier
2022-06-29 15:52:53 -07:00
* offset 803
2022-04-24 21:01:07 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 50, 1> dwellVoltageCorrValues[DWELL_CURVE_SIZE];
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 811
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_811[1];
2021-09-15 05:21:12 -07:00
/**
2021-12-19 22:09:38 -08:00
kg
2022-06-29 15:52:53 -07:00
* offset 812
2021-09-15 05:21:12 -07:00
*/
2021-12-19 22:09:38 -08:00
uint16_t vehicleWeight;
2017-03-27 19:19:58 -07:00
/**
2021-12-19 22:09:38 -08:00
* How far above idle speed do we consider idling?
* For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.
RPM
2022-06-29 15:52:53 -07:00
* offset 814
2017-03-27 19:19:58 -07:00
*/
2021-12-19 22:09:38 -08:00
int16_t idlePidRpmUpperLimit;
/**
* Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment.
ms
2022-06-29 15:52:53 -07:00
* offset 816
2021-12-19 22:09:38 -08:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint16_t, 1000, 1> applyNonlinearBelowPulse;
2021-12-19 22:09:38 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 818
2021-12-19 22:09:38 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio lps25BaroSensorScl;
2021-12-19 22:09:38 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 820
2021-12-19 22:09:38 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio lps25BaroSensorSda;
2021-12-19 22:09:38 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 822
2021-12-19 22:09:38 -08:00
*/
brain_input_pin_e vehicleSpeedSensorInputPin;
/**
* Some vehicles have a switch to indicate that clutch pedal is all the way up
2022-06-29 15:52:53 -07:00
* offset 824
2021-12-19 22:09:38 -08:00
*/
switch_input_pin_e clutchUpPin;
/**
2022-06-29 15:52:53 -07:00
* offset 826
2021-12-19 22:09:38 -08:00
*/
InjectorNonlinearMode injectorNonlinearMode;
/**
2022-06-29 15:52:53 -07:00
* offset 827
2021-12-19 22:09:38 -08:00
*/
pin_input_mode_e clutchUpPinMode;
/**
2022-06-29 15:52:53 -07:00
* offset 828
2021-12-19 22:09:38 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio max31855_cs[EGT_CHANNEL_COUNT];
2021-12-19 22:09:38 -08:00
/**
* Continental/GM flex fuel sensor, 50-150hz type
2022-06-29 15:52:53 -07:00
* offset 844
2021-12-19 22:09:38 -08:00
*/
brain_input_pin_e flexSensorPin;
/**
2022-06-29 15:52:53 -07:00
* offset 846
2021-12-19 22:09:38 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio test557pin;
2021-12-19 22:09:38 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 848
2021-12-19 22:09:38 -08:00
*/
pin_output_mode_e stepperDirectionPinMode;
/**
2022-06-29 15:52:53 -07:00
* offset 849
2021-12-19 22:09:38 -08:00
*/
spi_device_e mc33972spiDevice;
/**
* Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0
:1
2022-06-29 15:52:53 -07:00
* offset 850
2021-12-19 22:09:38 -08:00
*/
scaled_channel<uint8_t, 10, 1> stoichRatioSecondary;
/**
* Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open.
%
2022-06-29 15:52:53 -07:00
* offset 851
2021-12-19 22:09:38 -08:00
*/
uint8_t etbMaximumPosition;
2017-03-27 19:19:58 -07:00
/**
* SD card logging period, in milliseconds
2021-04-26 14:59:44 -07:00
ms
2022-06-29 15:52:53 -07:00
* offset 852
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t sdCardPeriodMs;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 854
2017-03-27 19:19:58 -07:00
*/
2020-09-18 00:05:55 -07:00
adc_channel_e idlePositionSensor;
2017-03-27 19:19:58 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 855
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_855[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 856
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio debugMapAveraging;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 858
2017-03-27 19:19:58 -07:00
*/
2020-03-18 12:56:17 -07:00
output_pin_e starterRelayDisablePin;
2017-03-27 19:19:58 -07:00
/**
2020-03-18 12:56:17 -07:00
* On some vehicles we can disable starter once engine is already running
2022-06-29 15:52:53 -07:00
* offset 860
2017-03-27 19:19:58 -07:00
*/
2020-09-27 04:38:53 -07:00
pin_output_mode_e starterRelayDisablePinMode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 861
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_861[1];
2017-03-27 19:19:58 -07:00
/**
* Some Subaru and some Mazda use double-solenoid idle air valve
2022-06-29 15:52:53 -07:00
* offset 862
2017-03-27 19:19:58 -07:00
*/
2020-11-22 15:32:36 -08:00
output_pin_e secondSolenoidPin;
/**
2020-03-19 21:36:22 -07:00
* See also starterControlPin
2022-06-29 15:52:53 -07:00
* offset 864
*/
2020-03-20 17:45:35 -07:00
switch_input_pin_e startStopButtonPin;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 866
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_866[2];
2017-03-27 19:19:58 -07:00
/**
2021-10-04 04:54:20 -07:00
* This many MAP samples are used to estimate the current MAP. This many samples are considered, and the minimum taken. Recommended value is 1 for single-throttle engines, and your number of cylinders for individual throttle bodies.
2021-04-26 14:59:44 -07:00
count
2022-06-29 15:52:53 -07:00
* offset 868
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int mapMinBufferLength;
2017-03-27 19:19:58 -07:00
/**
2021-12-07 16:32:18 -08:00
* Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 872
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t idlePidDeactivationTpsThreshold;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 874
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t stepperParkingExtraSteps;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 876
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t tps1SecondaryMin;
2020-05-10 07:11:51 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 878
2020-05-10 07:11:51 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t tps1SecondaryMax;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
rpm
2022-06-29 15:52:53 -07:00
* offset 880
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t antiLagRpmTreshold;
/**
2021-04-26 14:59:44 -07:00
* Maximum time to crank starter when start/stop button is pressed
Seconds
2022-06-29 15:52:53 -07:00
* offset 882
*/
2021-12-01 21:04:17 -08:00
uint16_t startCrankingDuration;
2017-03-27 19:19:58 -07:00
/**
* This pin is used for debugging - snap a logic analyzer on it and see if it's ever high
2022-06-29 15:52:53 -07:00
* offset 884
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio triggerErrorPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 886
2022-04-24 20:46:16 -07:00
*/
pin_output_mode_e triggerErrorPinMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 887
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_887[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 888
2022-04-24 20:46:16 -07:00
*/
output_pin_e acRelayPin;
/**
2022-06-29 15:52:53 -07:00
* offset 890
*/
2022-04-24 20:46:16 -07:00
pin_output_mode_e acRelayPinMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 891
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_891[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 892
2017-03-27 19:19:58 -07:00
*/
2021-11-14 11:42:17 -08:00
script_setting_t scriptSetting[SCRIPT_SETTING_COUNT];
2021-08-15 12:38:17 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 924
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi1mosiPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 926
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi1misoPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 928
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi1sckPin;
2019-04-14 15:12:15 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 930
2019-04-14 15:12:15 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi2mosiPin;
2019-05-25 12:35:25 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 932
2019-05-25 12:35:25 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi2misoPin;
2019-05-25 12:35:25 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 934
2019-05-25 12:35:25 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi2sckPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 936
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi3mosiPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 938
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi3misoPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 940
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio spi3sckPin;
2017-03-27 19:19:58 -07:00
/**
* Saab Combustion Detection Module knock signal input pin
* also known as Saab Ion Sensing Module
2022-06-29 15:52:53 -07:00
* offset 942
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio cdmInputPin;
/**
2022-06-29 15:52:53 -07:00
* offset 944
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio joystickCenterPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 946
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio joystickAPin;
/**
2022-06-29 15:52:53 -07:00
* offset 948
*/
2022-04-28 15:06:22 -07:00
Gpio joystickBPin;
/**
2022-06-29 15:52:53 -07:00
* offset 950
*/
2022-04-28 15:06:22 -07:00
Gpio joystickCPin;
/**
2022-06-29 15:52:53 -07:00
* offset 952
*/
2022-04-28 15:06:22 -07:00
Gpio joystickDPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 954
2017-03-27 19:19:58 -07:00
*/
uart_device_e consoleUartDevice;
2017-03-27 19:19:58 -07:00
/**
2022-04-23 18:03:14 -07:00
* rusEFI console Sensor Sniffer mode
2022-06-29 15:52:53 -07:00
* offset 955
2017-03-27 19:19:58 -07:00
*/
sensor_chart_e sensorChartMode;
/**
2022-06-29 15:52:53 -07:00
* offset 956
*/
maf_sensor_type_e mafSensorType;
/**
2022-05-01 05:09:38 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 957
2022-05-01 05:09:38 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_957[3];
2022-05-01 05:09:38 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 0 */
2021-11-19 20:16:43 -08:00
bool clutchUpPinInverted : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 1 */
2021-11-19 20:16:43 -08:00
bool clutchDownPinInverted : 1 {};
/**
* If enabled we use two H-bridges to drive stepper idle air valve
2022-06-29 15:52:53 -07:00
offset 960 bit 2 */
2021-11-19 20:16:43 -08:00
bool useHbridgesToDriveIdleStepper : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 3 */
2021-11-19 20:16:43 -08:00
bool multisparkEnable : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 4 */
2021-11-19 20:16:43 -08:00
bool enableLaunchRetard : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 5 */
2021-11-19 20:16:43 -08:00
bool unfinishedenableLaunchBoost : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 6 */
2021-11-19 20:16:43 -08:00
bool unfinishedlaunchDisableBySpeed : 1 {};
/**
2021-08-09 13:12:40 -07:00
* Read VSS from OEM CAN bus according to selected CAN vehicle configuration.
2022-06-29 15:52:53 -07:00
offset 960 bit 7 */
2021-11-19 20:16:43 -08:00
bool enableCanVss : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 8 */
2021-11-19 20:16:43 -08:00
bool enableInnovateLC2 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 9 */
2021-11-19 20:16:43 -08:00
bool showHumanReadableWarning : 1 {};
/**
2021-01-26 18:58:44 -08:00
* If enabled, adjust at a constant rate instead of a rate proportional to the current lambda error. This mode may be easier to tune, and more tolerant of sensor noise. Use of this mode is required if you have a narrowband O2 sensor.
2022-06-29 15:52:53 -07:00
offset 960 bit 10 */
2021-11-19 20:16:43 -08:00
bool stftIgnoreErrorMagnitude : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 11 */
2022-01-18 21:56:03 -08:00
bool tempBooleanForVerySpecialCases : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 12 */
2021-11-19 20:16:43 -08:00
bool enableSoftwareKnock : 1 {};
/**
2022-06-18 11:53:00 -07:00
* Verbose info in console below engineSnifferRpmThreshold
2020-08-29 14:03:44 -07:00
* enable vvt_details
2022-06-29 15:52:53 -07:00
offset 960 bit 13 */
2021-11-19 20:16:43 -08:00
bool verboseVVTDecoding : 1 {};
/**
2020-08-29 15:00:40 -07:00
* get invertCamVVTSignal
2022-06-29 15:52:53 -07:00
offset 960 bit 14 */
2021-11-19 20:16:43 -08:00
bool invertCamVVTSignal : 1 {};
/**
2020-09-03 20:29:50 -07:00
* This property is useful if using rusEFI as TCM or BCM only
2020-08-30 11:29:40 -07:00
* enable consumeObdSensors
2022-06-29 15:52:53 -07:00
offset 960 bit 15 */
2021-11-19 20:16:43 -08:00
bool consumeObdSensors : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 16 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl1 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 17 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl2 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 18 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl3 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 19 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl4 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 20 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl5 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 21 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl6 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 22 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl7 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 23 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl8 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 24 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl9 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 25 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl10 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 26 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl11 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 27 */
2021-11-19 20:16:43 -08:00
bool knockBankCyl12 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 28 */
2021-11-19 20:16:43 -08:00
bool tcuEnabled : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 960 bit 29 */
2021-12-22 08:08:59 -08:00
bool canBroadcastUseChannelTwo : 1 {};
/**
2022-01-06 17:00:00 -08:00
* If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coilss
2022-06-29 15:52:53 -07:00
offset 960 bit 30 */
2022-01-06 17:00:00 -08:00
bool useRawOutputToDriveIdleStepper : 1 {};
/**
2022-02-10 07:29:24 -08:00
* Print incoming and outgoing second bus CAN messages in rusEFI console
2022-06-29 15:52:53 -07:00
offset 960 bit 31 */
2022-02-10 07:29:24 -08:00
bool verboseCan2 : 1 {};
/**
2022-06-29 15:52:53 -07:00
* offset 964
*/
2020-11-16 16:45:34 -08:00
dc_io etbIo[ETB_COUNT];
/**
2020-09-05 20:38:02 -07:00
* Wastegate control Solenoid
2022-06-29 15:52:53 -07:00
* offset 980
*/
2020-01-31 11:23:15 -08:00
output_pin_e boostControlPin;
/**
2022-06-29 15:52:53 -07:00
* offset 982
2020-01-31 11:23:15 -08:00
*/
pin_output_mode_e boostControlPinMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 983
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_983[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 984
2020-01-31 11:23:15 -08:00
*/
2020-02-02 10:18:41 -08:00
switch_input_pin_e antiLagActivatePin;
/**
2022-06-29 15:52:53 -07:00
* offset 986
2020-02-02 10:18:41 -08:00
*/
switch_input_pin_e launchActivatePin;
2020-01-31 11:23:15 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 988
2020-01-31 11:23:15 -08:00
*/
pid_s boostPid;
/**
2022-06-29 15:52:53 -07:00
* offset 1008
2020-01-31 11:23:15 -08:00
*/
boostType_e boostType;
2022-05-01 20:14:48 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1009
2022-05-01 20:14:48 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1009[3];
2020-01-31 11:23:15 -08:00
/**
2021-04-26 14:59:44 -07:00
Hz
2022-06-29 15:52:53 -07:00
* offset 1012
2020-01-31 11:23:15 -08:00
*/
2021-12-01 21:04:17 -08:00
int boostPwmFrequency;
2020-01-31 11:23:15 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1016
2020-01-31 11:23:15 -08:00
*/
2020-02-02 09:23:55 -08:00
launchActivationMode_e launchActivationMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1017
2020-02-02 09:23:55 -08:00
*/
antiLagActivationMode_e antiLagActivationMode;
2022-05-01 11:18:04 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1018
2022-05-01 11:18:04 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1018[2];
2020-02-02 09:23:55 -08:00
/**
* Disabled above this speed
2021-04-26 14:59:44 -07:00
Kph
2022-06-29 15:52:53 -07:00
* offset 1020
2020-02-02 09:23:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int launchSpeedThreshold;
2020-02-02 09:23:55 -08:00
/**
2022-07-20 15:52:33 -07:00
* Range from Launch RPM for Timing Retard to activate
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 1024
2020-02-02 09:23:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int launchTimingRpmRange;
2020-02-02 09:23:55 -08:00
/**
* Extra Fuel Added
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 1028
2020-02-02 09:23:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int launchFuelAdded;
2020-02-02 09:23:55 -08:00
/**
* Duty Cycle for the Boost Solenoid
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 1032
2020-02-02 09:23:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int launchBoostDuty;
2020-02-02 09:23:55 -08:00
/**
2022-07-20 15:52:33 -07:00
* Range from Launch RPM to activate Hard Cut
RPM
2022-06-29 15:52:53 -07:00
* offset 1036
2020-02-02 09:23:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int hardCutRpmRange;
2020-02-02 09:23:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1040
2020-02-02 09:23:55 -08:00
*/
2022-07-20 15:52:33 -07:00
int unused962;
/**
2022-06-29 15:52:53 -07:00
* offset 1044
*/
2022-07-20 16:09:02 -07:00
int launchTpsThreshold;
/**
2022-06-29 15:52:53 -07:00
* offset 1048
*/
2021-12-01 21:04:17 -08:00
float launchActivateDelay;
/**
2022-06-29 15:52:53 -07:00
* offset 1052
*/
2020-04-13 06:23:13 -07:00
stft_s stft;
/**
2022-06-29 15:52:53 -07:00
* offset 1076
2020-04-13 06:23:13 -07:00
*/
2020-11-16 16:54:02 -08:00
dc_io stepperDcIo[DC_PER_STEPPER];
2020-05-02 15:38:22 -07:00
/**
2020-05-07 10:46:18 -07:00
* For example, BMW, GM or Chevrolet
* REQUIRED for rusEFI Online
2022-06-29 15:52:53 -07:00
* offset 1092
2020-05-02 15:38:22 -07:00
*/
2020-05-06 11:00:08 -07:00
vehicle_info_t engineMake;
2020-05-05 12:37:44 -07:00
/**
2020-05-07 10:46:18 -07:00
* For example, LS1 or NB2
* REQUIRED for rusEFI Online
2022-06-29 15:52:53 -07:00
* offset 1124
2020-05-05 12:37:44 -07:00
*/
2020-05-06 11:00:08 -07:00
vehicle_info_t engineCode;
/**
2020-05-07 10:46:18 -07:00
* For example, Hunchback or Orange Miata
* Vehicle name has to be unique between your vehicles.
* REQUIRED for rusEFI Online
2022-06-29 15:52:53 -07:00
* offset 1156
2020-05-06 11:00:08 -07:00
*/
2020-05-07 10:46:18 -07:00
vehicle_info_t vehicleName;
/**
2022-06-29 15:52:53 -07:00
* offset 1188
2020-05-07 10:46:18 -07:00
*/
2020-05-19 22:18:23 -07:00
output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT];
2020-09-15 01:35:57 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1200
2020-09-15 01:35:57 -07:00
*/
2020-10-08 11:14:09 -07:00
etb_function_e etbFunctions[ETB_COUNT];
2020-05-19 22:18:23 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1202
2020-05-19 22:18:23 -07:00
*/
2020-09-07 07:49:54 -07:00
spi_device_e drv8860spiDevice;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1203
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1203[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1204
2020-09-07 07:49:54 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio drv8860_cs;
2020-09-07 07:49:54 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1206
2020-09-07 07:49:54 -07:00
*/
pin_output_mode_e drv8860_csPinMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1207
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1207[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1208
2020-09-07 07:49:54 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio drv8860_miso;
2020-09-07 07:49:54 -07:00
/**
2021-04-26 14:59:44 -07:00
volt
2022-06-29 15:52:53 -07:00
* offset 1210
2020-09-07 07:49:54 -07:00
*/
2021-11-05 16:52:02 -07:00
scaled_channel<uint16_t, 1000, 1> fuelLevelBins[FUEL_LEVEL_TABLE_COUNT];
2021-03-19 05:41:10 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1226
2021-03-19 05:41:10 -07:00
*/
2021-05-20 16:10:25 -07:00
output_pin_e luaOutputPins[LUA_PWM_COUNT];
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1242
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1242[2];
2021-06-11 21:19:09 -07:00
/**
2021-07-03 08:33:11 -07:00
* Angle between cam sensor and VVT zero position
* set vvt_offset X
value
2022-06-29 15:52:53 -07:00
* offset 1244
2021-06-11 21:19:09 -07:00
*/
2021-07-03 08:33:11 -07:00
float vvtOffsets[CAM_INPUTS_COUNT];
/**
2022-06-29 15:52:53 -07:00
* offset 1260
2021-07-03 08:33:11 -07:00
*/
float vvtOffsetsPadding[CAM_INPUTS_COUNT_padding];
/**
2022-06-29 15:52:53 -07:00
* offset 1260
2021-07-03 08:33:11 -07:00
*/
2021-09-13 08:19:35 -07:00
vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT];
2021-07-28 04:49:04 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1292
2021-07-28 04:49:04 -07:00
*/
2021-09-26 20:24:16 -07:00
gppwm_note_t gpPwmNote[GPPWM_CHANNELS];
/**
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 1356
2020-05-10 07:11:51 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t tps2SecondaryMin;
2020-05-10 07:11:51 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 1358
2020-05-10 07:11:51 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t tps2SecondaryMax;
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 0 */
2022-01-08 16:55:02 -08:00
bool disablePrimaryUart : 1 {};
2017-03-27 19:19:58 -07:00
/**
* Enables lambda sensor closed loop feedback for fuelling.
2022-06-29 15:52:53 -07:00
offset 1360 bit 1 */
2021-11-19 20:16:43 -08:00
bool fuelClosedLoopCorrectionEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-04-23 18:03:14 -07:00
* Print details into rusEFI console
2020-11-29 21:14:11 -08:00
* enable verbose_idle
2022-06-29 15:52:53 -07:00
offset 1360 bit 2 */
2021-11-19 20:16:43 -08:00
bool isVerboseIAC : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 3 */
2022-01-08 17:22:51 -08:00
bool boardUseTachPullUp : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 4 */
2022-01-08 17:22:51 -08:00
bool boardUseTempPullUp : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 5 */
2022-06-18 11:53:00 -07:00
bool unused234234234 : 1 {};
2017-03-27 19:19:58 -07:00
/**
* Sometimes we have a performance issue while printing error
2022-06-29 15:52:53 -07:00
offset 1360 bit 6 */
2021-11-19 20:16:43 -08:00
bool silentTriggerError : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 7 */
2021-11-19 20:16:43 -08:00
bool useLinearCltSensor : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-03-31 13:49:19 -07:00
* enable can_read/disable can_read
2022-06-29 15:52:53 -07:00
offset 1360 bit 8 */
2021-11-19 20:16:43 -08:00
bool canReadEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-03-31 13:49:19 -07:00
* enable can_write/disable can_write
2022-06-29 15:52:53 -07:00
offset 1360 bit 9 */
2021-11-19 20:16:43 -08:00
bool canWriteEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 10 */
2021-11-19 20:16:43 -08:00
bool useLinearIatSensor : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 11 */
2022-03-12 07:09:42 -08:00
bool boardUse2stepPullDown : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-04-19 20:56:24 -07:00
* Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%
2022-06-29 15:52:53 -07:00
offset 1360 bit 12 */
2021-11-19 20:16:43 -08:00
bool tachPulseDurationAsDutyCycle : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This enables smart alternator control and activates the extra alternator settings.
2022-06-29 15:52:53 -07:00
offset 1360 bit 13 */
2021-11-19 20:16:43 -08:00
bool isAlternatorControlEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This setting flips the signal from the primary engine speed sensor.
2022-06-29 15:52:53 -07:00
offset 1360 bit 14 */
2021-11-19 20:16:43 -08:00
bool invertPrimaryTriggerSignal : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This setting flips the signal from the secondary engine speed sensor.
2022-06-29 15:52:53 -07:00
offset 1360 bit 15 */
2021-11-19 20:16:43 -08:00
bool invertSecondaryTriggerSignal : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 16 */
2021-11-19 20:16:43 -08:00
bool cutFuelOnHardLimit : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-22 13:58:24 -07:00
* Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer.
2022-06-29 15:52:53 -07:00
offset 1360 bit 17 */
2021-11-19 20:16:43 -08:00
bool cutSparkOnHardLimit : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 18 */
2021-11-19 20:16:43 -08:00
bool launchFuelCutEnable : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-02-02 09:23:55 -08:00
* This is the Cut Mode normally used
2022-06-29 15:52:53 -07:00
offset 1360 bit 19 */
2021-11-19 20:16:43 -08:00
bool launchSparkCutEnable : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 20 */
2022-01-08 17:22:51 -08:00
bool boardUseCrankPullUp : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 21 */
2022-03-12 07:09:42 -08:00
bool boardUseCamPullDown : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 22 */
2022-03-13 09:01:27 -07:00
bool boardUseCamVrPullUp : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 23 */
2022-04-03 06:37:31 -07:00
bool boardUseD2PullDown : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 24 */
2022-04-03 06:37:31 -07:00
bool boardUseD3PullDown : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 25 */
2022-04-03 06:37:31 -07:00
bool boardUseD4PullDown : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 26 */
2022-04-03 06:37:31 -07:00
bool boardUseD5PullDown : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 27 */
2022-07-14 05:08:23 -07:00
bool unused443 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 28 */
2022-07-14 05:08:23 -07:00
bool unused444 : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 29 */
2022-04-19 17:09:40 -07:00
bool launchActivateInverted : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 1360 bit 30 */
2022-04-02 19:32:37 -07:00
bool twoStroke : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-04-02 18:09:11 -07:00
* Where is your primary skipped wheel located?
2022-06-29 15:52:53 -07:00
offset 1360 bit 31 */
2022-04-02 18:09:11 -07:00
bool skippedWheelOnCam : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1364
2017-03-27 19:19:58 -07:00
*/
adc_channel_e hipOutputChannel;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1365
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1365[1];
2017-03-27 19:19:58 -07:00
/**
2021-05-27 05:25:55 -07:00
* A/C button input
2022-06-29 15:52:53 -07:00
* offset 1366
*/
2020-09-10 19:18:18 -07:00
switch_input_pin_e acSwitch;
/**
2022-06-29 15:52:53 -07:00
* offset 1368
*/
adc_channel_e vRefAdcChannel;
/**
* Expected neutral position
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 1369
*/
2021-12-01 21:04:17 -08:00
uint8_t etbNeutralPosition;
/**
2019-04-04 18:45:18 -07:00
* See also idleRpmPid
2022-06-29 15:52:53 -07:00
* offset 1370
2017-03-27 19:19:58 -07:00
*/
idle_mode_e idleMode;
2022-05-01 05:09:38 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1371
2022-05-01 05:09:38 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1371[1];
2017-03-27 19:19:58 -07:00
/**
* Enable fuel injection - This is default off for new projects as a safety feature, set to "true" to enable fuel injection and further injector settings.
2022-06-29 15:52:53 -07:00
offset 1372 bit 0 */
2021-11-19 20:16:43 -08:00
bool isInjectionEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
* Enable ignition - This is default off for new projects as a safety feature, set to "true" to enable ignition and further ignition settings.
2022-06-29 15:52:53 -07:00
offset 1372 bit 1 */
2021-11-19 20:16:43 -08:00
bool isIgnitionEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2019-06-13 11:56:13 -07:00
* When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders.
2022-06-29 15:52:53 -07:00
offset 1372 bit 2 */
2021-11-19 20:16:43 -08:00
bool isCylinderCleanupEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-01-27 22:04:57 -08:00
* Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?
2022-06-29 15:52:53 -07:00
offset 1372 bit 3 */
2022-01-27 22:04:57 -08:00
bool complexWallModel : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 4 */
2022-01-19 04:39:51 -08:00
bool alwaysInstantRpm : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 5 */
2021-11-19 20:16:43 -08:00
bool isMapAveragingEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-05-31 01:21:59 -07:00
* If enabled, use separate temperature multiplier table for cranking idle position.
* If disabled, use normal running multiplier table applied to the cranking base position.
2022-06-29 15:52:53 -07:00
offset 1372 bit 6 */
2021-11-19 20:16:43 -08:00
bool overrideCrankingIacSetting : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This activates a separate ignition timing table for idle conditions, this can help idle stability by using ignition retard and advance either side of the desired idle speed. Extra retard at low idle speeds will prevent stalling and extra advance at high idle speeds can help reduce engine power and slow the idle speed.
2022-06-29 15:52:53 -07:00
offset 1372 bit 7 */
2021-11-19 20:16:43 -08:00
bool useSeparateAdvanceForIdle : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 8 */
2021-11-19 20:16:43 -08:00
bool isWaveAnalyzerEnabled : 1 {};
2017-03-27 19:19:58 -07:00
/**
* This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.
2022-06-29 15:52:53 -07:00
offset 1372 bit 9 */
2021-11-19 20:16:43 -08:00
bool useSeparateVeForIdle : 1 {};
2017-03-27 19:19:58 -07:00
/**
2022-06-18 11:53:00 -07:00
* Verbose info in console below engineSnifferRpmThreshold
2017-03-27 19:19:58 -07:00
* enable trigger_details
2022-06-29 15:52:53 -07:00
offset 1372 bit 10 */
2021-11-19 20:16:43 -08:00
bool verboseTriggerSynchDetails : 1 {};
2017-03-27 19:19:58 -07:00
/**
* Usually if we have no trigger events that means engine is stopped
* Unless we are troubleshooting and spinning the engine by hand - this case a longer
* delay is needed
2022-06-29 15:52:53 -07:00
offset 1372 bit 11 */
2021-11-19 20:16:43 -08:00
bool isManualSpinningMode : 1 {};
2017-03-27 19:19:58 -07:00
/**
2019-06-13 11:56:13 -07:00
* This is needed if your coils are individually wired and you wish to use batch injection.
2017-03-27 19:19:58 -07:00
* enable two_wire_batch_injection
2022-06-29 15:52:53 -07:00
offset 1372 bit 12 */
2021-11-19 20:16:43 -08:00
bool twoWireBatchInjection : 1 {};
2017-03-27 19:19:58 -07:00
/**
* VR sensors are only precise on rising front
* enable trigger_only_front
2022-06-29 15:52:53 -07:00
offset 1372 bit 13 */
2021-11-19 20:16:43 -08:00
bool useOnlyRisingEdgeForTrigger : 1 {};
2017-03-27 19:19:58 -07:00
/**
2020-07-28 06:12:43 -07:00
* This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).
2022-06-29 15:52:53 -07:00
offset 1372 bit 14 */
2021-11-19 20:16:43 -08:00
bool twoWireBatchIgnition : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 15 */
2021-11-19 20:16:43 -08:00
bool useFixedBaroCorrFromMap : 1 {};
2018-01-02 18:25:40 -08:00
/**
2021-05-31 01:21:59 -07:00
* In Constant mode, timing is automatically tapered to running as RPM increases.
* In Table mode, the "Cranking ignition advance" table is used directly.
2022-06-29 15:52:53 -07:00
offset 1372 bit 16 */
2021-11-19 20:16:43 -08:00
bool useSeparateAdvanceForCranking : 1 {};
2018-01-02 18:25:40 -08:00
/**
* This enables the various ignition corrections during cranking (IAT, CLT, FSIO and PID idle).
2021-05-31 01:21:59 -07:00
* You probably don't need this.
2022-06-29 15:52:53 -07:00
offset 1372 bit 17 */
2021-11-19 20:16:43 -08:00
bool useAdvanceCorrectionsForCranking : 1 {};
2018-01-02 18:25:40 -08:00
/**
2022-04-04 14:49:00 -07:00
* Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor.
2022-06-29 15:52:53 -07:00
offset 1372 bit 18 */
2022-04-04 14:49:00 -07:00
bool flexCranking : 1 {};
2018-01-02 18:25:40 -08:00
/**
2019-12-03 21:38:40 -08:00
* This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller
2022-06-29 15:52:53 -07:00
offset 1372 bit 19 */
2021-11-19 20:16:43 -08:00
bool useIacPidMultTable : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 20 */
2021-11-19 20:16:43 -08:00
bool isBoostControlEnabled : 1 {};
2019-09-29 11:00:04 -07:00
/**
2020-02-02 09:23:55 -08:00
* Interpolates the Ignition Retard from 0 to 100% within the RPM Range
2022-06-29 15:52:53 -07:00
offset 1372 bit 21 */
2021-11-19 20:16:43 -08:00
bool launchSmoothRetard : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-05-08 05:05:34 -07:00
* Some engines are OK running semi-random sequential while other engine require phase synchronization
2022-06-29 15:52:53 -07:00
offset 1372 bit 22 */
2022-05-08 05:05:34 -07:00
bool isPhaseSyncRequiredForIgnition : 1 {};
2022-04-29 16:48:53 -07:00
/**
2022-06-22 13:58:24 -07:00
* If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value.
2022-06-29 15:52:53 -07:00
offset 1372 bit 23 */
2022-06-22 13:58:24 -07:00
bool useCltBasedRpmLimit : 1 {};
2022-04-29 16:48:53 -07:00
/**
2022-06-23 12:34:20 -07:00
* If enabled, don't wait for engine start to heat O2 sensors. WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element.
2022-06-29 15:52:53 -07:00
offset 1372 bit 24 */
2022-06-23 12:34:20 -07:00
bool forceO2Heating : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 25 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_25 : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 26 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_26 : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 27 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_27 : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 28 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_28 : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 29 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_29 : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 30 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_30 : 1 {};
2019-09-29 11:00:04 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1372 bit 31 */
2021-11-19 20:16:43 -08:00
bool unused_1484_bit_31 : 1 {};
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
count
2022-06-29 15:52:53 -07:00
* offset 1376
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint32_t engineChartSize;
2017-03-27 19:19:58 -07:00
/**
2021-07-27 14:37:24 -07:00
mult
2022-06-29 15:52:53 -07:00
* offset 1380
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float turboSpeedSensorMultiplier;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1384
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio camInputsDebug[CAM_INPUTS_COUNT];
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1392
2017-03-27 19:19:58 -07:00
*/
2021-07-13 11:37:37 -07:00
uint8_t camInputsDebugPadding[CAM_INPUTS_COUNT_padding];
2017-03-27 19:19:58 -07:00
/**
2021-06-15 14:32:56 -07:00
* Extra idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 1392
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t acIdleRpmBump;
2017-03-27 19:19:58 -07:00
/**
* set warningPeriod X
2021-04-26 14:59:44 -07:00
seconds
2022-06-29 15:52:53 -07:00
* offset 1394
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t warningPeriod;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
angle
2022-06-29 15:52:53 -07:00
* offset 1396
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float knockDetectionWindowStart;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
angle
2022-06-29 15:52:53 -07:00
* offset 1400
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float knockDetectionWindowEnd;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
ms
2022-06-29 15:52:53 -07:00
* offset 1404
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float idleStepperReactionTime;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
count
2022-06-29 15:52:53 -07:00
* offset 1408
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int idleStepperTotalSteps;
2017-03-27 19:19:58 -07:00
/**
2017-05-12 13:28:56 -07:00
* TODO: finish this #413
2021-04-26 14:59:44 -07:00
sec
2022-06-29 15:52:53 -07:00
* offset 1412
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float noAccelAfterHardLimitPeriodSecs;
2017-03-27 19:19:58 -07:00
/**
* At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback.
2021-04-26 14:59:44 -07:00
index
2022-06-29 15:52:53 -07:00
* offset 1416
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
int mapAveragingSchedulingAtIndex;
2017-03-27 19:19:58 -07:00
/**
2021-07-13 12:19:10 -07:00
* Duration in ms or duty cycle depending on selected mode
2022-06-29 15:52:53 -07:00
* offset 1420
2017-03-27 19:19:58 -07:00
*/
2021-12-19 23:04:16 -08:00
float tachPulseDuractionMs;
2017-03-27 19:19:58 -07:00
/**
2021-11-06 19:14:13 -07:00
* Length of time the deposited wall fuel takes to dissipate after the start of acceleration.
2021-04-26 14:59:44 -07:00
Seconds
2022-06-29 15:52:53 -07:00
* offset 1424
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float wwaeTau;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1428
2017-03-27 19:19:58 -07:00
*/
pid_s alternatorControl;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1448
2017-03-27 19:19:58 -07:00
*/
pid_s etb;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1468
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT];
2022-06-01 18:31:50 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1472
2022-06-01 18:31:50 -07:00
*/
uint16_t unused1452;
2021-07-13 11:37:37 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1474
2021-07-13 11:37:37 -07:00
*/
2021-07-27 14:37:24 -07:00
brain_input_pin_e turboSpeedSensorInputPin;
2019-10-23 18:41:30 -07:00
/**
2019-12-07 21:37:33 -08:00
* Closed throttle#2. todo: extract these two fields into a structure
* See also tps2_1AdcChannel
* set tps2_min X
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 1476
2019-10-23 18:41:30 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t tps2Min;
2019-12-07 21:37:33 -08:00
/**
* Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!
* See also tps1_1AdcChannel
* set tps2_max X
2021-04-26 14:59:44 -07:00
ADC
2022-06-29 15:52:53 -07:00
* offset 1478
2019-12-07 21:37:33 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t tps2Max;
2019-12-07 21:37:33 -08:00
/**
2020-03-24 21:58:59 -07:00
* See also startStopButtonPin
2022-06-29 15:52:53 -07:00
* offset 1480
2019-12-07 21:37:33 -08:00
*/
2020-03-18 12:56:17 -07:00
output_pin_e starterControlPin;
/**
2022-06-29 15:52:53 -07:00
* offset 1482
2020-03-18 12:56:17 -07:00
*/
2020-03-20 17:45:35 -07:00
pin_input_mode_e startStopButtonMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1483
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1483[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1484
2020-03-20 17:45:35 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio mc33816_flag0;
2019-12-29 22:41:23 -08:00
/**
2021-04-26 14:59:44 -07:00
Pulse
2022-06-29 15:52:53 -07:00
* offset 1486
2019-12-29 22:41:23 -08:00
*/
2021-12-01 21:04:17 -08:00
uint8_t tachPulsePerRev;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1487
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1487[1];
2017-03-27 19:19:58 -07:00
/**
* kPa value which is too low to be true
2021-04-26 14:59:44 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 1488
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float mapErrorDetectionTooLow;
2017-03-27 19:19:58 -07:00
/**
* kPa value which is too high to be true
2021-04-26 14:59:44 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 1492
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float mapErrorDetectionTooHigh;
2017-03-27 19:19:58 -07:00
/**
2021-03-28 05:41:23 -07:00
* How long to wait for the spark to fire before recharging the coil for another spark.
2021-04-26 14:59:44 -07:00
ms
2022-06-29 15:52:53 -07:00
* offset 1496
2017-03-27 19:19:58 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint16_t, 1000, 1> multisparkSparkDuration;
2020-03-14 06:18:25 -07:00
/**
2021-03-28 05:41:23 -07:00
* This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table.
2021-04-26 14:59:44 -07:00
ms
2022-06-29 15:52:53 -07:00
* offset 1498
2020-03-14 06:18:25 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint16_t, 1000, 1> multisparkDwell;
2017-03-27 19:19:58 -07:00
/**
2018-01-07 09:11:49 -08:00
* See cltIdleRpmBins
2022-06-29 15:52:53 -07:00
* offset 1500
2017-03-27 19:19:58 -07:00
*/
pid_s idleRpmPid;
/**
2021-11-06 19:14:13 -07:00
* 0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.
2021-04-26 14:59:44 -07:00
Fraction
2022-06-29 15:52:53 -07:00
* offset 1520
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float wwaeBeta;
2017-03-27 19:19:58 -07:00
/**
2020-05-09 15:59:03 -07:00
* blue LED on many rusEFI boards.
* Blue Communication LED which is expected to blink at 50% duty cycle during normal board operation.
* If USB communication cable is connected Blue LED starts to blink faster.
2022-06-29 15:52:53 -07:00
* offset 1524
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio communicationLedPin;
2017-03-27 19:19:58 -07:00
/**
2020-05-09 15:59:03 -07:00
* Green LED on many rusEFI boards.
* Off if engine is stopped, blinks if engine is cranking, solid if engine is running.
2022-06-29 15:52:53 -07:00
* offset 1526
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio runningLedPin;
2017-03-27 19:19:58 -07:00
/**
2020-05-02 21:11:27 -07:00
* See also EFI_CONSOLE_RX_BRAIN_PIN
2022-06-29 15:52:53 -07:00
* offset 1528
2017-03-27 19:19:58 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio binarySerialTxPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1530
2022-04-24 20:46:16 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio binarySerialRxPin;
2022-04-24 20:46:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1532
2022-04-24 20:46:16 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio auxValves[AUX_DIGITAL_VALVE_COUNT];
2022-04-24 20:46:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1536
*/
2022-04-24 20:46:16 -07:00
switch_input_pin_e tcuUpshiftButtonPin;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1538
2021-06-12 04:03:20 -07:00
*/
switch_input_pin_e tcuDownshiftButtonPin;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
voltage
2022-06-29 15:52:53 -07:00
* offset 1540
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float throttlePedalUpVoltage;
/**
* Pedal in the floor
2021-04-26 14:59:44 -07:00
voltage
2022-06-29 15:52:53 -07:00
* offset 1544
*/
2021-12-01 21:04:17 -08:00
float throttlePedalWOTVoltage;
2017-06-13 07:40:16 -07:00
/**
2022-06-29 10:24:58 -07:00
* on IGN voltage detection turn fuel pump on to build fuel pressure
2021-04-26 14:59:44 -07:00
seconds
2022-06-29 15:52:53 -07:00
* offset 1548
2017-06-13 07:40:16 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t startUpFuelPumpDuration;
/**
2021-05-21 12:28:41 -07:00
* If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 1550
*/
2021-12-01 21:04:17 -08:00
int16_t idlePidRpmDeadZone;
2017-03-27 19:19:58 -07:00
/**
2019-07-11 18:14:02 -07:00
* This is the target battery voltage the alternator PID control will attempt to maintain
2021-04-26 14:59:44 -07:00
Volts
2022-06-29 15:52:53 -07:00
* offset 1552
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float targetVBatt;
2017-03-27 19:19:58 -07:00
/**
* Turns off alternator output above specified TPS, enabling this reduced parasitic drag on the engine at full load.
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 1556
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float alternatorOffAboveTps;
2017-07-15 12:36:49 -07:00
/**
* This is the duration in cycles that the IAC will take to reach its normal idle position, it can be used to hold the idle higher for a few seconds after cranking to improve startup.
2021-04-26 14:59:44 -07:00
cycles
2022-06-29 15:52:53 -07:00
* offset 1560
2017-07-15 12:36:49 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t afterCrankingIACtaperDuration;
2017-07-31 12:35:12 -07:00
/**
* Extra IAC, in percent between 0 and 100, tapered between zero and idle deactivation TPS value
2021-04-26 14:59:44 -07:00
percent
2022-06-29 15:52:53 -07:00
* offset 1562
2017-07-31 12:35:12 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t iacByTpsTaper;
/**
2021-11-11 15:37:47 -08:00
* Auxiliary sensor serial, not to be confused with secondary calibration serial
2020-04-19 12:47:29 -07:00
* set_aux_tx_pin X
2022-06-29 15:52:53 -07:00
* offset 1564
*/
2022-04-28 15:06:22 -07:00
Gpio auxSerialTxPin;
/**
2022-06-29 15:52:53 -07:00
* offset 1566
*/
2022-04-28 15:06:22 -07:00
Gpio warningLedPin;
/**
2021-11-11 15:37:47 -08:00
* Auxiliary sensor serial, not to be confused with secondary calibration serial
2020-04-19 12:47:29 -07:00
* set_aux_rx_pin X
2022-06-29 15:52:53 -07:00
* offset 1568
*/
2022-04-28 15:06:22 -07:00
Gpio auxSerialRxPin;
/**
2022-06-29 15:52:53 -07:00
* offset 1570
*/
2022-04-28 15:06:22 -07:00
Gpio LIS302DLCsPin;
2017-08-16 23:32:06 -07:00
/**
2022-01-23 12:42:35 -08:00
* How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.
sec
2022-06-29 15:52:53 -07:00
* offset 1572
2017-03-27 19:19:58 -07:00
*/
2022-01-24 04:38:16 -08:00
scaled_channel<uint8_t, 20, 1> tpsAccelLookback;
2022-01-23 12:42:35 -08:00
/**
2022-01-27 11:27:44 -08:00
* Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.
kph
2022-06-29 15:52:53 -07:00
* offset 1573
2022-01-23 12:42:35 -08:00
*/
2022-01-27 11:27:44 -08:00
uint8_t coastingFuelCutVssLow;
/**
* Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.
kph
2022-06-29 15:52:53 -07:00
* offset 1574
2022-01-27 11:27:44 -08:00
*/
uint8_t coastingFuelCutVssHigh;
/**
2022-01-28 18:41:30 -08:00
* Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.
sec
2022-06-29 15:52:53 -07:00
* offset 1575
2022-01-27 11:27:44 -08:00
*/
2022-01-28 18:41:30 -08:00
scaled_channel<uint8_t, 10, 1> noFuelTrimAfterDfcoTime;
2017-03-27 19:19:58 -07:00
/**
2019-07-11 18:14:02 -07:00
* Maximum change delta of TPS percentage over the 'length'. Actual TPS change has to be above this value in order for TPS/TPS acceleration to kick in.
2021-04-26 14:59:44 -07:00
roc
2022-06-29 15:52:53 -07:00
* offset 1576
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float tpsAccelEnrichmentThreshold;
2017-03-27 19:19:58 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1580
2017-03-27 19:19:58 -07:00
*/
2022-03-28 20:07:59 -07:00
brain_input_pin_e auxSpeedSensorInputPin[2];
/**
2022-06-29 15:52:53 -07:00
* offset 1584
2022-03-28 20:07:59 -07:00
*/
2022-04-04 17:36:02 -07:00
uint8_t totalGearsCount;
2022-03-28 20:07:59 -07:00
/**
2022-04-15 07:34:37 -07:00
* Sets what part of injection's is controlled by the injection phase table.
2022-06-29 15:52:53 -07:00
* offset 1585
2022-03-28 20:07:59 -07:00
*/
2022-04-15 07:34:37 -07:00
InjectionTimingMode injectionTimingMode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1586
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1586[2];
2017-03-27 19:19:58 -07:00
/**
2021-10-16 18:29:33 -07:00
* Band rate for primary TTL
BPs
2022-06-29 15:52:53 -07:00
* offset 1588
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint32_t uartConsoleSerialSpeed;
2017-03-27 19:19:58 -07:00
/**
2021-10-30 19:08:31 -07:00
* For decel we simply multiply delta of TPS and tFor decel we do not use table?!
2021-04-26 14:59:44 -07:00
roc
2022-06-29 15:52:53 -07:00
* offset 1592
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float tpsDecelEnleanmentThreshold;
2017-03-27 19:19:58 -07:00
/**
2021-10-30 19:08:31 -07:00
* Magic multiplier, we multiply delta of TPS and get fuel squirt duration
2021-04-26 14:59:44 -07:00
coeff
2022-06-29 15:52:53 -07:00
* offset 1596
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float tpsDecelEnleanmentMultiplier;
2017-03-27 19:19:58 -07:00
/**
* ExpAverage alpha coefficient
2021-04-26 14:59:44 -07:00
coeff
2022-06-29 15:52:53 -07:00
* offset 1600
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float slowAdcAlpha;
2017-03-27 19:19:58 -07:00
/**
2019-04-20 11:54:16 -07:00
* See http://rusefi.com/s/debugmode
*
2017-06-07 20:12:04 -07:00
* set debug_mode X
2022-06-29 15:52:53 -07:00
* offset 1604
2017-03-27 19:19:58 -07:00
*/
debug_mode_e debugMode;
2022-04-30 10:07:03 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1605
2022-04-30 10:07:03 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1605[3];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
BPs
2022-06-29 15:52:53 -07:00
* offset 1608
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
uint32_t auxSerialSpeed;
2020-04-19 12:47:29 -07:00
/**
2021-04-26 14:59:44 -07:00
voltage
2022-06-29 15:52:53 -07:00
* offset 1612
2020-04-19 12:47:29 -07:00
*/
2021-12-01 21:04:17 -08:00
float throttlePedalSecondaryUpVoltage;
2020-05-23 07:55:42 -07:00
/**
* Pedal in the floor
2021-04-26 14:59:44 -07:00
voltage
2022-06-29 15:52:53 -07:00
* offset 1616
2020-05-23 07:55:42 -07:00
*/
2021-12-01 21:04:17 -08:00
float throttlePedalSecondaryWOTVoltage;
2020-05-23 07:55:42 -07:00
/**
2021-11-06 19:14:13 -07:00
* set can_baudrate
2022-06-29 15:52:53 -07:00
* offset 1620
2020-05-23 07:55:42 -07:00
*/
2020-06-14 14:01:05 -07:00
can_baudrate_e canBaudRate;
/**
2020-09-07 07:17:40 -07:00
* Override the Y axis (load) value used for the VE table.
* Advanced users only: If you aren't sure you need this, you probably don't need this.
2022-06-29 15:52:53 -07:00
* offset 1621
2020-06-14 14:01:05 -07:00
*/
2020-09-07 07:17:40 -07:00
ve_override_e veOverrideMode;
2020-08-02 10:46:08 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1622
2020-08-02 10:46:08 -07:00
*/
can_baudrate_e can2BaudRate;
2020-06-14 14:01:05 -07:00
/**
2020-09-07 07:17:40 -07:00
* Override the Y axis (load) value used for the AFR table.
* Advanced users only: If you aren't sure you need this, you probably don't need this.
2022-06-29 15:52:53 -07:00
* offset 1623
2020-08-02 10:46:08 -07:00
*/
2021-12-26 11:53:27 -08:00
load_override_e afrOverrideMode;
2020-08-02 10:46:08 -07:00
/**
2022-01-02 19:11:01 -08:00
A
2022-06-29 15:52:53 -07:00
* offset 1624
2020-08-05 04:59:46 -07:00
*/
2022-01-02 23:19:26 -08:00
scaled_channel<uint8_t, 10, 1> mc33_hpfp_i_peak;
2022-01-02 19:11:01 -08:00
/**
A
2022-06-29 15:52:53 -07:00
* offset 1625
2022-01-02 19:11:01 -08:00
*/
2022-01-02 23:19:26 -08:00
scaled_channel<uint8_t, 10, 1> mc33_hpfp_i_hold;
2022-01-02 19:11:01 -08:00
/**
* How long to deactivate power when hold current is reached before applying power again
us
2022-06-29 15:52:53 -07:00
* offset 1626
2022-01-02 19:11:01 -08:00
*/
uint8_t mc33_hpfp_i_hold_off;
/**
* Maximum amount of time the solenoid can be active before assuming a programming error
ms
2022-06-29 15:52:53 -07:00
* offset 1627
2022-01-02 19:11:01 -08:00
*/
uint8_t mc33_hpfp_max_hold;
2020-08-05 04:59:46 -07:00
/**
2022-04-29 16:48:53 -07:00
* Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)
2022-06-29 15:52:53 -07:00
offset 1628 bit 0 */
2022-04-29 16:48:53 -07:00
bool stepperDcInvertedPins : 1 {};
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 1 */
2021-12-24 20:41:09 -08:00
bool unused1740b0 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 2 */
2021-12-24 20:41:09 -08:00
bool unused1740b1 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 3 */
2021-12-24 20:41:09 -08:00
bool unused1740b2 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 4 */
2021-11-19 20:16:43 -08:00
bool unused1127 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 5 */
2021-11-19 20:16:43 -08:00
bool unused1128 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 6 */
2021-11-19 20:16:43 -08:00
bool unused1129 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 7 */
2021-11-19 20:16:43 -08:00
bool unused1130 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 8 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_8 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 9 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_9 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 10 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_10 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 11 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_11 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 12 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_12 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 13 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_13 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 14 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_14 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 15 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_15 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 16 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_16 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 17 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_17 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 18 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_18 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 19 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_19 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 20 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_20 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 21 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_21 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 22 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_22 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 23 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_23 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 24 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_24 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 25 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_25 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 26 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_26 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 27 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_27 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 28 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_28 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 29 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_29 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 30 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_30 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
offset 1628 bit 31 */
2022-07-27 23:53:58 -07:00
bool unusedBit_542_31 : 1 {};
2020-08-05 04:59:46 -07:00
/**
2022-05-22 08:15:15 -07:00
* Time between bench test pulses
2022-01-03 00:26:21 -08:00
ms
2022-06-29 15:52:53 -07:00
* offset 1632
2020-08-05 04:59:46 -07:00
*/
2022-01-03 00:26:21 -08:00
scaled_channel<uint8_t, 1, 5> benchTestOffTime;
/**
2022-05-22 08:15:15 -07:00
* How many test bench pulses do you want
2022-01-03 00:26:21 -08:00
count
2022-06-29 15:52:53 -07:00
* offset 1633
2022-01-03 00:26:21 -08:00
*/
uint8_t benchTestCount;
/**
2022-05-22 08:15:15 -07:00
* Length of each of the test pulses
2022-01-03 20:48:36 -08:00
ms
2022-06-29 15:52:53 -07:00
* offset 1634
2022-01-03 00:26:21 -08:00
*/
2022-01-03 20:48:36 -08:00
scaled_channel<uint8_t, 1, 5> benchTestOnTime;
2022-01-03 00:26:21 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1635
2022-01-03 00:26:21 -08:00
*/
2022-04-19 07:57:09 -07:00
pin_input_mode_e launchActivatePinMode;
2020-08-05 04:59:46 -07:00
/**
* set_can2_tx_pin X
2022-06-29 15:52:53 -07:00
* offset 1636
2020-08-05 04:59:46 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio can2TxPin;
2020-08-05 04:59:46 -07:00
/**
* set_can2_rx_pin X
2022-06-29 15:52:53 -07:00
* offset 1638
2020-08-05 04:59:46 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio can2RxPin;
2020-08-05 04:59:46 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1640
2020-06-14 14:01:05 -07:00
*/
2020-09-08 23:44:30 -07:00
pin_output_mode_e starterControlPinMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1641
2020-09-08 23:44:30 -07:00
*/
2020-09-18 00:05:55 -07:00
adc_channel_e wastegatePositionSensor;
/**
2020-10-09 14:19:04 -07:00
* Override the Y axis (load) value used for the ignition table.
* Advanced users only: If you aren't sure you need this, you probably don't need this.
2022-06-29 15:52:53 -07:00
* offset 1642
2020-09-18 00:05:55 -07:00
*/
2021-12-26 11:53:27 -08:00
load_override_e ignOverrideMode;
2020-10-09 14:19:04 -07:00
/**
2020-10-23 12:48:01 -07:00
* Select which fuel pressure sensor measures the pressure of the fuel at your injectors.
2022-06-29 15:52:53 -07:00
* offset 1643
2020-10-09 14:19:04 -07:00
*/
2020-10-23 12:48:01 -07:00
injector_pressure_type_e injectorPressureType;
/**
2022-06-29 15:52:53 -07:00
* offset 1644
2020-10-23 12:48:01 -07:00
*/
2020-11-15 14:33:48 -08:00
output_pin_e hpfpValvePin;
2020-11-03 07:53:22 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1646
2020-11-03 07:53:22 -08:00
*/
pin_output_mode_e hpfpValvePinMode;
2022-04-29 16:48:53 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1647
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1647[1];
2017-03-27 19:19:58 -07:00
/**
2020-09-28 11:47:21 -07:00
* MAP value above which fuel is cut in case of overboost.
2021-01-27 17:33:00 -08:00
* Set to 0 to disable overboost cut.
2021-04-26 14:59:44 -07:00
kPa (absolute)
2022-06-29 15:52:53 -07:00
* offset 1648
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float boostCutPressure;
2017-03-27 19:19:58 -07:00
/**
2022-01-30 06:01:11 -08:00
kg/h
2022-06-29 15:52:53 -07:00
* offset 1652
2017-03-27 19:19:58 -07:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 1, 5> tchargeBins[16];
2022-01-30 06:01:11 -08:00
/**
ratio
2022-06-29 15:52:53 -07:00
* offset 1668
2022-01-30 06:01:11 -08:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint8_t, 100, 1> tchargeValues[16];
2017-03-27 19:19:58 -07:00
/**
* Fixed timing, useful for TDC testing
2021-04-26 14:59:44 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 1684
2017-03-27 19:19:58 -07:00
*/
2021-12-01 21:04:17 -08:00
float fixedTiming;
2018-11-29 21:17:55 -08:00
/**
* MAP voltage for low point
2021-04-26 14:59:44 -07:00
v
2022-06-29 15:52:53 -07:00
* offset 1688
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float mapLowValueVoltage;
2018-11-29 21:17:55 -08:00
/**
* MAP voltage for low point
2021-04-26 14:59:44 -07:00
v
2022-06-29 15:52:53 -07:00
* offset 1692
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float mapHighValueVoltage;
2018-11-29 21:17:55 -08:00
/**
* EGO value correction
2021-04-26 14:59:44 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 1696
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float egoValueShift;
/**
2022-06-29 15:52:53 -07:00
* offset 1700
*/
2021-10-28 21:20:12 -07:00
output_pin_e vvtPins[CAM_INPUTS_COUNT];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1708
2018-11-29 21:17:55 -08:00
*/
spi_device_e cj125SpiDevice;
/**
2022-06-29 15:52:53 -07:00
* offset 1709
*/
pin_output_mode_e cj125CsPinMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1710
*/
2020-09-27 04:38:53 -07:00
pin_output_mode_e sdCardCsPinMode;
/**
2020-09-09 13:54:16 -07:00
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
2022-06-29 15:52:53 -07:00
* offset 1711
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1711[1];
2018-11-29 21:17:55 -08:00
/**
* This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling.
2021-04-26 14:59:44 -07:00
percent
2022-06-29 15:52:53 -07:00
* offset 1712
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int crankingIACposition;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1716
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeMinRpmMinTps;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1720
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeMinRpmMaxTps;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1724
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeMaxRpmMinTps;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1728
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeMaxRpmMaxTps;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1732
2018-11-29 21:17:55 -08:00
*/
2021-11-14 07:39:47 -08:00
pwm_freq_t vvtOutputFrequency[CAMS_PER_BANK];
2021-02-10 17:23:22 -08:00
/**
2021-05-31 15:02:57 -07:00
* Additional idle % when fan #1 is active
%
2022-06-29 15:52:53 -07:00
* offset 1736
2021-02-10 17:23:22 -08:00
*/
2021-12-01 21:04:17 -08:00
uint8_t fan1ExtraIdle;
2021-02-10 17:23:22 -08:00
/**
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
2022-06-29 15:52:53 -07:00
* offset 1737
2021-02-10 17:23:22 -08:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1737[3];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Hz
2022-06-29 15:52:53 -07:00
* offset 1740
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int alternatorPwmFrequency;
2018-11-29 21:17:55 -08:00
/**
* set vvt_mode X
2022-06-29 15:52:53 -07:00
* offset 1744
2018-11-29 21:17:55 -08:00
*/
2021-02-08 18:50:31 -08:00
vvt_mode_e vvtMode[CAMS_PER_BANK];
2021-02-08 21:26:52 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1746
2021-02-08 21:26:52 -08:00
*/
uint8_t vvtModePadding[CAMS_PER_BANK_padding];
2021-02-08 11:13:25 -08:00
/**
2021-05-31 15:02:57 -07:00
* Additional idle % when fan #2 is active
%
2022-06-29 15:52:53 -07:00
* offset 1746
2021-02-08 11:13:25 -08:00
*/
2021-12-01 21:04:17 -08:00
uint8_t fan2ExtraIdle;
2021-05-31 15:02:57 -07:00
/**
2021-12-08 14:49:58 -08:00
* Delay to allow fuel pressure to build before firing the priming pulse.
sec
2022-06-29 15:52:53 -07:00
* offset 1747
2021-05-31 15:02:57 -07:00
*/
2021-12-08 14:49:58 -08:00
scaled_channel<uint8_t, 100, 1> primingDelay;
2021-10-19 16:54:00 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1748
2021-10-19 16:54:00 -07:00
*/
adc_channel_e auxAnalogInputs[AUX_ANALOG_INPUT_COUNT];
2021-07-09 07:09:27 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1756
2021-07-09 07:09:27 -07:00
*/
output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1780
2018-11-29 21:17:55 -08:00
*/
2020-04-23 13:57:37 -07:00
tle8888_mode_e tle8888mode;
/**
2022-06-29 15:52:53 -07:00
* offset 1781
2020-04-23 13:57:37 -07:00
*/
2020-09-27 04:38:53 -07:00
pin_output_mode_e LIS302DLCsPinMode;
/**
2021-05-21 12:28:41 -07:00
* None = I have a MAP-referenced fuel pressure regulator
* Fixed rail pressure = I have an atmosphere-referenced fuel pressure regulator (returnless, typically)
* Sensed rail pressure = I have a fuel pressure sensor
2022-06-29 15:52:53 -07:00
* offset 1782
2020-09-27 04:38:53 -07:00
*/
2020-11-10 20:13:06 -08:00
injector_compensation_mode_e injectorCompensationMode;
2022-04-24 21:26:26 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1783
2022-04-24 20:46:16 -07:00
*/
2022-04-24 21:26:26 -07:00
pin_output_mode_e fan2PinMode;
2020-11-10 20:13:06 -08:00
/**
* This is the pressure at which your injector flow is known.
* For example if your injectors flow 400cc/min at 3.5 bar, enter 350kpa here.
2021-04-26 14:59:44 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 1784
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float fuelReferencePressure;
2018-11-29 21:17:55 -08:00
/**
2020-04-30 16:43:31 -07:00
* Fuel multiplier (enrichment) immediately after engine start
2021-04-26 14:59:44 -07:00
mult
2022-06-29 15:52:53 -07:00
* offset 1788
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float postCrankingFactor;
2018-11-29 21:17:55 -08:00
/**
2020-04-30 16:43:31 -07:00
* Time over which to taper out after start enrichment
2021-04-26 14:59:44 -07:00
seconds
2022-06-29 15:52:53 -07:00
* offset 1792
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float postCrankingDurationSec;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1796
2018-11-29 21:17:55 -08:00
*/
ThermistorConf auxTempSensor1;
/**
2022-06-29 15:52:53 -07:00
* offset 1828
2018-11-29 21:17:55 -08:00
*/
ThermistorConf auxTempSensor2;
2021-08-09 13:40:28 -07:00
/**
Deg
2022-06-29 15:52:53 -07:00
* offset 1860
2021-08-09 13:40:28 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t knockSamplingDuration;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Hz
2022-06-29 15:52:53 -07:00
* offset 1862
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t etbFreq;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1864
2018-11-29 21:17:55 -08:00
*/
2020-10-19 05:06:22 -07:00
pid_s etbWastegatePid;
/**
2021-10-06 11:01:16 -07:00
* For micro-stepping, make sure that PWM frequency (etbFreq) is high enough
2022-06-29 15:52:53 -07:00
* offset 1884
2020-10-19 05:06:22 -07:00
*/
2021-10-06 11:01:16 -07:00
stepper_num_micro_steps_e stepperNumMicroSteps;
/**
* Use to limit the current when the stepper motor is idle, not moving (100% = no limit)
%
2022-06-29 15:52:53 -07:00
* offset 1885
2021-10-06 11:01:16 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t stepperMinDutyCycle;
2021-10-06 11:01:16 -07:00
/**
* Use to limit the max.current through the stepper motor (100% = no limit)
%
2022-06-29 15:52:53 -07:00
* offset 1886
2021-10-06 11:01:16 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t stepperMaxDutyCycle;
2021-10-06 11:01:16 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1887
2021-10-06 11:01:16 -07:00
*/
2021-12-19 22:09:38 -08:00
spi_device_e sdCardSpiDevice;
2018-11-29 21:17:55 -08:00
/**
* per-cylinder timing correction
2021-05-27 05:25:55 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 1888
2018-11-29 21:17:55 -08:00
*/
2021-07-06 17:57:01 -07:00
angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
seconds
2022-06-29 15:52:53 -07:00
* offset 1936
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float idlePidActivationTime;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1940
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi1SckMode;
2018-11-29 21:17:55 -08:00
/**
2020-03-17 10:40:14 -07:00
* Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc.
2022-06-29 15:52:53 -07:00
* offset 1941
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi1MosiMode;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1942
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi1MisoMode;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1943
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi2SckMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1944
*/
pin_mode_e spi2MosiMode;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 1945
*/
pin_mode_e spi2MisoMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1946
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi3SckMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1947
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi3MosiMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1948
2022-04-24 20:46:16 -07:00
*/
pin_mode_e spi3MisoMode;
/**
2022-06-29 15:52:53 -07:00
* offset 1949
2018-11-29 21:17:55 -08:00
*/
pin_output_mode_e stepperEnablePinMode;
2018-11-29 21:17:55 -08:00
/**
2019-05-25 10:47:09 -07:00
* ResetB
2022-06-29 15:52:53 -07:00
* offset 1950
2018-11-29 21:17:55 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio mc33816_rstb;
2019-05-25 10:47:09 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1952
2019-05-25 10:47:09 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio mc33816_driven;
2018-11-29 21:17:55 -08:00
/**
2019-07-21 14:06:16 -07:00
* Brake pedal switch
2022-06-29 15:52:53 -07:00
* offset 1954
2018-11-29 21:17:55 -08:00
*/
2019-06-07 14:38:12 -07:00
switch_input_pin_e brakePedalPin;
2018-11-29 21:17:55 -08:00
/**
* lambda input
2022-06-29 15:52:53 -07:00
* offset 1956
2018-11-29 21:17:55 -08:00
*/
adc_channel_e cj125ua;
2018-11-29 21:17:55 -08:00
/**
* heater input
2022-06-29 15:52:53 -07:00
* offset 1957
*/
adc_channel_e cj125ur;
/**
2022-06-29 15:52:53 -07:00
* offset 1958
*/
pin_input_mode_e brakePedalPinMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 1959
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_1959[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 1960
2018-11-29 21:17:55 -08:00
*/
2021-02-10 17:23:22 -08:00
pid_s auxPid[CAMS_PER_BANK];
/**
2022-06-29 15:52:53 -07:00
* offset 2000
2021-02-10 17:23:22 -08:00
*/
2021-07-07 20:49:03 -07:00
float injectorCorrectionPolynomial[8];
/**
2021-12-08 14:49:58 -08:00
C
2022-06-29 15:52:53 -07:00
* offset 2032
2021-07-07 20:49:03 -07:00
*/
2021-12-08 14:49:58 -08:00
int8_t primeBins[8];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 2040
2018-11-29 21:17:55 -08:00
*/
2020-10-23 04:33:40 -07:00
linear_sensor_s oilPressure;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 2060
2018-11-29 21:17:55 -08:00
*/
spi_device_e accelerometerSpiDevice;
2019-04-14 15:12:15 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 2061
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_2061[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2062
2019-04-14 15:12:15 -07:00
*/
2021-06-13 05:09:09 -07:00
output_pin_e fan2Pin;
2020-05-02 12:56:36 -07:00
/**
2021-06-13 05:09:09 -07:00
* Cooling fan turn-on temperature threshold, in Celsius
deg C
2022-06-29 15:52:53 -07:00
* offset 2064
2020-05-02 12:56:36 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t fan2OnTemperature;
2020-05-02 12:56:36 -07:00
/**
2021-06-13 05:09:09 -07:00
* Cooling fan turn-off temperature threshold, in Celsius
deg C
2022-06-29 15:52:53 -07:00
* offset 2065
2020-05-02 12:56:36 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t fan2OffTemperature;
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2066
*/
2022-04-28 15:06:22 -07:00
Gpio stepperEnablePin;
/**
2022-06-29 15:52:53 -07:00
* offset 2068
*/
2022-04-28 15:06:22 -07:00
Gpio tle8888_cs;
2019-03-25 12:08:32 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2070
2019-03-25 12:08:32 -07:00
*/
2019-03-25 17:30:36 -07:00
pin_output_mode_e tle8888_csPinMode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 2071
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_2071[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2072
2019-03-25 17:30:36 -07:00
*/
2022-04-28 15:06:22 -07:00
Gpio mc33816_cs;
2018-11-29 21:17:55 -08:00
/**
* todo: more comments
2022-06-29 15:52:53 -07:00
* offset 2074
2018-11-29 21:17:55 -08:00
*/
2022-04-28 15:06:22 -07:00
Gpio servoOutputPins[SERVO_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-12 05:25:48 -07:00
* This sets the RPM above which fuel cut is active.
2021-04-26 14:59:44 -07:00
rpm
2022-06-29 15:52:53 -07:00
* offset 2090
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t coastingFuelCutRpmHigh;
2018-11-29 21:17:55 -08:00
/**
2021-04-12 05:25:48 -07:00
* This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle
2021-04-26 14:59:44 -07:00
rpm
2022-06-29 15:52:53 -07:00
* offset 2092
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t coastingFuelCutRpmLow;
2018-11-29 21:17:55 -08:00
/**
2022-01-24 11:33:08 -08:00
* Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 2094
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t coastingFuelCutTps;
2018-11-29 21:17:55 -08:00
/**
2021-04-12 05:25:48 -07:00
* Fuel cutoff is disabled when the engine is cold.
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 2096
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t coastingFuelCutClt;
2018-11-29 21:17:55 -08:00
/**
* Increases PID reaction for RPM<target by adding extra percent to PID-error
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 2098
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t pidExtraForLowRpm;
2018-11-29 21:17:55 -08:00
/**
* MAP value above which fuel injection is re-enabled.
2021-04-26 14:59:44 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 2100
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t coastingFuelCutMap;
2018-11-29 21:17:55 -08:00
/**
2022-05-01 20:50:09 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 2102
2018-11-29 21:17:55 -08:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_2102[2];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 2104
2018-11-29 21:17:55 -08:00
*/
2020-10-23 04:33:40 -07:00
linear_sensor_s highPressureFuel;
/**
2022-06-29 15:52:53 -07:00
* offset 2124
2020-10-23 04:33:40 -07:00
*/
linear_sensor_s lowPressureFuel;
/**
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 2144
2020-10-23 04:33:40 -07:00
*/
2021-02-17 14:46:18 -08:00
int8_t cltRevLimitRpmBins[CLT_LIMITER_CURVE_SIZE];
/**
2022-06-22 13:58:24 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 2148
2021-02-17 14:46:18 -08:00
*/
uint16_t cltRevLimitRpm[CLT_LIMITER_CURVE_SIZE];
2021-06-11 21:19:09 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2156
2021-06-11 21:19:09 -07:00
*/
2021-11-04 20:03:11 -07:00
gppwm_note_t scriptCurveName[SCRIPT_CURVE_COUNT];
/**
2022-06-29 15:52:53 -07:00
* offset 2252
2021-11-04 20:03:11 -07:00
*/
2021-11-07 07:30:54 -08:00
gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT];
/**
2022-06-29 15:52:53 -07:00
* offset 2316
2021-11-07 07:30:54 -08:00
*/
2021-11-14 08:51:07 -08:00
gppwm_note_t scriptSettingName[SCRIPT_SETTING_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-12-14 11:49:48 -08:00
* Heat transfer coefficient at zero flow.
* 0 means the air charge is fully heated to the same temperature as CLT.
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.
2022-06-29 15:52:53 -07:00
* offset 2444
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeAirCoefMin;
2018-11-29 21:17:55 -08:00
/**
2021-12-14 11:49:48 -08:00
* Heat transfer coefficient at high flow, as defined by "max air flow".
* 0 means the air charge is fully heated to the same temperature as CLT.
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.
2022-06-29 15:52:53 -07:00
* offset 2448
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeAirCoefMax;
2018-11-29 21:17:55 -08:00
/**
2021-12-14 11:49:48 -08:00
* High flow point for heat transfer estimation.
* Set this to perhaps 50-75% of your maximum airflow at wide open throttle.
kg/h
2022-06-29 15:52:53 -07:00
* offset 2452
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeAirFlowMax;
2018-11-29 21:17:55 -08:00
/**
2021-12-14 11:49:48 -08:00
* Maximum allowed rate of increase allowed for the estimated charge temperature
deg/sec
2022-06-29 15:52:53 -07:00
* offset 2456
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeAirIncrLimit;
2018-11-29 21:17:55 -08:00
/**
2021-12-14 11:49:48 -08:00
* Maximum allowed rate of decrease allowed for the estimated charge temperature
deg/sec
2022-06-29 15:52:53 -07:00
* offset 2460
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float tChargeAirDecrLimit;
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 2464
2018-11-29 21:17:55 -08:00
*/
tChargeMode_e tChargeMode;
2022-05-01 05:09:38 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 2465
2022-05-01 05:09:38 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_2465[3];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 2468
2018-11-29 21:17:55 -08:00
*/
2021-12-01 21:04:17 -08:00
float hip9011Gain;
2019-01-04 14:18:43 -08:00
/**
2019-03-02 11:00:32 -08:00
* iTerm min value
2022-06-29 15:52:53 -07:00
* offset 2472
2019-01-04 14:18:43 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t etb_iTermMin;
2019-03-02 11:00:32 -08:00
/**
* iTerm max value
2022-06-29 15:52:53 -07:00
* offset 2474
2019-03-02 11:00:32 -08:00
*/
2021-12-01 21:04:17 -08:00
int16_t etb_iTermMax;
/**
2019-03-22 20:00:21 -07:00
* See useIdleTimingPidControl
2022-06-29 15:52:53 -07:00
* offset 2476
*/
2019-03-22 20:00:21 -07:00
pid_s idleTimingPid;
/**
2019-09-11 17:59:05 -07:00
* If the RPM closer to target than this value, disable timing correction to prevent oscillation
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 2496
2019-03-22 20:00:21 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t idleTimingPidDeadZone;
2019-03-22 20:00:21 -07:00
/**
2019-03-28 19:48:12 -07:00
* A delay in cycles between fuel-enrich. portions
2021-04-26 14:59:44 -07:00
cycles
2022-06-29 15:52:53 -07:00
* offset 2498
2019-03-22 20:00:21 -07:00
*/
2021-12-01 21:04:17 -08:00
int16_t tpsAccelFractionPeriod;
2019-03-22 20:00:21 -07:00
/**
2019-03-28 19:48:12 -07:00
* A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions
2021-04-26 14:59:44 -07:00
coef
2022-06-29 15:52:53 -07:00
* offset 2500
2019-03-22 20:00:21 -07:00
*/
2021-12-01 21:04:17 -08:00
float tpsAccelFractionDivisor;
2019-03-25 12:08:32 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2504
2019-03-25 12:08:32 -07:00
*/
2019-03-28 19:48:12 -07:00
spi_device_e tle8888spiDevice;
2019-04-14 15:12:15 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2505
2019-04-14 15:12:15 -07:00
*/
spi_device_e mc33816spiDevice;
/**
* iTerm min value
2022-06-29 15:52:53 -07:00
* offset 2506
*/
2021-12-01 21:04:17 -08:00
int16_t idlerpmpid_iTermMin;
2019-03-28 19:48:12 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2508
2019-03-28 19:48:12 -07:00
*/
2019-04-13 07:58:52 -07:00
spi_device_e tle6240spiDevice;
2019-04-14 15:12:15 -07:00
/**
2021-01-05 13:32:00 -08:00
* Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.
2021-05-21 12:28:41 -07:00
* E0 = 14.7
* E10 = 14.1
* E85 = 9.9
* E100 = 9.0
2021-04-26 14:59:44 -07:00
:1
2022-06-29 15:52:53 -07:00
* offset 2509
2019-04-14 15:12:15 -07:00
*/
2021-12-01 21:04:17 -08:00
scaled_channel<uint8_t, 10, 1> stoichRatioPrimary;
/**
* iTerm max value
2022-06-29 15:52:53 -07:00
* offset 2510
*/
2021-12-01 21:04:17 -08:00
int16_t idlerpmpid_iTermMax;
2019-04-13 07:58:52 -07:00
/**
2021-05-21 12:28:41 -07:00
* This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 2512
2019-04-13 07:58:52 -07:00
*/
2021-12-01 21:04:17 -08:00
float etbIdleThrottleRange;
/**
2021-01-02 06:16:50 -08:00
* Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor
2022-06-29 15:52:53 -07:00
* offset 2516
*/
2021-07-06 17:57:01 -07:00
uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT];
/**
2021-12-08 14:49:58 -08:00
mg
2022-06-29 15:52:53 -07:00
* offset 2528
*/
2021-12-08 14:49:58 -08:00
scaled_channel<uint8_t, 1, 5> primeValues[8];
/**
2019-12-03 21:38:40 -08:00
* Trigger comparator center point voltage
2021-04-26 14:59:44 -07:00
V
2022-06-29 15:52:53 -07:00
* offset 2536
*/
2022-06-02 21:53:49 -07:00
scaled_channel<uint8_t, 50, 1> triggerCompCenterVolt;
2019-12-03 21:38:40 -08:00
/**
* Trigger comparator hysteresis voltage (Min)
2021-04-26 14:59:44 -07:00
V
2022-06-29 15:52:53 -07:00
* offset 2537
2019-12-03 21:38:40 -08:00
*/
2022-06-02 21:53:49 -07:00
scaled_channel<uint8_t, 50, 1> triggerCompHystMin;
2019-12-03 21:38:40 -08:00
/**
* Trigger comparator hysteresis voltage (Max)
2021-04-26 14:59:44 -07:00
V
2022-06-29 15:52:53 -07:00
* offset 2538
2019-12-03 21:38:40 -08:00
*/
2022-06-02 21:53:49 -07:00
scaled_channel<uint8_t, 50, 1> triggerCompHystMax;
2019-12-03 21:38:40 -08:00
/**
* VR-sensor saturation RPM
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 2539
2019-12-03 21:38:40 -08:00
*/
2021-12-19 19:56:33 -08:00
scaled_channel<uint8_t, 1, 50> triggerCompSensorSatRpm;
2019-06-15 10:33:14 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2540
2019-06-15 10:33:14 -07:00
*/
2019-09-11 17:46:50 -07:00
pid_s idleRpmPid2;
2019-10-30 06:27:12 -07:00
/**
2020-04-19 15:32:24 -07:00
* set can_vss X
2022-06-29 15:52:53 -07:00
* offset 2560
2019-10-30 06:27:12 -07:00
*/
2020-04-19 15:32:24 -07:00
can_vss_nbc_e canVssNbcType;
/**
2022-05-01 20:14:48 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 2561
2022-05-01 20:14:48 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_2561[3];
2022-05-01 20:14:48 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2564
2020-04-19 15:32:24 -07:00
*/
2020-05-08 19:05:44 -07:00
gppwm_channel gppwm[GPPWM_CHANNELS];
2020-04-25 15:07:37 -07:00
/**
2021-04-26 14:59:44 -07:00
mA
2022-06-29 15:52:53 -07:00
* offset 2932
2020-04-25 15:07:37 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_i_boost;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
mA
2022-06-29 15:52:53 -07:00
* offset 2934
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_i_peak;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
mA
2022-06-29 15:52:53 -07:00
* offset 2936
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_i_hold;
2020-05-19 05:38:31 -07:00
/**
2022-07-15 23:38:35 -07:00
* Maximum allowed boost phase time. If the injector current doesn't reach the threshold before this time elapses, it is assumed that the injector is missing or has failed open circuit.
2021-04-26 14:59:44 -07:00
us
2022-06-29 15:52:53 -07:00
* offset 2938
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_t_max_boost;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2022-06-29 15:52:53 -07:00
* offset 2940
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_t_peak_off;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2022-06-29 15:52:53 -07:00
* offset 2942
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_t_peak_tot;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2022-06-29 15:52:53 -07:00
* offset 2944
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_t_bypass;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2022-06-29 15:52:53 -07:00
* offset 2946
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_t_hold_off;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2022-06-29 15:52:53 -07:00
* offset 2948
2020-05-19 05:38:31 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t mc33_t_hold_tot;
2020-05-19 05:38:31 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2950
2020-05-19 05:38:31 -07:00
*/
2021-06-12 04:28:45 -07:00
pin_input_mode_e tcuUpshiftButtonPinMode;
/**
2022-06-29 15:52:53 -07:00
* offset 2951
2021-06-12 04:28:45 -07:00
*/
pin_input_mode_e tcuDownshiftButtonPinMode;
2020-05-19 05:38:31 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 2952
2020-05-19 05:38:31 -07:00
*/
2020-09-10 19:18:18 -07:00
pin_input_mode_e acSwitchMode;
/**
2022-06-29 15:52:53 -07:00
* offset 2953
2020-09-10 19:18:18 -07:00
*/
2020-09-28 18:41:06 -07:00
pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT];
/**
2022-04-18 05:10:05 -07:00
* Knock sensor output knock detection threshold depending on current RPM.
2021-04-26 14:59:44 -07:00
dB
2022-06-29 15:52:53 -07:00
* offset 2959
2020-09-28 18:41:06 -07:00
*/
2022-04-18 05:10:05 -07:00
scaled_channel<int8_t, 2, 1> knockBaseNoise[ENGINE_NOISE_CURVE_SIZE];
2022-04-24 21:01:07 -07:00
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 2975
2022-04-24 21:01:07 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_2975[1];
2020-09-10 19:18:18 -07:00
/**
2022-06-29 15:52:53 -07:00
ratio
* offset 2976
2020-09-10 19:18:18 -07:00
*/
2021-10-30 07:50:41 -07:00
float triggerGapOverrideFrom[GAP_TRACKING_LENGTH];
2022-06-29 15:52:53 -07:00
/**
ratio
* offset 3048
*/
float triggerGapOverrideTo[GAP_TRACKING_LENGTH];
2021-05-23 17:00:27 -07:00
/**
2022-05-09 21:29:25 -07:00
* Below this RPM, use camshaft information to synchronize the crank's position for full sequential operation. Use this if your cam sensor does weird things at high RPM. Set to 0 to disable, and always use cam to help sync crank.
rpm
2022-06-29 15:52:53 -07:00
* offset 3120
2021-05-23 17:00:27 -07:00
*/
2022-05-09 21:29:25 -07:00
scaled_channel<uint8_t, 1, 50> maxCamPhaseResolveRpm;
/**
2022-06-29 15:52:53 -07:00
* offset 3121
2022-05-09 21:29:25 -07:00
*/
int8_t unused4080[11];
2021-09-29 20:55:33 -07:00
/**
2021-11-05 20:28:22 -07:00
lobes/cam
2022-06-29 15:52:53 -07:00
* offset 3132
2021-10-30 07:50:41 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t hpfpCamLobes;
2021-11-05 20:28:22 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3133
2021-11-05 20:28:22 -07:00
*/
hpfp_cam_e hpfpCam;
/**
* Crank angle ATDC of first lobe peak
deg
2022-06-29 15:52:53 -07:00
* offset 3134
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t hpfpPeakPos;
2021-11-05 20:28:22 -07:00
/**
* If the requested activation time is below this angle, don't bother running the pump
deg
2022-06-29 15:52:53 -07:00
* offset 3135
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t hpfpMinAngle;
2021-11-05 20:28:22 -07:00
/**
* Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm.
cc
2022-06-29 15:52:53 -07:00
* offset 3136
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
scaled_channel<uint16_t, 1000, 1> hpfpPumpVolume;
2021-11-05 20:28:22 -07:00
/**
* How long to keep the valve activated (in order to allow the pump to build pressure and keep the valve open on its own)
deg
2022-06-29 15:52:53 -07:00
* offset 3138
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
uint8_t hpfpActivationAngle;
2021-11-05 20:28:22 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3139
2021-11-05 20:28:22 -07:00
*/
2022-04-21 06:14:29 -07:00
uint8_t issFilterReciprocal;
2021-11-05 20:28:22 -07:00
/**
%/kPa
2022-06-29 15:52:53 -07:00
* offset 3140
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
scaled_channel<uint16_t, 1000, 1> hpfpPidP;
2021-11-05 20:28:22 -07:00
/**
%/kPa/lobe
2022-06-29 15:52:53 -07:00
* offset 3142
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
scaled_channel<uint16_t, 100000, 1> hpfpPidI;
2021-11-05 20:28:22 -07:00
/**
* The fastest rate the target pressure can be reduced by. This is because HPFP have no way to bleed off pressure other than injecting fuel.
kPa/s
2022-06-29 15:52:53 -07:00
* offset 3144
2021-11-05 20:28:22 -07:00
*/
2021-12-01 21:04:17 -08:00
uint16_t hpfpTargetDecay;
2021-11-05 20:28:22 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 3146
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 2, 1> hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE];
/**
deg
2022-06-29 15:52:53 -07:00
* offset 3162
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 2, 1> hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE];
/**
volts
2022-06-29 15:52:53 -07:00
* offset 3178
2021-11-05 20:28:22 -07:00
*/
uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE];
/**
ms
2022-06-29 15:52:53 -07:00
* offset 3186
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpDeadtimeMS[HPFP_DEADTIME_SIZE];
/**
kPa
2022-06-29 15:52:53 -07:00
* offset 3202
2021-11-05 20:28:22 -07:00
*/
uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE];
/**
load
2022-06-29 15:52:53 -07:00
* offset 3402
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint16_t, 10, 1> hpfpTargetLoadBins[HPFP_TARGET_SIZE];
/**
RPM
2022-06-29 15:52:53 -07:00
* offset 3422
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 1, 50> hpfpTargetRpmBins[HPFP_TARGET_SIZE];
/**
%
2022-06-29 15:52:53 -07:00
* offset 3432
2021-11-05 20:28:22 -07:00
*/
int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE];
/**
cc/lobe
2022-06-29 15:52:53 -07:00
* offset 3532
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE];
/**
RPM
2022-06-29 15:52:53 -07:00
* offset 3552
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 1, 50> hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE];
2021-12-20 10:59:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 3562
2022-01-06 17:00:00 -08:00
*/
output_pin_e stepper_raw_output[4];
2022-01-13 19:39:21 -08:00
/**
ratio
2022-06-29 15:52:53 -07:00
* offset 3570
2022-01-13 19:39:21 -08:00
*/
scaled_channel<uint16_t, 100, 1> gearRatio[GEARS_COUNT];
2022-01-20 17:45:43 -08:00
/**
* We need to give engine time to build oil pressure without diverting it to VVT
ms
2022-06-29 15:52:53 -07:00
* offset 3586
2022-01-20 17:45:43 -08:00
*/
uint16_t vvtActivationDelayMs;
/**
2022-01-27 22:04:57 -08:00
deg C
2022-06-29 15:52:53 -07:00
* offset 3588
2021-11-05 20:28:22 -07:00
*/
2022-01-27 22:04:57 -08:00
int8_t wwCltBins[WWAE_TABLE_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 3596
2022-01-27 22:04:57 -08:00
*/
scaled_channel<uint8_t, 100, 1> wwTauCltValues[WWAE_TABLE_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 3604
2022-01-27 22:04:57 -08:00
*/
scaled_channel<uint8_t, 100, 1> wwBetaCltValues[WWAE_TABLE_SIZE];
/**
kPa
2022-06-29 15:52:53 -07:00
* offset 3612
2022-01-27 22:04:57 -08:00
*/
int8_t wwMapBins[WWAE_TABLE_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 3620
2022-01-27 22:04:57 -08:00
*/
scaled_channel<uint8_t, 100, 1> wwTauMapValues[WWAE_TABLE_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 3628
2022-01-27 22:04:57 -08:00
*/
scaled_channel<uint8_t, 100, 1> wwBetaMapValues[WWAE_TABLE_SIZE];
2021-11-05 20:28:22 -07:00
/**
2022-02-25 17:40:26 -08:00
Nm
2022-06-29 15:52:53 -07:00
* offset 3636
2021-11-05 20:28:22 -07:00
*/
2022-02-25 17:40:26 -08:00
scaled_channel<uint8_t, 1, 10> torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE];
/**
RPM
2022-06-29 15:52:53 -07:00
* offset 3672
2022-02-25 17:40:26 -08:00
*/
uint16_t torqueRpmBins[TORQUE_CURVE_SIZE];
/**
Load
2022-06-29 15:52:53 -07:00
* offset 3684
2022-02-25 17:40:26 -08:00
*/
uint16_t torqueLoadBins[TORQUE_CURVE_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 3696
2022-02-25 17:40:26 -08:00
*/
2022-04-06 14:44:03 -07:00
GearControllerMode gearControllerMode;
/**
2022-06-29 15:52:53 -07:00
* offset 3697
2022-04-06 14:44:03 -07:00
*/
TransmissionControllerMode transmissionControllerMode;
2022-03-20 08:19:43 -07:00
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 3698
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_3698[2];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3700
2022-03-20 08:19:43 -07:00
*/
linear_sensor_s auxLinear1;
/**
2022-06-29 15:52:53 -07:00
* offset 3720
2022-03-20 08:19:43 -07:00
*/
linear_sensor_s auxLinear2;
/**
2022-06-29 15:52:53 -07:00
* offset 3740
2022-03-20 08:19:43 -07:00
*/
2022-04-12 16:21:41 -07:00
output_pin_e tcu_tcc_onoff_solenoid;
/**
2022-06-29 15:52:53 -07:00
* offset 3742
2022-04-12 16:21:41 -07:00
*/
pin_output_mode_e tcu_tcc_onoff_solenoid_mode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 3743
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_3743[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3744
2022-04-12 16:21:41 -07:00
*/
output_pin_e tcu_tcc_pwm_solenoid;
/**
2022-06-29 15:52:53 -07:00
* offset 3746
2022-04-12 16:21:41 -07:00
*/
pin_output_mode_e tcu_tcc_pwm_solenoid_mode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 3747
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_3747[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3748
2022-04-12 16:21:41 -07:00
*/
2022-04-18 17:15:57 -07:00
pwm_freq_t tcu_tcc_pwm_solenoid_freq;
/**
2022-06-29 15:52:53 -07:00
* offset 3750
2022-04-18 17:15:57 -07:00
*/
output_pin_e tcu_pc_solenoid_pin;
/**
2022-06-29 15:52:53 -07:00
* offset 3752
2022-04-18 17:15:57 -07:00
*/
pin_output_mode_e tcu_pc_solenoid_pin_mode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 3753
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_3753[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3754
2022-04-18 17:15:57 -07:00
*/
pwm_freq_t tcu_pc_solenoid_freq;
/**
2022-06-29 15:52:53 -07:00
* offset 3756
2022-04-18 17:15:57 -07:00
*/
output_pin_e tcu_32_solenoid_pin;
/**
2022-06-29 15:52:53 -07:00
* offset 3758
2022-04-18 17:15:57 -07:00
*/
pin_output_mode_e tcu_32_solenoid_pin_mode;
/**
2022-04-29 16:48:53 -07:00
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 3759
2022-04-29 16:48:53 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_3759[1];
2022-04-29 16:48:53 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 3760
2022-04-18 17:15:57 -07:00
*/
pwm_freq_t tcu_32_solenoid_freq;
/**
2022-05-01 22:38:10 -07:00
* need 4 byte alignment
2022-04-18 17:15:57 -07:00
units
2022-06-29 15:52:53 -07:00
* offset 3762
2022-04-18 17:15:57 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_3762[2];
2022-05-01 22:38:10 -07:00
/**
2022-05-03 00:00:15 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 3764
2022-05-01 22:38:10 -07:00
*/
float etbMinimumPosition;
/**
units
2022-06-29 15:52:53 -07:00
* offset 3768
2022-05-01 22:38:10 -07:00
*/
uint8_t mainUnusedEnd[246];
/**
* need 4 byte alignment
units
2022-06-29 15:52:53 -07:00
* offset 4014
2022-05-01 22:38:10 -07:00
*/
2022-06-29 15:52:53 -07:00
uint8_t alignmentFill_at_4014[2];
2021-12-20 19:04:18 -08:00
};
2022-06-29 15:52:53 -07:00
static_assert(sizeof(engine_configuration_s) == 4016);
2021-12-20 19:04:18 -08:00
// start of cyl_trim_s
struct cyl_trim_s {
/**
* offset 0
*/
scaled_channel<int8_t, 5, 1> table[TRIM_SIZE][TRIM_SIZE];
};
2022-04-17 13:30:07 -07:00
static_assert(sizeof(cyl_trim_s) == 16);
2018-12-19 18:32:26 -08:00
// start of persistent_config_s
struct persistent_config_s {
2018-11-29 21:17:55 -08:00
/**
* offset 0
*/
engine_configuration_s engineConfiguration;
2022-05-02 02:22:06 -07:00
/**
* target TPS value, 0 to 100%
* TODO: use int8 data date once we template interpolation method
target TPS position
2022-06-29 15:52:53 -07:00
* offset 4016
2022-05-02 02:22:06 -07:00
*/
float etbBiasBins[ETB_BIAS_CURVE_LENGTH];
/**
* PWM bias, 0 to 100%
ETB duty cycle bias
2022-06-29 15:52:53 -07:00
* offset 4048
2022-05-02 02:22:06 -07:00
*/
float etbBiasValues[ETB_BIAS_CURVE_LENGTH];
2022-05-01 20:50:09 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 4080
2022-05-01 20:50:09 -07:00
*/
uint8_t iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE];
/**
Load
2022-06-29 15:52:53 -07:00
* offset 4144
2022-05-01 20:50:09 -07:00
*/
uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE];
/**
RPM
2022-06-29 15:52:53 -07:00
* offset 4152
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<uint8_t, 1, 10> iacPidMultRpmBins[IAC_PID_MULT_SIZE];
2022-05-01 20:50:09 -07:00
/**
* On Single Coil or Wasted Spark setups you have to lower dwell at high RPM
RPM
2022-06-29 15:52:53 -07:00
* offset 4160
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE];
2022-05-01 20:50:09 -07:00
/**
ms
2022-06-29 15:52:53 -07:00
* offset 4176
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<uint16_t, 100, 1> sparkDwellValues[DWELL_CURVE_SIZE];
2022-05-01 20:50:09 -07:00
/**
* CLT-based target RPM for automatic idle controller
C
2022-06-29 15:52:53 -07:00
* offset 4192
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<int8_t, 1, 2> cltIdleRpmBins[CLT_CURVE_SIZE];
2022-05-01 20:50:09 -07:00
/**
* See idleRpmPid
RPM
2022-06-29 15:52:53 -07:00
* offset 4208
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<uint8_t, 1, 20> cltIdleRpm[CLT_CURVE_SIZE];
2022-05-01 20:50:09 -07:00
/**
* CLT-based timing correction
C
2022-06-29 15:52:53 -07:00
* offset 4224
2022-05-01 20:50:09 -07:00
*/
float cltTimingBins[CLT_TIMING_CURVE_SIZE];
/**
degree
2022-06-29 15:52:53 -07:00
* offset 4256
2022-05-01 20:50:09 -07:00
*/
float cltTimingExtra[CLT_TIMING_CURVE_SIZE];
/**
x
2022-06-29 15:52:53 -07:00
* offset 4288
2022-05-01 20:50:09 -07:00
*/
float scriptCurve1Bins[SCRIPT_CURVE_16];
/**
y
2022-06-29 15:52:53 -07:00
* offset 4352
2022-05-01 20:50:09 -07:00
*/
float scriptCurve1[SCRIPT_CURVE_16];
/**
x
2022-06-29 15:52:53 -07:00
* offset 4416
2022-05-01 20:50:09 -07:00
*/
float scriptCurve2Bins[SCRIPT_CURVE_16];
/**
y
2022-06-29 15:52:53 -07:00
* offset 4480
2022-05-01 20:50:09 -07:00
*/
float scriptCurve2[SCRIPT_CURVE_16];
/**
x
2022-06-29 15:52:53 -07:00
* offset 4544
2022-05-01 20:50:09 -07:00
*/
float scriptCurve3Bins[SCRIPT_CURVE_8];
/**
y
2022-06-29 15:52:53 -07:00
* offset 4576
2022-05-01 20:50:09 -07:00
*/
float scriptCurve3[SCRIPT_CURVE_8];
/**
x
2022-06-29 15:52:53 -07:00
* offset 4608
2022-05-01 20:50:09 -07:00
*/
float scriptCurve4Bins[SCRIPT_CURVE_8];
/**
y
2022-06-29 15:52:53 -07:00
* offset 4640
2022-05-01 20:50:09 -07:00
*/
float scriptCurve4[SCRIPT_CURVE_8];
/**
x
2022-06-29 15:52:53 -07:00
* offset 4672
2022-05-01 20:50:09 -07:00
*/
float scriptCurve5Bins[SCRIPT_CURVE_8];
/**
y
2022-06-29 15:52:53 -07:00
* offset 4704
2022-05-01 20:50:09 -07:00
*/
float scriptCurve5[SCRIPT_CURVE_8];
/**
x
2022-06-29 15:52:53 -07:00
* offset 4736
2022-05-01 20:50:09 -07:00
*/
float scriptCurve6Bins[SCRIPT_CURVE_8];
/**
y
2022-06-29 15:52:53 -07:00
* offset 4768
2022-05-01 20:50:09 -07:00
*/
float scriptCurve6[SCRIPT_CURVE_8];
/**
kPa
2022-06-29 15:52:53 -07:00
* offset 4800
2022-05-01 20:50:09 -07:00
*/
float baroCorrPressureBins[BARO_CORR_SIZE];
/**
RPM
2022-06-29 15:52:53 -07:00
* offset 4816
2022-05-01 20:50:09 -07:00
*/
float baroCorrRpmBins[BARO_CORR_SIZE];
/**
ratio
2022-06-29 15:52:53 -07:00
* offset 4832
2022-05-01 20:50:09 -07:00
*/
float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE];
/**
* Cranking fuel correction coefficient based on TPS
Ratio
2022-06-29 15:52:53 -07:00
* offset 4896
2022-05-01 20:50:09 -07:00
*/
float crankingTpsCoef[CRANKING_CURVE_SIZE];
/**
%
2022-06-29 15:52:53 -07:00
* offset 4928
2022-05-01 20:50:09 -07:00
*/
float crankingTpsBins[CRANKING_CURVE_SIZE];
/**
* Narrow Band WBO Approximation
V
2022-06-29 15:52:53 -07:00
* offset 4960
2022-05-01 20:50:09 -07:00
*/
float narrowToWideOxygenBins[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE];
/**
ratio
2022-06-29 15:52:53 -07:00
* offset 4992
2022-05-01 20:50:09 -07:00
*/
float narrowToWideOxygen[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE];
/**
* Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)
RPM
2022-06-29 15:52:53 -07:00
* offset 5024
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE];
2022-05-01 20:50:09 -07:00
/**
* Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)
deg
2022-06-29 15:52:53 -07:00
* offset 5032
2022-05-01 20:50:09 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<int16_t, 100, 1> crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE];
2022-05-01 20:50:09 -07:00
/**
* CLT-based idle position for coasting (used in Auto-PID Idle mode)
C
2022-06-29 15:52:53 -07:00
* offset 5040
2022-05-01 20:50:09 -07:00
*/
float iacCoastingBins[CLT_CURVE_SIZE];
/**
* CLT-based idle position for coasting (used in Auto-PID Idle mode)
%
2022-06-29 15:52:53 -07:00
* offset 5104
2022-05-01 20:50:09 -07:00
*/
float iacCoasting[CLT_CURVE_SIZE];
2020-03-28 17:14:17 -07:00
/**
2022-06-29 15:52:53 -07:00
* offset 5168
2020-03-28 17:14:17 -07:00
*/
2020-04-19 18:42:00 -07:00
error_message_t warning_message;
2020-03-27 09:13:12 -07:00
/**
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 5288
2020-03-27 09:13:12 -07:00
*/
float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
Seconds
2022-06-29 15:52:53 -07:00
* offset 5320
2020-03-27 09:13:12 -07:00
*/
float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 5352
2020-03-27 09:13:12 -07:00
*/
float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
Seconds
2022-06-29 15:52:53 -07:00
* offset 5384
2020-03-27 09:13:12 -07:00
*/
float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE];
2020-01-31 11:23:15 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 5416
2020-01-31 11:23:15 -08:00
*/
2021-12-22 05:15:15 -08:00
scaled_channel<uint8_t, 2, 1> boostTableOpenLoop[BOOST_RPM_COUNT][BOOST_LOAD_COUNT];
2020-01-31 11:23:15 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 5480
2020-01-31 11:23:15 -08:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<uint8_t, 1, 100> boostRpmBins[BOOST_RPM_COUNT];
2020-01-31 11:23:15 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 5488
2020-01-31 11:23:15 -08:00
*/
2021-12-22 05:15:15 -08:00
scaled_channel<uint8_t, 1, 2> boostTableClosedLoop[BOOST_RPM_COUNT][BOOST_LOAD_COUNT];
2020-01-31 11:23:15 -08:00
/**
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 5552
2020-01-31 11:23:15 -08:00
*/
2021-12-22 05:15:15 -08:00
scaled_channel<uint8_t, 1, 1> boostTpsBins[BOOST_LOAD_COUNT];
2019-06-10 09:52:26 -07:00
/**
2021-11-05 19:01:07 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 5560
2019-06-10 09:52:26 -07:00
*/
2021-11-05 19:01:07 -07:00
uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE];
2019-06-10 09:52:26 -07:00
/**
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 5624
2019-06-10 09:52:26 -07:00
*/
uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE];
2019-06-10 09:52:26 -07:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 5632
2019-06-10 09:52:26 -07:00
*/
2022-06-29 15:52:53 -07:00
scaled_channel<uint8_t, 1, 100> pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE];
2018-11-29 21:17:55 -08:00
/**
* CLT-based cranking position multiplier for simple manual idle controller
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 5640
2018-11-29 21:17:55 -08:00
*/
float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE];
/**
* CLT-based cranking position multiplier for simple manual idle controller
2021-04-26 14:59:44 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 5672
2018-11-29 21:17:55 -08:00
*/
float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE];
/**
* Optional timing advance table for Idle (see useSeparateAdvanceForIdle)
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 5704
2018-11-29 21:17:55 -08:00
*/
2021-12-19 21:40:11 -08:00
scaled_channel<uint8_t, 1, 50> idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE];
2018-11-29 21:17:55 -08:00
/**
* Optional timing advance table for Idle (see useSeparateAdvanceForIdle)
2021-04-26 14:59:44 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 5712
2018-11-29 21:17:55 -08:00
*/
float idleAdvance[IDLE_ADVANCE_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 5744
2018-11-29 21:17:55 -08:00
*/
2022-01-20 11:14:41 -08:00
scaled_channel<uint8_t, 1, 10> idleVeRpmBins[IDLE_VE_SIZE];
/**
load
2022-06-29 15:52:53 -07:00
* offset 5748
2022-01-20 11:14:41 -08:00
*/
scaled_channel<uint8_t, 1, 1> idleVeLoadBins[IDLE_VE_SIZE];
2021-12-19 21:40:11 -08:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 5752
2018-11-29 21:17:55 -08:00
*/
2022-01-20 11:14:41 -08:00
scaled_channel<uint16_t, 10, 1> idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 5784
2018-11-29 21:17:55 -08:00
*/
2021-08-16 03:57:59 -07:00
lua_script_t luaScript;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 13784
2018-11-29 21:17:55 -08:00
*/
float cltFuelCorrBins[CLT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2022-06-29 15:52:53 -07:00
* offset 13848
2018-11-29 21:17:55 -08:00
*/
float cltFuelCorr[CLT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 13912
2018-11-29 21:17:55 -08:00
*/
float iatFuelCorrBins[IAT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2022-06-29 15:52:53 -07:00
* offset 13976
2018-11-29 21:17:55 -08:00
*/
float iatFuelCorr[IAT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2022-06-29 15:52:53 -07:00
* offset 14040
2018-11-29 21:17:55 -08:00
*/
float crankingFuelCoef[CRANKING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 14072
2018-11-29 21:17:55 -08:00
*/
float crankingFuelBins[CRANKING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2022-06-29 15:52:53 -07:00
* offset 14104
2018-11-29 21:17:55 -08:00
*/
float crankingCycleCoef[CRANKING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
counter
2022-06-29 15:52:53 -07:00
* offset 14136
2018-11-29 21:17:55 -08:00
*/
float crankingCycleBins[CRANKING_CURVE_SIZE];
/**
* CLT-based idle position multiplier for simple manual idle controller
2021-04-26 14:59:44 -07:00
C
2022-06-29 15:52:53 -07:00
* offset 14168
2018-11-29 21:17:55 -08:00
*/
float cltIdleCorrBins[CLT_CURVE_SIZE];
/**
2021-11-06 19:14:13 -07:00
* CLT-based idle position multiplier for simple manual idle controller
2021-04-26 14:59:44 -07:00
ratio
2022-06-29 15:52:53 -07:00
* offset 14232
2018-11-29 21:17:55 -08:00
*/
float cltIdleCorr[CLT_CURVE_SIZE];
/**
2020-04-26 18:41:03 -07:00
* Also known as MAF transfer function.
2018-11-29 21:17:55 -08:00
* kg/hour value.
* By the way 2.081989116 kg/h = 1 ft3/m
2021-04-26 14:59:44 -07:00
kg/hour
2022-06-29 15:52:53 -07:00
* offset 14296
2018-11-29 21:17:55 -08:00
*/
float mafDecoding[MAF_DECODING_COUNT];
/**
2021-04-26 14:59:44 -07:00
V
2022-06-29 15:52:53 -07:00
* offset 15320
2018-11-29 21:17:55 -08:00
*/
float mafDecodingBins[MAF_DECODING_COUNT];
/**
2021-11-05 19:01:07 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 16344
2018-11-29 21:17:55 -08:00
*/
2021-12-22 05:15:15 -08:00
scaled_channel<int16_t, 10, 1> ignitionIatCorrTable[IGN_RPM_COUNT][IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Temperature
2022-06-29 15:52:53 -07:00
* offset 16856
2018-11-29 21:17:55 -08:00
*/
float ignitionIatCorrLoadBins[IGN_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 16920
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t ignitionIatCorrRpmBins[IGN_RPM_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 16952
2018-11-29 21:17:55 -08:00
*/
2021-12-22 05:15:15 -08:00
int16_t injectionPhase[IGN_RPM_COUNT][IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Load
2022-06-29 15:52:53 -07:00
* offset 17464
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 17496
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t injPhaseRpmBins[FUEL_RPM_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
onoff
2022-06-29 15:52:53 -07:00
* offset 17528
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT];
2021-01-10 07:16:52 -08:00
/**
2021-11-05 19:01:07 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 17588
2021-01-10 07:16:52 -08:00
*/
2022-04-28 05:34:00 -07:00
scaled_channel<uint16_t, 100, 1> mapEstimateTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT];
2021-01-31 14:21:02 -08:00
/**
2021-04-26 14:59:44 -07:00
% TPS
2022-06-29 15:52:53 -07:00
* offset 18100
2021-01-31 14:21:02 -08:00
*/
2021-11-05 16:52:02 -07:00
scaled_channel<uint16_t, 100, 1> mapEstimateTpsBins[FUEL_LOAD_COUNT];
2021-01-31 14:21:02 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 18132
2021-01-31 14:21:02 -08:00
*/
uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 18164
2021-01-31 14:21:02 -08:00
*/
2021-11-14 07:53:06 -08:00
uint8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2022-06-29 15:52:53 -07:00
* offset 18228
2021-02-09 11:01:08 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 18244
2021-02-09 11:01:08 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 18260
2021-02-09 11:01:08 -08:00
*/
2021-11-14 07:53:06 -08:00
uint8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2022-06-29 15:52:53 -07:00
* offset 18324
2021-02-09 11:01:08 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 18340
2021-02-09 11:01:08 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-11-05 19:01:07 -07:00
deg
2022-06-29 15:52:53 -07:00
* offset 18356
2018-11-29 21:17:55 -08:00
*/
2021-12-22 05:15:15 -08:00
scaled_channel<int16_t, 10, 1> ignitionTable[IGN_RPM_COUNT][IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Load
2022-06-29 15:52:53 -07:00
* offset 18868
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t ignitionLoadBins[IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 18900
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t ignitionRpmBins[IGN_RPM_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
%
2022-06-29 15:52:53 -07:00
* offset 18932
2018-11-29 21:17:55 -08:00
*/
2021-12-22 05:15:15 -08:00
scaled_channel<uint16_t, 10, 1> veTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
kPa
2022-06-29 15:52:53 -07:00
* offset 19444
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t veLoadBins[FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 19476
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t veRpmBins[FUEL_RPM_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
lambda
2022-06-29 15:52:53 -07:00
* offset 19508
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
scaled_channel<uint8_t, 147, 1> lambdaTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 19764
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t lambdaLoadBins[FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 19796
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
uint16_t lambdaRpmBins[FUEL_RPM_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 19828
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
from
2022-06-29 15:52:53 -07:00
* offset 20084
2018-11-29 21:17:55 -08:00
*/
float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE];
/**
2021-04-26 14:59:44 -07:00
to
2022-06-29 15:52:53 -07:00
* offset 20116
2018-11-29 21:17:55 -08:00
*/
float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE];
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 20148
2018-11-29 21:17:55 -08:00
*/
2021-11-14 07:53:06 -08:00
float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2022-06-29 15:52:53 -07:00
* offset 20404
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable1LoadBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 20420
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable1RpmBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 20436
2018-11-29 21:17:55 -08:00
*/
2021-11-14 07:53:06 -08:00
uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2022-06-29 15:52:53 -07:00
* offset 20500
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable2LoadBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 20516
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable2RpmBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 20532
2018-11-29 21:17:55 -08:00
*/
2021-11-14 07:53:06 -08:00
uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2022-06-29 15:52:53 -07:00
* offset 20596
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable3LoadBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 20612
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable3RpmBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
value
2022-06-29 15:52:53 -07:00
* offset 20628
2018-11-29 21:17:55 -08:00
*/
2021-11-14 07:53:06 -08:00
uint8_t scriptTable4[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2022-06-29 15:52:53 -07:00
* offset 20692
2018-11-29 21:17:55 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable4LoadBins[SCRIPT_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2022-06-29 15:52:53 -07:00
* offset 20708
2021-12-20 19:04:18 -08:00
*/
2022-07-01 03:57:39 -07:00
int16_t scriptTable4RpmBins[SCRIPT_TABLE_8];
2021-12-20 19:04:18 -08:00
/**
2022-06-29 15:52:53 -07:00
* offset 20724
2021-12-20 19:04:18 -08:00
*/
uint16_t ignTrimLoadBins[TRIM_SIZE];
/**
rpm
2022-06-29 15:52:53 -07:00
* offset 20732
2021-12-20 19:04:18 -08:00
*/
uint16_t ignTrimRpmBins[TRIM_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 20740
2021-12-20 19:04:18 -08:00
*/
cyl_trim_s ignTrims[12];
/**
2022-06-29 15:52:53 -07:00
* offset 20932
2021-12-20 19:04:18 -08:00
*/
uint16_t fuelTrimLoadBins[TRIM_SIZE];
/**
rpm
2022-06-29 15:52:53 -07:00
* offset 20940
2021-12-20 19:04:18 -08:00
*/
uint16_t fuelTrimRpmBins[TRIM_SIZE];
/**
2022-06-29 15:52:53 -07:00
* offset 20948
2018-11-29 21:17:55 -08:00
*/
2021-12-20 19:04:18 -08:00
cyl_trim_s fuelTrims[12];
2022-02-01 18:45:00 -08:00
/**
ratio
2022-06-29 15:52:53 -07:00
* offset 21140
2022-02-01 18:45:00 -08:00
*/
2022-04-26 16:08:29 -07:00
scaled_channel<uint16_t, 100, 1> crankingFuelCoefE100[CRANKING_CURVE_SIZE];
2022-04-18 17:15:57 -07:00
/**
Airmass
2022-06-29 15:52:53 -07:00
* offset 21156
2022-04-18 17:15:57 -07:00
*/
2022-06-02 22:23:20 -07:00
scaled_channel<uint8_t, 50, 1> tcu_pcAirmassBins[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21164
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcValsR[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21172
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcValsN[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21180
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals1[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21188
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals2[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21196
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals3[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21204
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals4[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21212
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals12[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21220
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals23[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21228
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals34[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21236
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals21[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21244
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals32[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
%
2022-06-29 15:52:53 -07:00
* offset 21252
2022-04-18 17:15:57 -07:00
*/
2022-06-02 21:53:49 -07:00
uint8_t tcu_pcVals43[TCU_MAGIC_SIZE];
2022-04-18 17:15:57 -07:00
/**
TPS
2022-06-29 15:52:53 -07:00
* offset 21260
2022-04-18 17:15:57 -07:00
*/
uint8_t tcu_tccTpsBins[8];
/**
MPH
2022-06-29 15:52:53 -07:00
* offset 21268
2022-04-18 17:15:57 -07:00
*/
uint8_t tcu_tccLockSpeed[8];
/**
MPH
2022-06-29 15:52:53 -07:00
* offset 21276
2022-04-18 17:15:57 -07:00
*/
uint8_t tcu_tccUnlockSpeed[8];
2022-04-23 04:41:19 -07:00
/**
KPH
2022-06-29 15:52:53 -07:00
* offset 21284
2022-04-23 04:41:19 -07:00
*/
uint8_t tcu_32SpeedBins[8];
/**
%
2022-06-29 15:52:53 -07:00
* offset 21292
2022-04-23 04:41:19 -07:00
*/
uint8_t tcu_32Vals[8];
};
2022-06-29 15:52:53 -07:00
static_assert(sizeof(persistent_config_s) == 21300);
2018-11-29 21:17:55 -08:00
// end
2022-07-27 23:53:58 -07:00
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Thu Jul 28 06:53:47 UTC 2022