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

4559 lines
88 KiB
C
Raw Normal View History

2021-11-14 06:27:16 -08:00
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 14 14:25:49 UTC 2021
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-11-11 20:15:01 -08:00
int8_t maxAdd;
2020-04-13 06:23:13 -07:00
/**
2021-04-26 14:59:44 -07:00
%
2020-04-13 06:23:13 -07:00
* offset 1
*/
2021-11-11 20:15:01 -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
2020-04-13 06:23:13 -07:00
* offset 2
*/
2021-11-11 20:15:01 -08:00
uint16_t timeConstant;
2020-04-13 06:23:13 -07:00
/** total size 4*/
};
// 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-11-11 20:15:01 -08:00
uint8_t 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
2020-04-13 06:23:13 -07:00
* offset 1
*/
2021-11-11 20:15:01 -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
2020-04-13 06:23:13 -07:00
* offset 2
*/
2021-11-11 20:15:01 -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
%
2020-04-13 06:23:13 -07:00
* offset 3
*/
2021-11-11 20:15:01 -08:00
uint8_t deadband;
2020-04-13 06:23:13 -07:00
/**
* Below this temperature, correction is disabled.
2021-04-26 14:59:44 -07:00
C
2020-04-13 06:23:13 -07:00
* offset 4
*/
2021-11-11 20:15:01 -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
2020-04-13 06:23:13 -07:00
* offset 5
*/
2021-11-11 20:15:01 -08:00
uint8_t minAfr;
2020-04-13 06:23:13 -07:00
/**
* Above this AFR, correction is paused
2021-04-26 14:59:44 -07:00
afr
2020-04-13 06:23:13 -07:00
* offset 6
*/
2021-11-11 20:15:01 -08:00
uint8_t 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
2020-04-13 06:23:13 -07:00
* offset 7
*/
2021-11-11 20:15:01 -08:00
uint8_t startupDelay;
2020-04-13 06:23:13 -07:00
/**
* offset 8
*/
stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT];
/** total size 24*/
};
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-11-11 20:15:01 -08:00
float pFactor;
2017-03-27 19:19:58 -07:00
/**
* offset 4
*/
2021-11-11 20:15:01 -08:00
float iFactor;
2017-03-27 19:19:58 -07:00
/**
* offset 8
*/
2021-11-11 20:15:01 -08:00
float dFactor;
2017-03-27 19:19:58 -07:00
/**
* Linear addition to PID logic
* offset 12
*/
2021-11-11 20:15:01 -08:00
int16_t offset;
/**
* PID dTime
2021-04-26 14:59:44 -07:00
ms
* offset 14
*/
2021-11-11 20:15:01 -08:00
int16_t periodMs;
/**
2021-10-28 11:24:50 -07:00
* Output Min Duty Cycle
* offset 16
*/
2021-11-11 20:15:01 -08:00
int16_t minValue;
/**
2021-10-28 11:24:50 -07:00
* Output Max Duty Cycle
* offset 18
*/
2021-11-11 20:15:01 -08:00
int16_t maxValue;
/** total size 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-11-11 20:15:01 -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-11-11 20:15:01 -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];
/** total size 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
*/
brain_pin_e mosiPin;
/**
* offset 1
*/
brain_pin_e misoPin;
/**
* offset 2
*/
brain_pin_e sckPin;
/**
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
2019-04-04 18:34:33 -07:00
* offset 3
*/
2021-02-08 20:49:57 -08:00
uint8_t alignmentFill_at_3[1];
2019-04-04 18:34:33 -07:00
/** total size 4*/
};
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
%
2020-04-25 15:07:37 -07:00
* offset 1
*/
2021-11-11 20:15:01 -08:00
uint8_t dutyIfError;
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
2020-04-25 15:07:37 -07:00
* offset 2
*/
2021-11-11 20:15:01 -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
%
2020-04-25 15:07:37 -07:00
* offset 4
*/
2021-11-11 20:15:01 -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
%
2020-04-25 15:07:37 -07:00
* offset 5
*/
2021-11-11 20:15:01 -08:00
uint8_t offBelowDuty;
2020-04-25 15:07:37 -07:00
/**
* Selects the load axis to use for the table.
* offset 6
*/
gppwm_channel_e loadAxis;
/**
2021-04-26 14:59:44 -07:00
unit
2020-04-25 15:07:37 -07:00
* offset 7
*/
2021-11-11 20:15:01 -08:00
uint8_t alignmentFill_map;
2020-04-25 15:07:37 -07:00
/**
2021-04-26 14:59:44 -07:00
load
2020-04-25 15:07:37 -07:00
* offset 8
*/
uint8_t loadBins[GPPWM_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2020-04-25 15:07:37 -07:00
* offset 16
*/
uint8_t rpmBins[GPPWM_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
duty
2020-04-25 15:07:37 -07:00
* offset 24
*/
2021-11-05 19:01:07 -07:00
uint8_t table[GPPWM_RPM_COUNT][GPPWM_LOAD_COUNT];
2020-04-25 15:07:37 -07:00
/** total size 88*/
};
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-11-11 20:15:01 -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-11-11 20:15:01 -08:00
float highValue;
2017-03-27 19:19:58 -07:00
/**
* offset 8
*/
air_pressure_sensor_type_e type;
/**
* offset 12
*/
adc_channel_e hwChannel;
/**
2021-04-26 14:59:44 -07:00
unit
* offset 13
*/
2020-06-29 18:46:18 -07:00
uint8_t alignmentFill[3];
/** total size 16*/
};
/**
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;
/** total size 144*/
};
/**
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-11-11 20:15:01 -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-11-11 20:15:01 -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-11-11 20:15:01 -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-11-11 20:15:01 -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-11-11 20:15:01 -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-11-11 20:15:01 -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-11-11 20:15:01 -08:00
float bias_resistor;
/** total size 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;
/**
2021-04-26 14:59:44 -07:00
unit
* offset 1
*/
2020-06-29 18:46:18 -07:00
uint8_t alignmentFill[3];
/**
2021-04-26 14:59:44 -07:00
volts
* offset 4
*/
2021-11-11 20:15:01 -08:00
float v1;
/**
2021-04-26 14:59:44 -07:00
kPa
* offset 8
*/
2021-11-11 20:15:01 -08:00
float value1;
/**
2021-04-26 14:59:44 -07:00
volts
* offset 12
*/
2021-11-11 20:15:01 -08:00
float v2;
/**
2021-04-26 14:59:44 -07:00
kPa
* offset 16
*/
2021-11-11 20:15:01 -08:00
float value2;
/** total size 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];
/** total size 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-11-11 20:15:01 -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];
/** total size 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-11-11 20:15:01 -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-11-11 20:15:01 -08:00
uint32_t cylindersCount;
2017-03-27 19:19:58 -07:00
/**
* offset 8
*/
firing_order_e firingOrder;
/** total size 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;
/**
offset 4 bit 0 */
bool todoRemoveMeOneDay0 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 4 bit 1 */
bool todoRemoveMeOneDay1 : 1;
2017-03-27 19:19:58 -07:00
/**
* This option could be used if your second trigger channel is broken
offset 4 bit 2 */
bool useOnlyFirstChannel : 1;
/**
offset 4 bit 3 */
bool unusedBit_4_3 : 1;
/**
offset 4 bit 4 */
bool unusedBit_4_4 : 1;
/**
offset 4 bit 5 */
bool unusedBit_4_5 : 1;
/**
offset 4 bit 6 */
bool unusedBit_4_6 : 1;
/**
offset 4 bit 7 */
bool unusedBit_4_7 : 1;
/**
offset 4 bit 8 */
bool unusedBit_4_8 : 1;
/**
offset 4 bit 9 */
bool unusedBit_4_9 : 1;
/**
offset 4 bit 10 */
bool unusedBit_4_10 : 1;
/**
offset 4 bit 11 */
bool unusedBit_4_11 : 1;
/**
offset 4 bit 12 */
bool unusedBit_4_12 : 1;
/**
offset 4 bit 13 */
bool unusedBit_4_13 : 1;
/**
offset 4 bit 14 */
bool unusedBit_4_14 : 1;
/**
offset 4 bit 15 */
bool unusedBit_4_15 : 1;
/**
offset 4 bit 16 */
bool unusedBit_4_16 : 1;
/**
offset 4 bit 17 */
bool unusedBit_4_17 : 1;
/**
offset 4 bit 18 */
bool unusedBit_4_18 : 1;
/**
offset 4 bit 19 */
bool unusedBit_4_19 : 1;
/**
offset 4 bit 20 */
bool unusedBit_4_20 : 1;
/**
offset 4 bit 21 */
bool unusedBit_4_21 : 1;
/**
offset 4 bit 22 */
bool unusedBit_4_22 : 1;
/**
offset 4 bit 23 */
bool unusedBit_4_23 : 1;
/**
offset 4 bit 24 */
bool unusedBit_4_24 : 1;
/**
offset 4 bit 25 */
bool unusedBit_4_25 : 1;
/**
offset 4 bit 26 */
bool unusedBit_4_26 : 1;
/**
offset 4 bit 27 */
bool unusedBit_4_27 : 1;
/**
offset 4 bit 28 */
bool unusedBit_4_28 : 1;
/**
offset 4 bit 29 */
bool unusedBit_4_29 : 1;
/**
offset 4 bit 30 */
bool unusedBit_4_30 : 1;
/**
offset 4 bit 31 */
bool unusedBit_4_31 : 1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
number
2017-03-27 19:19:58 -07:00
* offset 8
*/
2021-11-11 20:15:01 -08:00
int customTotalToothCount;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
number
2017-03-27 19:19:58 -07:00
* offset 12
*/
2021-11-11 20:15:01 -08:00
int customSkippedToothCount;
/** total size 16*/
};
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;
/**
2021-04-26 14:59:44 -07:00
unit
* offset 1
*/
2020-06-29 18:46:18 -07:00
uint8_t alignmentFill_afr[3];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
volts
2017-03-27 19:19:58 -07:00
* offset 4
*/
2021-11-11 20:15:01 -08:00
float v1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
AFR
2017-03-27 19:19:58 -07:00
* offset 8
*/
2021-11-11 20:15:01 -08:00
float value1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
volts
2017-03-27 19:19:58 -07:00
* offset 12
*/
2021-11-11 20:15:01 -08:00
float v2;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
AFR
2017-03-27 19:19:58 -07:00
* offset 16
*/
2021-11-11 20:15:01 -08:00
float value2;
/** total size 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-11-11 20:15:01 -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
/**
* offset 5
2017-03-27 19:19:58 -07:00
*/
2020-07-03 12:10:58 -07:00
output_pin_e stepperDirectionPin;
2017-03-27 19:19:58 -07:00
/**
* offset 6
2017-03-27 19:19:58 -07:00
*/
2020-07-03 12:10:58 -07:00
output_pin_e stepperStepPin;
/**
* offset 7
*/
pin_output_mode_e solenoidPinMode;
/** total size 8*/
};
2020-11-16 16:45:34 -08:00
// start of dc_io
struct dc_io {
/**
* offset 0
*/
brain_pin_e directionPin1;
/**
* offset 1
*/
brain_pin_e directionPin2;
/**
2021-06-05 13:09:52 -07:00
* Acts as EN pin in two-wire mode
* offset 2
*/
2021-06-05 13:21:28 -07:00
brain_pin_e controlPin;
/**
* offset 3
*/
brain_pin_e disablePin;
/** total size 4*/
};
2021-07-28 04:49:04 -07:00
// start of vr_threshold_s
struct vr_threshold_s {
/**
* offset 0
*/
brain_pin_e pin;
/**
* offset 1
*/
uint8_t pad[3];
/**
rpm
* offset 4
*/
uint8_t rpmBins[6];
/**
volts
* offset 10
*/
uint8_t values[6];
/** total size 16*/
};
// 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;
/**
* Engine sniffer would be disabled above this rpm
* set engineSnifferRpmThreshold X
2021-04-26 14:59:44 -07:00
RPM
* offset 4
*/
2021-11-11 20:15:01 -08:00
int engineSnifferRpmThreshold;
2017-03-27 19:19:58 -07:00
/**
* offset 8
2017-03-27 19:19:58 -07: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?
offset 76 bit 0 */
2020-05-06 22:00:02 -07: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.
offset 76 bit 1 */
2021-04-05 12:58:54 -07:00
bool useFordRedundantTps : 1;
/**
offset 76 bit 2 */
bool isVerboseAuxPid1 : 1;
/**
offset 76 bit 3 */
2021-05-23 17:00:27 -07:00
bool overrideTriggerGaps : 1;
/**
2021-06-11 03:27:21 -07:00
* Turn on this fan when AC is on.
offset 76 bit 4 */
2021-06-11 03:27:21 -07:00
bool enableFan1WithAc : 1;
/**
2021-06-11 03:27:21 -07:00
* Turn on this fan when AC is on.
offset 76 bit 5 */
2021-06-11 03:27:21 -07:00
bool enableFan2WithAc : 1;
/**
2021-06-28 05:55:05 -07:00
* Inhibit operation of this fan while the engine is not running.
offset 76 bit 6 */
2021-06-28 05:55:05 -07:00
bool disableFan1WhenStopped : 1;
/**
2021-06-28 05:55:05 -07:00
* Inhibit operation of this fan while the engine is not running.
offset 76 bit 7 */
2021-06-28 05:55:05 -07: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).
offset 76 bit 8 */
2021-07-09 05:40:06 -07:00
bool enableTrailingSparks : 1;
/**
2020-04-08 19:12:33 -07:00
* enable cj125verbose/disable cj125verbose
offset 76 bit 9 */
2020-04-08 19:12:33 -07: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
offset 76 bit 10 */
bool cj125isUaDivided : 1;
/**
offset 76 bit 11 */
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.
offset 76 bit 12 */
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.
offset 76 bit 13 */
bool isDoubleSolenoidIdle : 1;
/**
offset 76 bit 14 */
bool showSdCardWarning : 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.
offset 76 bit 15 */
bool cj125isUrDivided : 1;
/**
2020-07-12 14:36:03 -07:00
* Switch between Industrial and Cic PID implementation
offset 76 bit 16 */
2020-07-12 14:36:03 -07:00
bool useCicPidForIdle : 1;
/**
offset 76 bit 17 */
bool useTLE8888_cranking_hack : 1;
/**
offset 76 bit 18 */
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).
offset 76 bit 19 */
2021-10-06 09:18:32 -07:00
bool useSeparateIdleTablesForCrankingTaper : 1;
/**
offset 76 bit 20 */
2020-02-02 09:23:55 -08:00
bool launchControlEnabled : 1;
/**
offset 76 bit 21 */
2020-02-02 09:23:55 -08:00
bool rollingLaunchEnabled : 1;
/**
offset 76 bit 22 */
2020-02-02 09:23:55 -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).
offset 76 bit 23 */
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
offset 76 bit 24 */
bool displayLogicLevelsInEngineSniffer : 1;
/**
offset 76 bit 25 */
2020-11-10 09:39:01 -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.
offset 76 bit 26 */
2021-01-31 14:21:02 -08:00
bool enableMapEstimationTableFallback : 1;
/**
offset 76 bit 27 */
2021-02-05 08:29:43 -08:00
bool useFSIOTableForCanSniffingFiltering : 1;
/**
offset 76 bit 28 */
bool issue_294_29 : 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.
offset 76 bit 29 */
2021-09-06 07:17:07 -07:00
bool artificialTestMisfire : 1;
/**
offset 76 bit 30 */
bool issue_294_31 : 1;
/**
offset 76 bit 31 */
bool unusedBit_34_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
* offset 80
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 82
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
%
* offset 84
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
%
* offset 86
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t tpsErrorDetectionTooHigh;
2017-03-27 19:19:58 -07:00
/**
* offset 88
2017-03-27 19:19:58 -07:00
*/
cranking_parameters_s cranking;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
*C
* offset 96
*/
2021-11-11 20:15:01 -08:00
float primingSquirtDurationMs;
/**
2021-06-13 05:01:23 -07:00
* Dwell duration while cranking
2021-04-26 14:59:44 -07:00
ms
* offset 100
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 104
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-06-16 05:54:10 -07:00
* offset 106
*/
2021-11-11 20:15:01 -08:00
uint16_t etbRevLimitRange;
2017-03-27 19:19:58 -07:00
/**
* @see isMapAveragingEnabled
* offset 108
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!
* offset 252
2017-03-27 19:19:58 -07:00
*/
ThermistorConf clt;
2017-03-27 19:19:58 -07:00
/**
* offset 284
2017-03-27 19:19:58 -07:00
*/
ThermistorConf iat;
2017-03-27 19:19:58 -07:00
/**
* A secondary Rev limit engaged by the driver to help launch the vehicle faster
2021-04-26 14:59:44 -07:00
rpm
* offset 316
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int launchRpm;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
deg
* offset 320
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 324
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 328
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float knockBandCustom;
2017-03-27 19:19:58 -07:00
/**
2020-07-28 06:12:43 -07:00
* On Single Coil or Wasted Spark setups you have to lower dwell at high RPM
2021-04-26 14:59:44 -07:00
RPM
* offset 332
2017-03-27 19:19:58 -07:00
*/
float sparkDwellRpmBins[DWELL_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
ms
* offset 364
2017-03-27 19:19:58 -07:00
*/
float sparkDwellValues[DWELL_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
* offset 396
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
* offset 408
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float cylinderBore;
/**
* Disable sensor sniffer above this rpm
2021-04-26 14:59:44 -07:00
RPM
* offset 412
*/
2021-11-11 20:15:01 -08:00
int sensorSnifferRpmThreshold;
/**
* set rpm_hard_limit X
2021-04-26 14:59:44 -07:00
rpm
* offset 416
*/
2021-11-11 20:15:01 -08:00
int rpmHardLimit;
/**
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.
* offset 420
*/
engine_load_mode_e fuelAlgorithm;
/**
* This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous".
* offset 424
*/
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
* offset 428
*/
injection_mode_e injectionMode;
/**
* this is about deciding when the injector starts it's squirt
* See also injectionPhase map
* todo: do we need even need this since we have the map anyway?
2021-04-26 14:59:44 -07:00
deg
* offset 432
*/
2021-11-11 20:15:01 -08:00
angle_t extraInjectionOffset;
/**
* 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
* offset 436
*/
2021-11-11 20:15:01 -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
* offset 440
*/
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
* offset 444
*/
2021-11-11 20:15:01 -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
2021-05-23 17:47:26 -07:00
* offset 445
*/
2021-11-11 20:15:01 -08:00
uint8_t maxIdleVss;
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
* offset 446
*/
2021-11-11 20:15:01 -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).
* offset 448
*/
timing_mode_e timingMode;
/**
* 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
* offset 452
*/
2021-11-11 20:15:01 -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
* offset 456
*/
2021-11-11 20:15:01 -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
* offset 460
*/
2021-11-11 20:15:01 -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
* offset 464
*/
2021-11-11 20:15:01 -08:00
float vbattDividerCoeff;
/**
* Cooling fan turn-on temperature threshold, in Celsius
2021-06-11 03:27:21 -07:00
deg C
* offset 468
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 472
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float fanOffTemperature;
2017-03-27 19:19:58 -07:00
/**
* This coefficient translates vehicle speed input frequency (in Hz) into vehicle speed, km/h
2021-04-26 14:59:44 -07:00
coef
* offset 476
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float vehicleSpeedCoef;
2017-03-27 19:19:58 -07:00
/**
* set can_mode X
* offset 480
2017-03-27 19:19:58 -07:00
*/
can_nbc_e canNbcType;
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
* offset 484
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int canSleepPeriodMs;
2017-03-27 19:19:58 -07:00
/**
* 'Some triggers could be mounted differently. Most well-known triggers imply specific sensor setup. 4 stroke with symmetrical crank' is a pretty special case for example on Miata NB2
* See engineCycle
* set operation_mode X
* offset 488
2017-03-27 19:19:58 -07:00
*/
operation_mode_e ambiguousOperationMode;
2017-03-27 19:19:58 -07:00
/**
* offset 492
2017-03-27 19:19:58 -07:00
*/
display_mode_e displayMode;
2017-03-27 19:19:58 -07:00
/**
* offset 496
2017-03-27 19:19:58 -07:00
*/
log_format_e logFormat;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
index
* offset 500
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int byFirmwareVersion;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
index
* offset 504
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int HD44780width;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
index
* offset 508
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 512
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.
* offset 513
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.
* offset 514
*/
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
* offset 515
*/
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
* offset 516
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 520
2019-12-02 14:49:01 -08:00
*/
2021-11-11 20:15:01 -08:00
int trailingSparkAngle;
2017-03-27 19:19:58 -07:00
/**
* offset 524
2017-03-27 19:19:58 -07:00
*/
trigger_config_s trigger;
2017-03-27 19:19:58 -07:00
/**
* offset 540
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
* offset 541
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t failedMapFallback;
2017-03-27 19:19:58 -07:00
/**
2021-05-30 04:06:46 -07:00
* Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost.
%
* offset 542
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t boostControlSafeDutyCycle;
2017-03-27 19:19:58 -07:00
/**
* offset 543
*/
adc_channel_e mafAdcChannel;
/**
* set global_fuel_correction X
2021-04-26 14:59:44 -07:00
coef
* offset 544
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float globalFuelCorrection;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
volts
* offset 548
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float adcVcc;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
Deg
* offset 552
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float unused552;
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.
* offset 556
2017-03-27 19:19:58 -07:00
*/
brain_input_pin_e camInputs[CAM_INPUTS_COUNT];
2021-02-08 21:26:52 -08:00
/**
* offset 560
*/
uint8_t camInputsPadding[CAM_INPUTS_COUNT_padding];
2017-03-27 19:19:58 -07:00
/**
* offset 560
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
* offset 580
2017-03-27 19:19:58 -07:00
*/
adc_channel_e throttlePedalPositionAdcChannel;
2017-03-27 19:19:58 -07:00
/**
* offset 581
2017-03-27 19:19:58 -07:00
*/
brain_pin_e tle6240_cs;
2017-03-27 19:19:58 -07:00
/**
* offset 582
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e tle6240_csPinMode;
2019-07-21 14:06:16 -07:00
/**
* Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata
* offset 583
2019-07-21 14:06:16 -07:00
*/
switch_input_pin_e throttlePedalUpPin;
2017-03-27 19:19:58 -07:00
/**
* @see hasBaroSensor
* offset 584
2017-03-27 19:19:58 -07:00
*/
air_pressure_sensor_config_s baroSensor;
2017-03-27 19:19:58 -07:00
/**
* offset 600
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
%
* offset 608
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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.
%
* offset 612
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t knockRetardAggression;
2021-10-22 13:03:15 -07:00
/**
* After a knock event, reapply timing at this rate.
deg/s
* offset 613
*/
2021-11-11 20:15:01 -08:00
uint8_t knockRetardReapplyRate;
2021-10-22 13:03:15 -07:00
/**
* Maximum amount of knock retard.
deg
* offset 614
*/
2021-11-11 20:15:01 -08:00
uint8_t knockRetardMaximum;
2021-10-22 13:03:15 -07:00
/**
* offset 615
*/
2021-11-11 20:15:01 -08:00
uint8_t unused615;
2017-03-27 19:19:58 -07:00
/**
* offset 616
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float unused616;
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
* offset 620
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int triggerSimulatorFrequency;
2017-03-27 19:19:58 -07:00
/**
* offset 624
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
/**
* offset 636
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
/**
* offset 648
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e injectionPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 649
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e ignitionPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 650
2017-03-27 19:19:58 -07:00
*/
brain_pin_e HD44780_rs;
2017-03-27 19:19:58 -07:00
/**
* offset 651
2017-03-27 19:19:58 -07:00
*/
brain_pin_e HD44780_e;
2017-03-27 19:19:58 -07:00
/**
* offset 652
2017-03-27 19:19:58 -07:00
*/
brain_pin_e HD44780_db4;
2017-03-27 19:19:58 -07:00
/**
* offset 653
2017-03-27 19:19:58 -07:00
*/
brain_pin_e HD44780_db5;
2017-03-27 19:19:58 -07:00
/**
* offset 654
2017-03-27 19:19:58 -07:00
*/
brain_pin_e HD44780_db6;
2017-03-27 19:19:58 -07:00
/**
* offset 655
2017-03-27 19:19:58 -07:00
*/
brain_pin_e HD44780_db7;
/**
* offset 656
*/
brain_pin_e gps_rx_pin;
/**
* offset 657
*/
brain_pin_e gps_tx_pin;
2017-03-27 19:19:58 -07:00
/**
* offset 658
2017-03-27 19:19:58 -07:00
*/
output_pin_e fuelPumpPin;
2017-03-27 19:19:58 -07:00
/**
* offset 659
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e fuelPumpPinMode;
/**
* Check engine light, also malfunction indicator light. Always blinks once on boot.
* offset 660
*/
output_pin_e malfunctionIndicatorPin;
2019-09-20 17:18:22 -07:00
/**
* offset 661
2019-09-20 17:18:22 -07:00
*/
pin_output_mode_e malfunctionIndicatorPinMode;
/**
* offset 662
*/
pin_output_mode_e fanPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 663
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
* offset 664
2019-11-24 21:59:05 -08:00
*/
switch_input_pin_e clutchDownPin;
2019-11-24 22:01:00 -08:00
/**
* offset 665
2019-11-24 22:01:00 -08:00
*/
output_pin_e alternatorControlPin;
2017-03-27 19:19:58 -07:00
/**
* offset 666
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e alternatorControlPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 667
2017-03-27 19:19:58 -07:00
*/
pin_input_mode_e clutchDownPinMode;
2017-05-27 20:43:48 -07:00
/**
* offset 668
2017-05-27 20:43:48 -07:00
*/
brain_pin_e digitalPotentiometerChipSelect[DIGIPOT_COUNT];
2017-03-27 19:19:58 -07:00
/**
* offset 672
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e electronicThrottlePin1Mode;
2017-03-27 19:19:58 -07:00
/**
* set_cj125_heater_pin XXX
* offset 673
2017-03-27 19:19:58 -07:00
*/
brain_pin_e wboHeaterPin;
2017-03-27 19:19:58 -07:00
/**
* set_cj125_cs_pin XXX
* offset 674
2017-03-27 19:19:58 -07:00
*/
brain_pin_e cj125CsPin;
2017-03-27 19:19:58 -07:00
/**
* offset 675
2017-03-27 19:19:58 -07:00
*/
spi_device_e max31855spiDevice;
2017-03-27 19:19:58 -07:00
/**
* offset 676
2017-03-27 19:19:58 -07:00
*/
brain_pin_e debugTriggerSync;
2017-03-27 19:19:58 -07:00
/**
* Digital Potentiometer is used by stock ECU stimulation code
* offset 677
2017-03-27 19:19:58 -07:00
*/
spi_device_e digitalPotentiometerSpiDevice;
2017-03-27 19:19:58 -07:00
/**
* offset 678
2017-03-27 19:19:58 -07:00
*/
brain_pin_e mc33972_cs;
2017-03-27 19:19:58 -07:00
/**
* offset 679
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
* offset 680
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.
* offset 681
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.
* offset 682
*/
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
2020-01-10 22:08:41 -08:00
* offset 683
*/
adc_channel_e throttlePedalPositionSecondAdcChannel;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
%
* offset 684
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
* offset 692
2017-03-27 19:19:58 -07:00
*/
ego_sensor_e afr_type;
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
* offset 696
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float idle_antiwindupFreq;
2017-03-27 19:19:58 -07:00
/**
* offset 700
2017-03-27 19:19:58 -07:00
*/
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT];
2017-03-27 19:19:58 -07:00
/**
* offset 703
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e hip9011CsPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 704
2017-03-27 19:19:58 -07:00
*/
output_pin_e tachOutputPin;
2017-03-27 19:19:58 -07:00
/**
* offset 705
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e tachOutputPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 706
2017-03-27 19:19:58 -07:00
*/
output_pin_e mainRelayPin;
2017-03-27 19:19:58 -07:00
/**
* offset 707
2017-03-27 19:19:58 -07:00
*/
brain_pin_e sdCardCsPin;
2017-03-27 19:19:58 -07:00
/**
2020-03-31 13:49:19 -07:00
* set_can_tx_pin X
* offset 708
2017-03-27 19:19:58 -07:00
*/
brain_pin_e canTxPin;
2017-03-27 19:19:58 -07:00
/**
2020-03-31 13:49:19 -07:00
* set_can_rx_pin X
* offset 709
2017-03-27 19:19:58 -07:00
*/
brain_pin_e canRxPin;
2017-03-27 19:19:58 -07:00
/**
* offset 710
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
%
* offset 711
*/
2021-11-11 20:15:01 -08:00
uint8_t acIdleExtraOffset;
2017-03-27 19:19:58 -07:00
/**
2020-08-05 04:59:46 -07:00
* CANbus thread period, ms
2021-04-26 14:59:44 -07:00
ms
* offset 712
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int can2SleepPeriodMs;
/**
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
* offset 716
*/
2021-11-11 20:15:01 -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
2020-09-18 00:05:55 -07:00
* offset 718
*/
2021-11-11 20:15:01 -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
* offset 720
*/
2021-11-11 20:15:01 -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
2020-09-18 00:05:55 -07:00
* offset 722
*/
2021-11-11 20:15:01 -08:00
uint16_t idlePositionMax;
/**
* offset 724
*/
2021-11-05 20:28:22 -07:00
uint16_t unusedExHpfp[2];
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
* offset 728
*/
2021-11-11 20:15:01 -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
* offset 732
*/
2021-11-11 20:15:01 -08:00
float compressionRatio;
2017-03-27 19:19:58 -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.
* offset 736
*/
brain_pin_e triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT];
2017-03-27 19:19:58 -07:00
/**
* offset 739
*/
pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT];
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
* offset 742
*/
output_pin_e o2heaterPin;
2017-03-27 19:19:58 -07:00
/**
* offset 743
*/
pin_output_mode_e o2heaterPinModeTodO;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 0 */
bool is_enabled_spi_1 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 1 */
bool is_enabled_spi_2 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 2 */
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
offset 744 bit 3 */
bool isSdCardEnabled : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 4 */
2020-09-29 03:36:50 -07:00
bool unused744b4 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 5 */
bool isEngineControlEnabled : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 6 */
bool isHip9011Enabled : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 7 */
bool isVerboseAlternator : 1;
/**
offset 744 bit 8 */
bool useSerialPort : 1;
/**
* This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed.
offset 744 bit 9 */
bool useStepperIdle : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 10 */
bool enabledStep1Limiter : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 11 */
bool useTpicAdvancedMode : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 12 */
bool useLcdScreen : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 13 */
2020-02-26 22:11:44 -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
offset 744 bit 14 */
2020-03-19 06:22:16 -07: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.
offset 744 bit 15 */
bool onOffAlternatorLogic : 1;
2017-03-27 19:19:58 -07:00
/**
2020-04-08 18:43:05 -07:00
* enable cj125/disable cj125
offset 744 bit 16 */
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
offset 744 bit 17 */
bool vvtCamSensorUseRise : 1;
2017-03-27 19:19:58 -07:00
/**
* Useful for individual intakes
offset 744 bit 18 */
bool measureMapOnlyInOneCylinder : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 19 */
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.
offset 744 bit 20 */
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.
offset 744 bit 21 */
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.
offset 744 bit 22 */
bool useIacTableForCoasting : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 23 */
bool useNoiselessTriggerDecoder : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 24 */
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.
offset 744 bit 25 */
2021-02-05 15:21:55 -08:00
bool disableEtbWhenEngineStopped : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 26 */
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.
offset 744 bit 27 */
bool pauseEtbControl : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 28 */
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.
offset 744 bit 29 */
bool useETBforIdleControl : 1;
2017-03-27 19:19:58 -07:00
/**
offset 744 bit 30 */
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
offset 744 bit 31 */
bool enableAemXSeries : 1;
2017-03-27 19:19:58 -07:00
/**
* offset 748
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
/**
* offset 752
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e mainRelayPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 753
2017-03-27 19:19:58 -07:00
*/
brain_pin_e hip9011CsPin;
2017-03-27 19:19:58 -07:00
/**
* offset 754
2017-03-27 19:19:58 -07:00
*/
brain_pin_e hip9011IntHoldPin;
2017-03-27 19:19:58 -07:00
/**
* offset 755
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e hip9011IntHoldPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 756
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint32_t verboseCanBaseAddress;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
v
* offset 760
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2020-04-15 18:28:44 -07:00
* offset 761
*/
2021-11-11 20:15:01 -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
2020-07-07 19:20:59 -07:00
* offset 762
*/
2020-09-05 20:38:02 -07:00
output_pin_e acFanPin;
/**
* offset 763
*/
pin_output_mode_e acFanPinMode;
2017-03-27 19:19:58 -07:00
/**
2021-11-14 06:27:16 -08:00
volts
* offset 764
2017-03-27 19:19:58 -07:00
*/
2021-11-14 06:27:16 -08:00
uint8_t unused11[6];
2021-08-15 12:38:17 -07:00
/**
2021-09-15 05:21:12 -07:00
volts
2021-08-15 12:38:17 -07:00
* offset 770
*/
2021-09-15 05:21:12 -07:00
uint8_t dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE];
/**
* offset 778
*/
2021-09-30 12:23:44 -07:00
imu_type_e imuType;
/**
* offset 779
*/
2021-11-14 06:27:16 -08:00
uint8_t unusedpinModesWhereHere[7];
2021-08-15 12:38:17 -07:00
/**
2021-09-15 05:21:12 -07:00
multiplier
2021-08-15 12:38:17 -07:00
* offset 786
*/
2021-09-15 05:21:12 -07:00
uint8_t dwellVoltageCorrValues[DWELL_CURVE_SIZE];
/**
* offset 794
*/
uint8_t unusedOutputWhereHere[2];
2017-03-27 19:19:58 -07:00
/**
* offset 796
2017-03-27 19:19:58 -07:00
*/
brain_pin_e max31855_cs[EGT_CHANNEL_COUNT];
2017-03-27 19:19:58 -07:00
/**
* SD card logging period, in milliseconds
2021-04-26 14:59:44 -07:00
ms
* offset 804
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t sdCardPeriodMs;
2017-03-27 19:19:58 -07:00
/**
* offset 806
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
/**
* offset 807
2017-03-27 19:19:58 -07:00
*/
brain_pin_e debugMapAveraging;
2017-03-27 19:19:58 -07:00
/**
* offset 808
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
* offset 809
2017-03-27 19:19:58 -07:00
*/
2020-09-27 04:38:53 -07:00
pin_output_mode_e starterRelayDisablePinMode;
2017-03-27 19:19:58 -07:00
/**
* Some Subaru and some Mazda use double-solenoid idle air valve
* offset 810
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
* offset 811
*/
2020-03-20 17:45:35 -07:00
switch_input_pin_e startStopButtonPin;
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
* offset 812
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int mapMinBufferLength;
2017-03-27 19:19:58 -07:00
/**
2020-12-30 05:37:55 -08:00
* Below this throttle position, the engine is considered idling.
2021-04-26 14:59:44 -07:00
%
* offset 816
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t idlePidDeactivationTpsThreshold;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
%
* offset 818
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t stepperParkingExtraSteps;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
* offset 820
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t tps1SecondaryMin;
2020-05-10 07:11:51 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
2020-05-10 07:11:51 -07:00
* offset 822
*/
2021-11-11 20:15:01 -08:00
uint16_t tps1SecondaryMax;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
rpm
* offset 824
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 826
*/
2021-11-11 20:15:01 -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
* offset 828
2017-03-27 19:19:58 -07:00
*/
brain_pin_e triggerErrorPin;
2017-03-27 19:19:58 -07:00
/**
* offset 829
2017-03-27 19:19:58 -07:00
*/
pin_output_mode_e triggerErrorPinMode;
2017-03-27 19:19:58 -07:00
/**
* offset 830
*/
output_pin_e acRelayPin;
/**
* offset 831
*/
pin_output_mode_e acRelayPinMode;
/**
* offset 832
*/
2021-11-14 06:27:16 -08:00
int16_t unusedOutputFreqWhereHere[16];
/**
* offset 864
2017-03-27 19:19:58 -07:00
*/
2021-11-13 19:54:30 -08:00
fsio_setting_t scriptSetting[SCRIPT_SETTING_COUNT];
2021-08-15 12:38:17 -07:00
/**
2021-11-13 19:54:30 -08:00
* offset 896
2021-08-15 12:38:17 -07:00
*/
2021-11-13 19:54:30 -08:00
int unusedSettings[8];
2017-03-27 19:19:58 -07:00
/**
* offset 928
2017-03-27 19:19:58 -07:00
*/
brain_pin_e spi1mosiPin;
2017-03-27 19:19:58 -07:00
/**
* offset 929
2017-03-27 19:19:58 -07:00
*/
brain_pin_e spi1misoPin;
2017-03-27 19:19:58 -07:00
/**
* offset 930
2017-03-27 19:19:58 -07:00
*/
brain_pin_e spi1sckPin;
2019-04-14 15:12:15 -07:00
/**
* offset 931
2019-04-14 15:12:15 -07:00
*/
brain_pin_e spi2mosiPin;
2019-05-25 12:35:25 -07:00
/**
* offset 932
2019-05-25 12:35:25 -07:00
*/
brain_pin_e spi2misoPin;
2019-05-25 12:35:25 -07:00
/**
* offset 933
2019-05-25 12:35:25 -07:00
*/
brain_pin_e spi2sckPin;
2017-03-27 19:19:58 -07:00
/**
* offset 934
2017-03-27 19:19:58 -07:00
*/
brain_pin_e spi3mosiPin;
2017-03-27 19:19:58 -07:00
/**
* offset 935
2017-03-27 19:19:58 -07:00
*/
brain_pin_e spi3misoPin;
2017-03-27 19:19:58 -07:00
/**
* offset 936
2017-03-27 19:19:58 -07:00
*/
brain_pin_e spi3sckPin;
2017-03-27 19:19:58 -07:00
/**
* Saab Combustion Detection Module knock signal input pin
* also known as Saab Ion Sensing Module
* offset 937
2017-03-27 19:19:58 -07:00
*/
brain_pin_e cdmInputPin;
/**
* offset 938
2017-03-27 19:19:58 -07:00
*/
brain_pin_e joystickCenterPin;
2017-03-27 19:19:58 -07:00
/**
* offset 939
2017-03-27 19:19:58 -07:00
*/
brain_pin_e joystickAPin;
/**
* offset 940
*/
brain_pin_e joystickBPin;
/**
* offset 941
*/
brain_pin_e joystickCPin;
/**
* offset 942
*/
brain_pin_e joystickDPin;
2017-03-27 19:19:58 -07:00
/**
* offset 943
2017-03-27 19:19:58 -07:00
*/
uart_device_e consoleUartDevice;
2017-03-27 19:19:58 -07:00
/**
* rusEfi console Sensor Sniffer mode
* offset 944
2017-03-27 19:19:58 -07:00
*/
sensor_chart_e sensorChartMode;
/**
* offset 948
*/
maf_sensor_type_e mafSensorType;
/**
* offset 952
*/
2021-11-14 06:27:16 -08:00
uint8_t unusedDigital[16];
/**
* offset 968
*/
brain_input_pin_e vehicleSpeedSensorInputPin;
/**
* Some vehicles have a switch to indicate that clutch pedal is all the way up
* offset 969
*/
switch_input_pin_e clutchUpPin;
/**
* offset 970
*/
2021-11-11 20:15:01 -08:00
uint8_t unused970;
/**
* offset 971
*/
pin_input_mode_e clutchUpPinMode;
/**
2021-03-28 05:41:23 -07:00
* Disable multispark above this engine speed.
2021-04-26 14:59:44 -07:00
rpm
* offset 972
*/
2021-11-11 20:15:01 -08:00
uint16_t multisparkMaxRpm;
2020-03-14 06:18:25 -07:00
/**
2021-03-28 05:41:23 -07: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.
2021-04-26 14:59:44 -07:00
deg
2020-03-14 06:18:25 -07:00
* offset 974
*/
2021-11-11 20:15:01 -08:00
uint8_t multisparkMaxSparkingAngle;
2020-03-14 06:18:25 -07:00
/**
2021-03-28 05:41:23 -07:00
* Configures the maximum number of extra sparks to fire (does not include main spark)
2021-04-26 14:59:44 -07:00
count
2020-03-14 06:18:25 -07:00
* offset 975
*/
2021-11-11 20:15:01 -08:00
uint8_t multisparkMaxExtraSparkCount;
/**
offset 976 bit 0 */
2021-07-24 16:25:25 -07:00
bool clutchUpPinInverted : 1;
/**
offset 976 bit 1 */
2021-07-24 16:25:25 -07:00
bool clutchDownPinInverted : 1;
/**
* If enabled we use two H-bridges to drive stepper idle air valve
offset 976 bit 2 */
2021-09-26 14:56:36 -07:00
bool useHbridgesToDriveIdleStepper : 1;
/**
offset 976 bit 3 */
2020-03-14 06:18:25 -07:00
bool multisparkEnable : 1;
/**
offset 976 bit 4 */
bool enableLaunchRetard : 1;
/**
offset 976 bit 5 */
bool enableLaunchBoost : 1;
/**
offset 976 bit 6 */
bool launchDisableBySpeed : 1;
/**
2021-08-09 13:12:40 -07:00
* Read VSS from OEM CAN bus according to selected CAN vehicle configuration.
offset 976 bit 7 */
2020-04-19 15:32:24 -07:00
bool enableCanVss : 1;
/**
offset 976 bit 8 */
2020-04-19 15:32:24 -07:00
bool enableInnovateLC2 : 1;
/**
offset 976 bit 9 */
2020-04-22 16:51:37 -07: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.
offset 976 bit 10 */
bool stftIgnoreErrorMagnitude : 1;
/**
offset 976 bit 11 */
2020-09-28 13:34:48 -07:00
bool unused976b11 : 1;
/**
offset 976 bit 12 */
2020-08-28 18:15:45 -07:00
bool enableSoftwareKnock : 1;
/**
2020-08-29 14:03:44 -07:00
* enable vvt_details
offset 976 bit 13 */
2020-08-29 14:03:44 -07:00
bool verboseVVTDecoding : 1;
/**
2020-08-29 15:00:40 -07:00
* get invertCamVVTSignal
offset 976 bit 14 */
2020-08-29 15:00:40 -07: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
offset 976 bit 15 */
2020-08-30 11:29:40 -07:00
bool consumeObdSensors : 1;
/**
offset 976 bit 16 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl1 : 1;
/**
offset 976 bit 17 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl2 : 1;
/**
offset 976 bit 18 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl3 : 1;
/**
offset 976 bit 19 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl4 : 1;
/**
offset 976 bit 20 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl5 : 1;
/**
offset 976 bit 21 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl6 : 1;
/**
offset 976 bit 22 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl7 : 1;
/**
offset 976 bit 23 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl8 : 1;
/**
offset 976 bit 24 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl9 : 1;
/**
offset 976 bit 25 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl10 : 1;
/**
offset 976 bit 26 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl11 : 1;
/**
offset 976 bit 27 */
2020-09-02 04:22:59 -07:00
bool knockBankCyl12 : 1;
/**
offset 976 bit 28 */
2020-09-02 12:34:30 -07:00
bool tcuEnabled : 1;
/**
offset 976 bit 29 */
2021-06-12 11:07:43 -07:00
bool unusedBit_251_29 : 1;
/**
offset 976 bit 30 */
2021-11-14 06:27:16 -08:00
bool unusedBit_298_30 : 1;
/**
offset 976 bit 31 */
2021-11-14 06:27:16 -08:00
bool unusedBit_298_31 : 1;
/**
* offset 980
*/
2020-11-16 16:45:34 -08:00
dc_io etbIo[ETB_COUNT];
/**
2020-09-05 20:38:02 -07:00
* Wastegate control Solenoid
* offset 988
*/
2020-01-31 11:23:15 -08:00
output_pin_e boostControlPin;
/**
* offset 989
*/
pin_output_mode_e boostControlPinMode;
/**
* offset 990
*/
2020-02-02 10:18:41 -08:00
switch_input_pin_e antiLagActivatePin;
/**
* offset 991
*/
switch_input_pin_e launchActivatePin;
2020-01-31 11:23:15 -08:00
/**
* offset 992
*/
pid_s boostPid;
/**
* offset 1012
*/
boostType_e boostType;
/**
2021-04-26 14:59:44 -07:00
Hz
2020-01-31 11:23:15 -08:00
* offset 1016
*/
2021-11-11 20:15:01 -08:00
int boostPwmFrequency;
2020-01-31 11:23:15 -08:00
/**
* offset 1020
*/
2020-02-02 09:23:55 -08:00
launchActivationMode_e launchActivationMode;
/**
* offset 1024
*/
antiLagActivationMode_e antiLagActivationMode;
/**
* Disabled above this speed
2021-04-26 14:59:44 -07:00
Kph
2020-02-02 10:18:41 -08:00
* offset 1028
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int launchSpeedTreshold;
2020-02-02 09:23:55 -08:00
/**
* Disabled below this rpm
2021-04-26 14:59:44 -07:00
RPM
2020-02-02 10:18:41 -08:00
* offset 1032
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int launchRpmTreshold;
2020-02-02 09:23:55 -08:00
/**
* Range from Launch Rpm for Timing Retard to activate
2021-04-26 14:59:44 -07:00
RPM
2020-02-02 10:18:41 -08:00
* offset 1036
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int launchTimingRpmRange;
2020-02-02 09:23:55 -08:00
/**
* Extra Fuel Added
2021-04-26 14:59:44 -07:00
%
2020-02-02 10:18:41 -08:00
* offset 1040
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -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
%
2020-02-02 10:18:41 -08:00
* offset 1044
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int launchBoostDuty;
2020-02-02 09:23:55 -08:00
/**
* RPM Range for Hard Cut
2021-04-26 14:59:44 -07:00
rpm
2020-02-02 10:18:41 -08:00
* offset 1048
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int hardCutRpmRange;
2020-02-02 09:23:55 -08:00
/**
2021-04-26 14:59:44 -07:00
rpm
2020-02-02 10:18:41 -08:00
* offset 1052
2020-02-02 09:23:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int launchAdvanceRpmRange;
/**
2021-04-26 14:59:44 -07:00
rpm
* offset 1056
*/
2021-11-11 20:15:01 -08:00
int launchTpsTreshold;
/**
2021-04-26 14:59:44 -07:00
rpm
* offset 1060
*/
2021-11-11 20:15:01 -08:00
float launchActivateDelay;
/**
* offset 1064
*/
2020-04-13 06:23:13 -07:00
stft_s stft;
/**
* offset 1088
*/
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
2020-05-02 15:38:22 -07:00
* offset 1096
*/
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
2020-05-05 12:37:44 -07:00
* offset 1128
*/
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
2020-05-06 11:00:08 -07:00
* offset 1160
*/
2020-05-07 10:46:18 -07:00
vehicle_info_t vehicleName;
/**
* offset 1192
*/
2020-05-19 22:18:23 -07:00
output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT];
2020-09-15 01:35:57 -07:00
/**
* offset 1198
*/
2020-10-08 11:14:09 -07:00
etb_function_e etbFunctions[ETB_COUNT];
2020-05-19 22:18:23 -07:00
/**
* offset 1200
*/
2020-09-07 07:49:54 -07:00
spi_device_e drv8860spiDevice;
/**
* offset 1201
*/
brain_pin_e drv8860_cs;
/**
* offset 1202
*/
pin_output_mode_e drv8860_csPinMode;
/**
* offset 1203
*/
brain_pin_e drv8860_miso;
/**
2021-04-26 14:59:44 -07:00
volt
2020-09-07 07:49:54 -07:00
* offset 1204
*/
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
/**
* offset 1220
*/
2021-05-20 16:10:25 -07:00
output_pin_e luaOutputPins[LUA_PWM_COUNT];
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
2021-06-12 04:28:45 -07:00
* offset 1228
2021-06-11 21:19:09 -07:00
*/
2021-07-03 08:33:11 -07:00
float vvtOffsets[CAM_INPUTS_COUNT];
/**
* offset 1244
*/
float vvtOffsetsPadding[CAM_INPUTS_COUNT_padding];
/**
* offset 1244
*/
2021-09-13 08:19:35 -07:00
vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT];
2021-07-28 04:49:04 -07:00
/**
* offset 1276
*/
2021-09-26 20:24:16 -07:00
gppwm_note_t gpPwmNote[GPPWM_CHANNELS];
/**
units
* offset 1340
*/
int unusedAtOldBoardConfigurationEnd[29];
2020-11-25 10:21:44 -08:00
/**
2021-04-26 14:59:44 -07:00
kg
2020-11-25 10:21:44 -08:00
* offset 1456
*/
2021-11-11 20:15:01 -08:00
uint16_t vehicleWeight;
2020-11-25 10:21:44 -08:00
/**
* offset 1458
*/
2021-02-07 05:48:13 -08:00
brain_pin_e lps25BaroSensorScl;
/**
* offset 1459
*/
brain_pin_e lps25BaroSensorSda;
2020-05-10 07:11:51 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
2020-05-10 07:11:51 -07:00
* offset 1460
*/
2021-11-11 20:15:01 -08:00
uint16_t tps2SecondaryMin;
2020-05-10 07:11:51 -07:00
/**
2021-04-26 14:59:44 -07:00
ADC
2020-05-10 07:11:51 -07:00
* offset 1462
*/
2021-11-11 20:15:01 -08:00
uint16_t tps2SecondaryMax;
/**
offset 1464 bit 0 */
2021-06-13 05:01:23 -07:00
bool unused1464b0 : 1;
2017-03-27 19:19:58 -07:00
/**
* Enables lambda sensor closed loop feedback for fuelling.
offset 1464 bit 1 */
2017-03-27 19:19:58 -07:00
bool fuelClosedLoopCorrectionEnabled : 1;
/**
2018-06-15 17:45:06 -07:00
* Print details into rusEfi console
2020-11-29 21:14:11 -08:00
* enable verbose_idle
offset 1464 bit 2 */
2017-05-16 19:13:40 -07:00
bool isVerboseIAC : 1;
2017-03-27 19:19:58 -07:00
/**
* Prints ETB details to rusEFI console
offset 1464 bit 3 */
2017-05-24 21:38:37 -07:00
bool isVerboseETB : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1464 bit 4 */
2021-06-13 05:01:23 -07:00
bool unused1464b4 : 1;
2017-03-27 19:19:58 -07:00
/**
* This options enables data for 'engine sniffer' tab in console, which comes at some CPU price
offset 1464 bit 5 */
2017-03-27 19:19:58 -07:00
bool isEngineChartEnabled : 1;
/**
* Sometimes we have a performance issue while printing error
offset 1464 bit 6 */
2017-05-25 05:28:30 -07:00
bool silentTriggerError : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1464 bit 7 */
2017-06-12 15:22:25 -07: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
offset 1464 bit 8 */
2017-03-27 19:19:58 -07:00
bool canReadEnabled : 1;
/**
2020-03-31 13:49:19 -07:00
* enable can_write/disable can_write
offset 1464 bit 9 */
2017-03-27 19:19:58 -07:00
bool canWriteEnabled : 1;
/**
offset 1464 bit 10 */
2017-06-12 15:22:25 -07:00
bool useLinearIatSensor : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1464 bit 11 */
2021-08-14 23:47:39 -07:00
bool unusedBitWasHere16 : 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%
offset 1464 bit 12 */
2017-08-28 18:00:36 -07:00
bool tachPulseDurationAsDutyCycle : 1;
2017-03-27 19:19:58 -07:00
/**
* This enables smart alternator control and activates the extra alternator settings.
offset 1464 bit 13 */
2017-03-27 19:19:58 -07:00
bool isAlternatorControlEnabled : 1;
/**
* This setting flips the signal from the primary engine speed sensor.
offset 1464 bit 14 */
2017-10-16 11:52:42 -07:00
bool invertPrimaryTriggerSignal : 1;
2017-03-27 19:19:58 -07:00
/**
* This setting flips the signal from the secondary engine speed sensor.
offset 1464 bit 15 */
2017-10-16 11:52:42 -07:00
bool invertSecondaryTriggerSignal : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1464 bit 16 */
2017-03-27 19:19:58 -07:00
bool cutFuelOnHardLimit : 1;
/**
offset 1464 bit 17 */
2017-03-27 19:19:58 -07:00
bool cutSparkOnHardLimit : 1;
/**
offset 1464 bit 18 */
2020-02-02 09:23:55 -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
offset 1464 bit 19 */
2020-02-02 09:23:55 -08:00
bool launchSparkCutEnable : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1464 bit 20 */
2021-09-29 21:25:05 -07:00
bool unused1464b20 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1464 bit 21 */
2021-08-14 23:47:39 -07:00
bool unusedBitWasHere1 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1464 bit 22 */
2021-08-14 23:47:39 -07:00
bool unusedBitWasHere2 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1464 bit 23 */
2021-08-14 23:47:39 -07:00
bool unusedBitWasHere3 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1464 bit 24 */
2021-08-14 23:47:39 -07:00
bool unusedBitWasHere4 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1464 bit 25 */
2021-08-14 23:47:39 -07:00
bool unusedBitWasHere5 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1464 bit 26 */
2021-08-13 12:05:45 -07:00
bool unusedBitHere1 : 1;
2018-01-02 18:25:40 -08:00
/**
* Sometimes we just have to shut the engine down. Use carefully!
offset 1464 bit 27 */
bool useFSIO5ForCriticalIssueEngineStop : 1;
/**
* Sometimes we have to miss injection on purpose to attract driver's attention
offset 1464 bit 28 */
bool useFSIO4ForSeriousEngineWarning : 1;
/**
offset 1464 bit 29 */
2021-08-13 12:05:45 -07:00
bool unusedBitHere2 : 1;
/**
offset 1464 bit 30 */
2021-08-13 12:05:45 -07:00
bool unusedBitHere3 : 1;
2019-09-29 11:00:04 -07:00
/**
offset 1464 bit 31 */
2021-08-23 22:23:27 -07:00
bool unusedBitHere4 : 1;
2017-03-27 19:19:58 -07:00
/**
* offset 1468
2017-03-27 19:19:58 -07:00
*/
adc_channel_e hipOutputChannel;
/**
2021-05-27 05:25:55 -07:00
* A/C button input
* offset 1469
*/
2020-09-10 19:18:18 -07:00
switch_input_pin_e acSwitch;
/**
* offset 1470
*/
adc_channel_e vRefAdcChannel;
/**
* Expected neutral position
2021-04-26 14:59:44 -07:00
%
* offset 1471
*/
2021-11-11 20:15:01 -08:00
uint8_t etbNeutralPosition;
/**
2019-04-04 18:45:18 -07:00
* See also idleRpmPid
* offset 1472
2017-03-27 19:19:58 -07:00
*/
idle_mode_e idleMode;
/**
* 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.
offset 1476 bit 0 */
2017-03-27 19:19:58 -07:00
bool isInjectionEnabled : 1;
/**
* Enable ignition - This is default off for new projects as a safety feature, set to "true" to enable ignition and further ignition settings.
offset 1476 bit 1 */
2017-03-27 19:19:58 -07:00
bool isIgnitionEnabled : 1;
/**
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.
offset 1476 bit 2 */
2017-03-27 19:19:58 -07:00
bool isCylinderCleanupEnabled : 1;
/**
offset 1476 bit 3 */
2020-09-29 03:36:50 -07:00
bool unused1476b3 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1476 bit 4 */
2020-01-12 02:17:42 -08:00
bool unusedBit4_1476 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1476 bit 5 */
2017-03-27 19:19:58 -07:00
bool isMapAveragingEnabled : 1;
/**
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.
offset 1476 bit 6 */
2017-12-06 15:46:31 -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.
offset 1476 bit 7 */
2017-12-11 07:14:42 -08:00
bool useSeparateAdvanceForIdle : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1476 bit 8 */
2020-09-29 03:36:50 -07:00
bool unused1476b8 : 1;
2017-03-27 19:19:58 -07:00
/**
offset 1476 bit 9 */
2017-03-27 19:19:58 -07:00
bool isWaveAnalyzerEnabled : 1;
/**
* This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.
offset 1476 bit 10 */
2017-12-11 07:14:42 -08:00
bool useSeparateVeForIdle : 1;
2017-03-27 19:19:58 -07:00
/**
* enable trigger_details
offset 1476 bit 11 */
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
offset 1476 bit 12 */
2017-03-27 19:19:58 -07:00
bool isManualSpinningMode : 1;
/**
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
offset 1476 bit 13 */
2017-03-27 19:19:58 -07:00
bool twoWireBatchInjection : 1;
/**
* VR sensors are only precise on rising front
* enable trigger_only_front
offset 1476 bit 14 */
2017-03-27 19:19:58 -07:00
bool useOnlyRisingEdgeForTrigger : 1;
/**
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).
offset 1476 bit 15 */
2017-03-27 19:19:58 -07:00
bool twoWireBatchIgnition : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1476 bit 16 */
2018-01-02 18:25:40 -08:00
bool useFixedBaroCorrFromMap : 1;
/**
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.
offset 1476 bit 17 */
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.
offset 1476 bit 18 */
bool useAdvanceCorrectionsForCranking : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1476 bit 19 */
2020-10-09 14:19:04 -07:00
bool unused1476b19 : 1;
2018-01-02 18:25:40 -08:00
/**
offset 1476 bit 20 */
2020-04-28 17:12:34 -07:00
bool unused1476b20 : 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
offset 1476 bit 21 */
2019-12-03 21:38:40 -08:00
bool useIacPidMultTable : 1;
2019-09-29 11:00:04 -07:00
/**
offset 1476 bit 22 */
2020-01-31 11:23:15 -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
2019-09-29 11:00:04 -07:00
offset 1476 bit 23 */
2020-02-02 09:23:55 -08:00
bool launchSmoothRetard : 1;
2019-09-29 11:00:04 -07:00
/**
offset 1476 bit 24 */
bool unused_1484_bit_24 : 1;
/**
offset 1476 bit 25 */
bool unused_1484_bit_25 : 1;
/**
offset 1476 bit 26 */
bool unused_1484_bit_26 : 1;
/**
offset 1476 bit 27 */
bool unused_1484_bit_27 : 1;
/**
offset 1476 bit 28 */
bool unused_1484_bit_28 : 1;
/**
offset 1476 bit 29 */
bool unused_1484_bit_29 : 1;
/**
offset 1476 bit 30 */
bool unused_1484_bit_30 : 1;
/**
offset 1476 bit 31 */
bool unused_1484_bit_31 : 1;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
count
* offset 1480
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint32_t engineChartSize;
2017-03-27 19:19:58 -07:00
/**
2021-05-21 12:28:41 -07: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.
2021-04-26 14:59:44 -07:00
RPM
* offset 1484
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t idlePidRpmUpperLimit;
2017-12-26 21:26:40 -08:00
/**
* This sets the temperature above which no priming pulse is used, The value at -40 is reduced until there is no more priming injection at this temperature.
2021-04-26 14:59:44 -07:00
*C
* offset 1486
2017-12-26 21:26:40 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t primeInjFalloffTemperature;
2017-03-27 19:19:58 -07:00
/**
2021-07-27 14:37:24 -07:00
mult
* offset 1488
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float turboSpeedSensorMultiplier;
2017-03-27 19:19:58 -07:00
/**
* offset 1492
2017-03-27 19:19:58 -07:00
*/
2021-07-13 11:37:37 -07:00
brain_pin_e camInputsDebug[CAM_INPUTS_COUNT];
2017-03-27 19:19:58 -07:00
/**
2021-07-13 11:37:37 -07:00
* offset 1496
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
* offset 1496
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
* offset 1498
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t warningPeriod;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
angle
* offset 1500
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float knockDetectionWindowStart;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
angle
* offset 1504
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float knockDetectionWindowEnd;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
ms
* offset 1508
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float idleStepperReactionTime;
2017-03-27 19:19:58 -07:00
/**
* offset 1512
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float unused1512;
2017-03-27 19:19:58 -07:00
/**
* offset 1516
2017-03-27 19:19:58 -07:00
*/
2017-06-25 23:14:31 -07:00
pin_input_mode_e fsioInputModes[FSIO_COMMAND_COUNT];
2021-08-15 12:38:17 -07:00
/**
* offset 1522
*/
2021-11-14 06:27:16 -08:00
uint8_t unusedFsioInputs[16];
/**
* need 4 byte alignment
units
* offset 1538
*/
uint8_t alignmentFill_at_1538[2];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
count
2021-11-14 06:27:16 -08:00
* offset 1540
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 1544
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 1548
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int mapAveragingSchedulingAtIndex;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
kPa
2021-11-14 06:27:16 -08:00
* offset 1552
2017-03-27 19:19:58 -07:00
*/
2015-07-10 06:01:56 -07:00
float baroCorrPressureBins[BARO_CORR_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 1568
2017-03-27 19:19:58 -07:00
*/
2015-07-10 06:01:56 -07:00
float baroCorrRpmBins[BARO_CORR_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-11-05 19:01:07 -07:00
ratio
2021-11-14 06:27:16 -08:00
* offset 1584
2017-03-27 19:19:58 -07:00
*/
2021-11-05 19:01:07 -07:00
float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE];
2017-03-27 19:19:58 -07:00
/**
* Cranking fuel correction coefficient based on TPS
2021-04-26 14:59:44 -07:00
Ratio
2021-11-14 06:27:16 -08:00
* offset 1648
2017-03-27 19:19:58 -07:00
*/
2015-08-18 11:03:02 -07:00
float crankingTpsCoef[CRANKING_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 1680
2017-03-27 19:19:58 -07:00
*/
2015-08-18 11:03:02 -07:00
float crankingTpsBins[CRANKING_CURVE_SIZE];
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
2021-11-14 06:27:16 -08:00
* offset 1712
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float tachPulseDuractionMs;
2017-03-27 19:19:58 -07:00
/**
2021-06-27 15:54:02 -07:00
* Above this RPM, disable AC. Set to 0 to disable check.
rpm
2021-11-14 06:27:16 -08:00
* offset 1716
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t maxAcRpm;
2021-06-27 15:54:02 -07:00
/**
* Above this TPS, disable AC. Set to 0 to disable check.
%
2021-11-14 06:27:16 -08:00
* offset 1718
2021-06-27 15:54:02 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t maxAcTps;
2021-06-27 15:54:02 -07:00
/**
* Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check.
deg C
2021-11-14 06:27:16 -08:00
* offset 1719
2021-06-27 15:54:02 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t maxAcClt;
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
2021-11-14 06:27:16 -08:00
* offset 1720
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float wwaeTau;
2017-03-27 19:19:58 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 1724
2017-03-27 19:19:58 -07:00
*/
pid_s alternatorControl;
2017-03-27 19:19:58 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 1744
2017-03-27 19:19:58 -07:00
*/
pid_s etb;
2017-03-27 19:19:58 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 1764
2017-03-27 19:19:58 -07:00
*/
2021-07-13 11:37:37 -07:00
brain_pin_e triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT];
/**
2021-11-14 06:27:16 -08:00
* offset 1767
2021-07-13 11:37:37 -07:00
*/
2021-07-27 14:37:24 -07:00
brain_input_pin_e turboSpeedSensorInputPin;
/**
2021-04-26 14:59:44 -07:00
x
2021-11-14 06:27:16 -08:00
* offset 1768
*/
2021-11-11 20:15:01 -08:00
float alternator_derivativeFilterLoss;
2019-10-23 18:41:30 -07:00
/**
2021-04-26 14:59:44 -07:00
x
2021-11-14 06:27:16 -08:00
* offset 1772
2019-10-23 18:41:30 -07:00
*/
2021-11-11 20:15:01 -08:00
float alternator_antiwindupFreq;
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
2021-11-14 06:27:16 -08:00
* offset 1776
2019-10-23 18:41:30 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 1778
2019-12-07 21:37:33 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t tps2Max;
2019-12-07 21:37:33 -08:00
/**
2020-03-24 21:58:59 -07:00
* See also startStopButtonPin
2021-11-14 06:27:16 -08:00
* offset 1780
2019-12-07 21:37:33 -08:00
*/
2020-03-18 12:56:17 -07:00
output_pin_e starterControlPin;
/**
2021-11-14 06:27:16 -08:00
* offset 1781
2020-03-18 12:56:17 -07:00
*/
2020-03-20 17:45:35 -07:00
pin_input_mode_e startStopButtonMode;
/**
2021-11-14 06:27:16 -08:00
* offset 1782
2020-03-20 17:45:35 -07:00
*/
2020-04-13 16:01:22 -07:00
brain_pin_e mc33816_flag0;
2019-12-29 22:41:23 -08:00
/**
2021-04-26 14:59:44 -07:00
Pulse
2021-11-14 06:27:16 -08:00
* offset 1783
2019-12-29 22:41:23 -08:00
*/
2021-11-11 20:15:01 -08:00
uint8_t tachPulsePerRev;
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
2021-11-14 06:27:16 -08:00
* offset 1784
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 1788
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 1792
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t 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
2021-11-14 06:27:16 -08:00
* offset 1794
2020-03-14 06:18:25 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t multisparkDwell;
2017-03-27 19:19:58 -07:00
/**
2018-01-07 09:11:49 -08:00
* See cltIdleRpmBins
2021-11-14 06:27:16 -08:00
* offset 1796
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
2021-11-14 06:27:16 -08:00
* offset 1816
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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.
2021-11-14 06:27:16 -08:00
* offset 1820
2017-03-27 19:19:58 -07:00
*/
2018-07-26 12:51:06 -07:00
brain_pin_e 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.
2021-11-14 06:27:16 -08:00
* offset 1821
2017-03-27 19:19:58 -07:00
*/
2018-07-26 12:51:06 -07:00
brain_pin_e runningLedPin;
2017-03-27 19:19:58 -07:00
/**
2020-05-02 21:11:27 -07:00
* See also EFI_CONSOLE_RX_BRAIN_PIN
2021-11-14 06:27:16 -08:00
* offset 1822
2017-03-27 19:19:58 -07:00
*/
brain_pin_e binarySerialTxPin;
/**
2021-11-14 06:27:16 -08:00
* offset 1823
2017-03-27 19:19:58 -07:00
*/
brain_pin_e binarySerialRxPin;
/**
2021-11-14 06:27:16 -08:00
* offset 1824
*/
brain_pin_e auxValves[AUX_DIGITAL_VALVE_COUNT];
2017-03-27 19:19:58 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 1826
2017-03-27 19:19:58 -07:00
*/
2021-06-12 04:03:20 -07:00
switch_input_pin_e tcuUpshiftButtonPin;
/**
2021-11-14 06:27:16 -08:00
* offset 1827
2021-06-12 04:03:20 -07:00
*/
switch_input_pin_e tcuDownshiftButtonPin;
2017-03-27 19:19:58 -07:00
/**
* Knock sensor output knock detection threshold depending on current RPM
2021-04-26 14:59:44 -07:00
v
2021-11-14 06:27:16 -08:00
* offset 1828
2017-03-27 19:19:58 -07:00
*/
2016-01-01 15:01:46 -08:00
float knockNoise[ENGINE_NOISE_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 1860
2017-03-27 19:19:58 -07:00
*/
2016-01-01 15:01:46 -08:00
float knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
voltage
2021-11-14 06:27:16 -08:00
* offset 1892
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float throttlePedalUpVoltage;
/**
* Pedal in the floor
2021-04-26 14:59:44 -07:00
voltage
2021-11-14 06:27:16 -08:00
* offset 1896
*/
2021-11-11 20:15:01 -08:00
float throttlePedalWOTVoltage;
2017-06-13 07:40:16 -07:00
/**
* on ECU start turn fuel pump on to build fuel pressure
2021-04-26 14:59:44 -07:00
seconds
2021-11-14 06:27:16 -08:00
* offset 1900
2017-06-13 07:40:16 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 1902
*/
2021-11-11 20:15:01 -08:00
int16_t idlePidRpmDeadZone;
2017-03-27 19:19:58 -07:00
/**
* CLT-based target RPM for automatic idle controller
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 1904
2017-03-27 19:19:58 -07:00
*/
2015-11-18 18:02:51 -08:00
float cltIdleRpmBins[CLT_CURVE_SIZE];
2017-03-27 19:19:58 -07:00
/**
2018-01-07 09:11:49 -08:00
* See idleRpmPid
2021-11-14 06:27:16 -08:00
* offset 1968
2017-03-27 19:19:58 -07:00
*/
2015-11-18 16:01:34 -08:00
float cltIdleRpm[CLT_CURVE_SIZE];
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
2021-11-14 06:27:16 -08:00
* offset 2032
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
%
2021-11-14 06:27:16 -08:00
* offset 2036
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float alternatorOffAboveTps;
2017-03-27 19:19:58 -07:00
/**
2019-03-21 17:26:14 -07:00
* Prime pulse for cold engine, duration in ms
* Linear interpolation between -40F/-40C and fallout temperature
*
* See also isFasterEngineSpinUpEnabled
2018-03-04 20:21:43 -08:00
* set cranking_priming_pulse X
2021-04-26 14:59:44 -07:00
ms
2021-11-14 06:27:16 -08:00
* offset 2040
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float startOfCrankingPrimingPulse;
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
2021-11-14 06:27:16 -08:00
* offset 2044
2017-07-15 12:36:49 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2046
2017-07-31 12:35:12 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2048
*/
2020-04-19 12:47:29 -07:00
brain_pin_e auxSerialTxPin;
/**
2021-11-14 06:27:16 -08:00
* offset 2049
*/
brain_pin_e 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
2021-11-14 06:27:16 -08:00
* offset 2050
*/
2020-04-19 12:47:29 -07:00
brain_pin_e auxSerialRxPin;
/**
2021-11-14 06:27:16 -08:00
* offset 2051
*/
2017-08-16 23:32:06 -07:00
brain_pin_e LIS302DLCsPin;
/**
2021-11-06 19:14:13 -07:00
* This is the number of engine cycles that the TPS position change can occur over, a longer duration will make the enrichment more active but too long may affect steady state driving, a good default is 30-60 cycles.
2021-04-26 14:59:44 -07:00
cycles
2021-11-14 06:27:16 -08:00
* offset 2052
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int tpsAccelLength;
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
2021-11-14 06:27:16 -08:00
* offset 2056
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float tpsAccelEnrichmentThreshold;
2017-03-27 19:19:58 -07:00
/**
2021-07-03 09:12:21 -07:00
v
2021-11-14 06:27:16 -08:00
* offset 2060
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float unusedVvtOffsetWasHere;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
cycles
2021-11-14 06:27:16 -08:00
* offset 2064
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
int engineLoadAccelLength;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
roc
2021-11-14 06:27:16 -08:00
* offset 2068
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float unusedEL1;
2021-10-16 19:38:42 -07:00
/**
coeff
2021-11-14 06:27:16 -08:00
* offset 2072
2021-10-16 19:38:42 -07:00
*/
2021-11-11 20:15:01 -08:00
float unusedEL2;
2021-10-16 19:38:42 -07:00
/**
roc
2021-11-14 06:27:16 -08:00
* offset 2076
2021-10-16 19:38:42 -07:00
*/
2021-11-11 20:15:01 -08:00
float unusedEL3;
2021-10-16 19:38:42 -07:00
/**
coeff
2021-11-14 06:27:16 -08:00
* offset 2080
2021-10-16 19:38:42 -07:00
*/
2021-11-11 20:15:01 -08:00
float unusedEL4;
2017-03-27 19:19:58 -07:00
/**
2021-10-16 18:29:33 -07:00
* Band rate for primary TTL
BPs
2021-11-14 06:27:16 -08:00
* offset 2084
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2088
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2092
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float tpsDecelEnleanmentMultiplier;
2017-03-27 19:19:58 -07:00
/**
* ExpAverage alpha coefficient
2021-04-26 14:59:44 -07:00
coeff
2021-11-14 06:27:16 -08:00
* offset 2096
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2100
2017-03-27 19:19:58 -07:00
*/
debug_mode_e debugMode;
/**
2021-04-26 14:59:44 -07:00
BPs
2021-11-14 06:27:16 -08:00
* offset 2104
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
uint32_t auxSerialSpeed;
2020-04-19 12:47:29 -07:00
/**
2021-04-26 14:59:44 -07:00
voltage
2021-11-14 06:27:16 -08:00
* offset 2108
2020-04-19 12:47:29 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2112
2020-05-23 07:55:42 -07:00
*/
2021-11-11 20:15:01 -08:00
float throttlePedalSecondaryWOTVoltage;
2020-05-23 07:55:42 -07:00
/**
2021-11-06 19:14:13 -07:00
* set can_baudrate
2021-11-14 06:27:16 -08:00
* offset 2116
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.
2021-11-14 06:27:16 -08:00
* offset 2117
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
/**
2021-11-14 06:27:16 -08:00
* offset 2118
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.
2021-11-14 06:27:16 -08:00
* offset 2119
2020-08-02 10:46:08 -07:00
*/
2020-09-07 07:17:40 -07:00
afr_override_e afrOverrideMode;
2020-08-02 10:46:08 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 2120
2020-08-05 04:59:46 -07:00
*/
2021-11-11 20:15:01 -08:00
uint32_t verboseCan2BaseAddress;
2020-08-05 04:59:46 -07:00
/**
* CAN broadcast using custom rusEFI protocol
* enable can_broadcast/disable can_broadcast
2021-11-14 06:27:16 -08:00
offset 2124 bit 0 */
2020-08-05 04:59:46 -07:00
bool enableVerboseCan2Tx : 1;
/**
* enable can_read/disable can_read
2021-11-14 06:27:16 -08:00
offset 2124 bit 1 */
2020-08-05 04:59:46 -07:00
bool can2ReadEnabled : 1;
/**
* enable can_write/disable can_write
2021-11-14 06:27:16 -08:00
offset 2124 bit 2 */
2020-08-05 04:59:46 -07:00
bool can2WriteEnabled : 1;
/**
2021-10-06 11:01:16 -07:00
* Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)
2021-11-14 06:27:16 -08:00
offset 2124 bit 3 */
2021-10-06 11:01:16 -07:00
bool stepperDcInvertedPins : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 4 */
2020-08-05 04:59:46 -07:00
bool unused1127 : 1;
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 5 */
2020-08-05 04:59:46 -07:00
bool unused1128 : 1;
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 6 */
2020-08-05 04:59:46 -07:00
bool unused1129 : 1;
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 7 */
2020-08-05 04:59:46 -07:00
bool unused1130 : 1;
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 8 */
bool unusedBit_510_8 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 9 */
bool unusedBit_510_9 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 10 */
bool unusedBit_510_10 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 11 */
bool unusedBit_510_11 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 12 */
bool unusedBit_510_12 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 13 */
bool unusedBit_510_13 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 14 */
bool unusedBit_510_14 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 15 */
bool unusedBit_510_15 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 16 */
bool unusedBit_510_16 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 17 */
bool unusedBit_510_17 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 18 */
bool unusedBit_510_18 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 19 */
bool unusedBit_510_19 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 20 */
bool unusedBit_510_20 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 21 */
bool unusedBit_510_21 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 22 */
bool unusedBit_510_22 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 23 */
bool unusedBit_510_23 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 24 */
bool unusedBit_510_24 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 25 */
bool unusedBit_510_25 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 26 */
bool unusedBit_510_26 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 27 */
bool unusedBit_510_27 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 28 */
bool unusedBit_510_28 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 29 */
bool unusedBit_510_29 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 30 */
bool unusedBit_510_30 : 1;
2020-08-05 04:59:46 -07:00
/**
2021-11-14 06:27:16 -08:00
offset 2124 bit 31 */
bool unusedBit_510_31 : 1;
2020-08-05 04:59:46 -07:00
/**
* set can_mode X
2021-11-14 06:27:16 -08:00
* offset 2128
2020-08-05 04:59:46 -07:00
*/
can_nbc_e can2NbcType;
/**
* set_can2_tx_pin X
2021-11-14 06:27:16 -08:00
* offset 2132
2020-08-05 04:59:46 -07:00
*/
brain_pin_e can2TxPin;
/**
* set_can2_rx_pin X
2021-11-14 06:27:16 -08:00
* offset 2133
2020-08-05 04:59:46 -07:00
*/
brain_pin_e can2RxPin;
/**
2021-11-14 06:27:16 -08:00
* offset 2134
2020-06-14 14:01:05 -07:00
*/
2020-09-08 23:44:30 -07:00
pin_output_mode_e starterControlPinMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2135
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.
2021-11-14 06:27:16 -08:00
* offset 2136
2020-09-18 00:05:55 -07:00
*/
2020-10-09 14:19:04 -07:00
afr_override_e ignOverrideMode;
/**
2020-10-23 12:48:01 -07:00
* Select which fuel pressure sensor measures the pressure of the fuel at your injectors.
2021-11-14 06:27:16 -08:00
* offset 2137
2020-10-09 14:19:04 -07:00
*/
2020-10-23 12:48:01 -07:00
injector_pressure_type_e injectorPressureType;
/**
2021-11-14 06:27:16 -08:00
* offset 2138
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
/**
2021-11-14 06:27:16 -08:00
* offset 2139
2020-11-03 07:53:22 -08:00
*/
pin_output_mode_e hpfpValvePinMode;
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)
2021-11-14 06:27:16 -08:00
* offset 2140
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float boostCutPressure;
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
counter
2021-11-14 06:27:16 -08:00
* offset 2144
2017-03-27 19:19:58 -07:00
*/
2016-03-12 07:01:55 -08:00
float mapAccelTaperBins[MAP_ACCEL_TAPER];
2017-03-27 19:19:58 -07:00
/**
2021-04-26 14:59:44 -07:00
mult
2021-11-14 06:27:16 -08:00
* offset 2176
2017-03-27 19:19:58 -07:00
*/
2016-03-12 07:01:55 -08:00
float mapAccelTaperMult[MAP_ACCEL_TAPER];
2017-03-27 19:19:58 -07:00
/**
2021-10-19 16:54:00 -07:00
* EGO value correction
value
2021-11-14 06:27:16 -08:00
* offset 2208
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -08:00
float unusedAnotherOneOfThose;
2017-03-27 19:19:58 -07:00
/**
* Fixed timing, useful for TDC testing
2021-04-26 14:59:44 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 2212
2017-03-27 19:19:58 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2216
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2220
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float mapHighValueVoltage;
2018-11-29 21:17:55 -08:00
/**
* EGO value correction
2021-04-26 14:59:44 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 2224
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float egoValueShift;
/**
2021-11-14 06:27:16 -08:00
* offset 2228
*/
2021-10-28 21:20:12 -07:00
output_pin_e vvtPins[CAM_INPUTS_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2232
2018-11-29 21:17:55 -08:00
*/
spi_device_e cj125SpiDevice;
/**
2021-11-14 06:27:16 -08:00
* offset 2233
*/
pin_output_mode_e cj125CsPinMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2234
*/
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
2021-11-14 06:27:16 -08:00
* offset 2235
*/
2021-11-14 06:27:16 -08:00
uint8_t alignmentFill_at_2235[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
2021-11-14 06:27:16 -08:00
* offset 2236
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int crankingIACposition;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
mult
2021-11-14 06:27:16 -08:00
* offset 2240
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeMinRpmMinTps;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
mult
2021-11-14 06:27:16 -08:00
* offset 2244
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeMinRpmMaxTps;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
mult
2021-11-14 06:27:16 -08:00
* offset 2248
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeMaxRpmMinTps;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
mult
2021-11-14 06:27:16 -08:00
* offset 2252
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeMaxRpmMaxTps;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2256
2018-11-29 21:17:55 -08:00
*/
2021-10-28 21:20:12 -07:00
fsio_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
%
2021-11-14 06:27:16 -08:00
* offset 2260
2021-02-10 17:23:22 -08:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2261
2021-02-10 17:23:22 -08:00
*/
2021-11-14 06:27:16 -08:00
uint8_t alignmentFill_at_2261[3];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Hz
2021-11-14 06:27:16 -08:00
* offset 2264
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int alternatorPwmFrequency;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 2268
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int unused2260;
2018-11-29 21:17:55 -08:00
/**
* Narrow Band WBO Approximation
2021-04-26 14:59:44 -07:00
V
2021-11-14 06:27:16 -08:00
* offset 2272
2018-11-29 21:17:55 -08:00
*/
float narrowToWideOxygenBins[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2021-11-14 06:27:16 -08:00
* offset 2304
2018-11-29 21:17:55 -08:00
*/
float narrowToWideOxygen[NARROW_BAND_WIDE_BAND_CONVERSION_SIZE];
/**
* set vvt_mode X
2021-11-14 06:27:16 -08:00
* offset 2336
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
/**
2021-11-14 06:27:16 -08:00
* offset 2338
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
%
2021-11-14 06:27:16 -08:00
* offset 2338
2021-02-08 11:13:25 -08:00
*/
2021-11-11 20:15:01 -08:00
uint8_t fan2ExtraIdle;
2021-05-31 15:02:57 -07:00
/**
units
2021-11-14 06:27:16 -08:00
* offset 2339
2021-05-31 15:02:57 -07:00
*/
2021-10-19 16:54:00 -07:00
uint8_t unusedOldBiquad[1];
/**
2021-11-14 06:27:16 -08:00
* offset 2340
2021-10-19 16:54:00 -07:00
*/
adc_channel_e auxAnalogInputs[AUX_ANALOG_INPUT_COUNT];
2021-07-09 07:09:27 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 2348
2021-07-09 07:09:27 -07:00
*/
output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT];
2018-11-29 21:17:55 -08:00
/**
* CLT-based timing correction
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 2360
2018-11-29 21:17:55 -08:00
*/
float cltTimingBins[CLT_TIMING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
degree
2021-11-14 06:27:16 -08:00
* offset 2392
2018-11-29 21:17:55 -08:00
*/
float cltTimingExtra[CLT_TIMING_CURVE_SIZE];
/**
2021-11-14 06:27:16 -08:00
* offset 2424
2018-11-29 21:17:55 -08:00
*/
2020-04-23 13:57:37 -07:00
tle8888_mode_e tle8888mode;
/**
2021-11-14 06:27:16 -08:00
* offset 2425
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
2021-11-14 06:27:16 -08:00
* offset 2426
2020-09-27 04:38:53 -07:00
*/
2020-11-10 20:13:06 -08:00
injector_compensation_mode_e injectorCompensationMode;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2427
2020-11-10 20:13:06 -08:00
*/
2021-06-13 05:09:09 -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
2021-11-14 06:27:16 -08:00
* offset 2428
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float fuelReferencePressure;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 2432
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float unused244_2;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 2436
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float unused244_3;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 2440
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float unused2432;
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
2021-11-14 06:27:16 -08:00
* offset 2444
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2448
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float postCrankingDurationSec;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2452
2018-11-29 21:17:55 -08:00
*/
ThermistorConf auxTempSensor1;
/**
2021-11-14 06:27:16 -08:00
* offset 2484
2018-11-29 21:17:55 -08:00
*/
ThermistorConf auxTempSensor2;
/**
2021-07-07 20:49:03 -07:00
* Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment.
ms
2021-11-14 06:27:16 -08:00
* offset 2516
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
uint16_t applyNonlinearBelowPulse;
2021-07-07 20:49:03 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 2518
2021-07-07 20:49:03 -07:00
*/
InjectorNonlinearMode injectorNonlinearMode;
/**
units
2021-11-14 06:27:16 -08:00
* offset 2519
2021-07-07 20:49:03 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t unused2508;
2021-08-09 13:40:28 -07:00
/**
Deg
2021-11-14 06:27:16 -08:00
* offset 2520
2021-08-09 13:40:28 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t knockSamplingDuration;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Hz
2021-11-14 06:27:16 -08:00
* offset 2522
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t etbFreq;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2524
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
2021-11-14 06:27:16 -08:00
* offset 2544
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)
%
2021-11-14 06:27:16 -08:00
* offset 2545
2021-10-06 11:01:16 -07:00
*/
2021-11-11 20:15:01 -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)
%
2021-11-14 06:27:16 -08:00
* offset 2546
2021-10-06 11:01:16 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t stepperMaxDutyCycle;
2021-10-06 11:01:16 -07:00
/**
units
2021-11-14 06:27:16 -08:00
* offset 2547
2021-10-06 11:01:16 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t unused2536;
2018-11-29 21:17:55 -08:00
/**
* per-cylinder timing correction
2021-05-27 05:25:55 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 2548
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
2021-11-14 06:27:16 -08:00
* offset 2596
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float idlePidActivationTime;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2600
2018-11-29 21:17:55 -08:00
*/
spi_device_e sdCardSpiDevice;
2019-04-14 15:12:15 -07:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 2601
2019-04-14 15:12:15 -07:00
*/
uint8_t unusedSpiPadding4[3];
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2604
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.
2021-11-14 06:27:16 -08:00
* offset 2605
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi1MosiMode;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2606
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi1MisoMode;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2607
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi2SckMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2608
*/
pin_mode_e spi2MosiMode;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2609
*/
pin_mode_e spi2MisoMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2610
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi3SckMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2611
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi3MosiMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2612
2018-11-29 21:17:55 -08:00
*/
pin_mode_e spi3MisoMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2613
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
2021-11-14 06:27:16 -08:00
* offset 2614
2018-11-29 21:17:55 -08:00
*/
2019-05-25 10:47:09 -07:00
brain_pin_e mc33816_rstb;
/**
2021-11-14 06:27:16 -08:00
* offset 2615
2019-05-25 10:47:09 -07:00
*/
brain_pin_e mc33816_driven;
2018-11-29 21:17:55 -08:00
/**
2019-07-21 14:06:16 -07:00
* Brake pedal switch
2021-11-14 06:27:16 -08:00
* offset 2616
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
2021-11-14 06:27:16 -08:00
* offset 2617
2018-11-29 21:17:55 -08:00
*/
adc_channel_e cj125ua;
2018-11-29 21:17:55 -08:00
/**
* heater input
2021-11-14 06:27:16 -08:00
* offset 2618
*/
adc_channel_e cj125ur;
/**
2021-11-14 06:27:16 -08:00
* offset 2619
*/
pin_input_mode_e brakePedalPinMode;
/**
2021-11-14 06:27:16 -08:00
* offset 2620
2018-11-29 21:17:55 -08:00
*/
2021-02-10 17:23:22 -08:00
pid_s auxPid[CAMS_PER_BANK];
/**
2021-11-14 06:27:16 -08:00
* offset 2660
2021-02-10 17:23:22 -08:00
*/
2021-07-07 20:49:03 -07:00
float injectorCorrectionPolynomial[8];
/**
units
2021-11-14 06:27:16 -08:00
* offset 2692
2021-07-07 20:49:03 -07:00
*/
uint8_t unused1366[8];
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 2700
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
/**
2021-11-14 06:27:16 -08:00
* offset 2720
2018-11-29 21:17:55 -08:00
*/
spi_device_e accelerometerSpiDevice;
2019-04-14 15:12:15 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 2721
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
2021-11-14 06:27:16 -08:00
* offset 2722
2020-05-02 12:56:36 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 2723
2020-05-02 12:56:36 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t fan2OffTemperature;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
x
2021-11-14 06:27:16 -08:00
* offset 2724
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve1Bins[FSIO_CURVE_16];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
y
2021-11-14 06:27:16 -08:00
* offset 2788
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve1[FSIO_CURVE_16];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
x
2021-11-14 06:27:16 -08:00
* offset 2852
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve2Bins[FSIO_CURVE_16];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
y
2021-11-14 06:27:16 -08:00
* offset 2916
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve2[FSIO_CURVE_16];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
x
2021-11-14 06:27:16 -08:00
* offset 2980
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve3Bins[FSIO_CURVE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
y
2021-11-14 06:27:16 -08:00
* offset 3012
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve3[FSIO_CURVE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
x
2021-11-14 06:27:16 -08:00
* offset 3044
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve4Bins[FSIO_CURVE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
y
2021-11-14 06:27:16 -08:00
* offset 3076
2018-11-29 21:17:55 -08:00
*/
2021-11-04 20:37:40 -07:00
float scriptCurve4[FSIO_CURVE_8];
2018-11-29 21:17:55 -08:00
/**
2021-01-05 04:59:14 -08:00
* Continental/GM flex fuel sensor, 50-150hz type
2021-11-14 06:27:16 -08:00
* offset 3108
2018-11-29 21:17:55 -08:00
*/
2021-01-05 04:59:14 -08:00
brain_input_pin_e flexSensorPin;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 3109
2018-11-29 21:17:55 -08:00
*/
brain_pin_e test557pin;
/**
2021-11-14 06:27:16 -08:00
* offset 3110
*/
pin_output_mode_e stepperDirectionPinMode;
/**
2021-11-14 06:27:16 -08:00
* offset 3111
*/
2021-11-11 20:15:01 -08:00
uint8_t unused3103;
/**
2021-11-14 06:27:16 -08:00
* offset 3112
*/
2020-07-03 12:10:58 -07:00
output_pin_e stepperEnablePin;
/**
2021-11-14 06:27:16 -08:00
* offset 3113
*/
2019-03-25 12:08:32 -07:00
brain_pin_e tle8888_cs;
/**
2021-11-14 06:27:16 -08:00
* offset 3114
2019-03-25 12:08:32 -07:00
*/
2019-03-25 17:30:36 -07:00
pin_output_mode_e tle8888_csPinMode;
/**
2021-11-14 06:27:16 -08:00
* offset 3115
2019-03-25 17:30:36 -07:00
*/
brain_pin_e mc33816_cs;
2018-11-29 21:17:55 -08:00
/**
* Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 3116
2018-11-29 21:17:55 -08:00
*/
float crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE];
/**
* Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)
2021-04-26 14:59:44 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 3132
2018-11-29 21:17:55 -08:00
*/
float crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE];
/**
* todo: more comments
2021-11-14 06:27:16 -08:00
* offset 3148
2018-11-29 21:17:55 -08:00
*/
brain_pin_e servoOutputPins[SERVO_COUNT];
/**
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
2021-11-14 06:27:16 -08:00
* offset 3156
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 3158
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t coastingFuelCutRpmLow;
2018-11-29 21:17:55 -08:00
/**
2021-04-12 05:25:48 -07:00
* Throttle position below which fuel cut is active.
2021-04-26 14:59:44 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 3160
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 3162
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -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
%
2021-11-14 06:27:16 -08:00
* offset 3164
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 3166
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t coastingFuelCutMap;
2018-11-29 21:17:55 -08:00
/**
* CLT-based idle position for coasting (used in Auto-PID Idle mode)
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 3168
2018-11-29 21:17:55 -08:00
*/
float iacCoastingBins[CLT_CURVE_SIZE];
/**
2021-11-06 19:14:13 -07:00
* CLT-based idle position for coasting (used in Auto-PID Idle mode)
2021-04-26 14:59:44 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 3232
2018-11-29 21:17:55 -08:00
*/
float iacCoasting[CLT_CURVE_SIZE];
/**
2021-11-14 06:27:16 -08:00
* offset 3296
2018-11-29 21:17:55 -08:00
*/
2020-10-23 04:33:40 -07:00
linear_sensor_s highPressureFuel;
/**
2021-11-14 06:27:16 -08:00
* offset 3316
2020-10-23 04:33:40 -07:00
*/
linear_sensor_s lowPressureFuel;
/**
2021-02-17 14:46:18 -08:00
* CLT-based target RPM for hard limit depending on CLT like on Lexus LFA
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 3336
2020-10-23 04:33:40 -07:00
*/
2021-02-17 14:46:18 -08:00
int8_t cltRevLimitRpmBins[CLT_LIMITER_CURVE_SIZE];
/**
* See idleRpmPid
2021-11-14 06:27:16 -08:00
* offset 3340
2021-02-17 14:46:18 -08:00
*/
uint16_t cltRevLimitRpm[CLT_LIMITER_CURVE_SIZE];
2021-06-11 21:19:09 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 3348
2021-06-11 21:19:09 -07:00
*/
2021-11-04 20:03:11 -07:00
gppwm_note_t scriptCurveName[SCRIPT_CURVE_COUNT];
/**
x
2021-11-14 06:27:16 -08:00
* offset 3444
2021-11-04 20:03:11 -07:00
*/
float scriptCurve5Bins[FSIO_CURVE_8];
/**
y
2021-11-14 06:27:16 -08:00
* offset 3476
2021-11-04 20:03:11 -07:00
*/
float scriptCurve5[FSIO_CURVE_8];
/**
x
2021-11-14 06:27:16 -08:00
* offset 3508
2021-11-04 20:03:11 -07:00
*/
float scriptCurve6Bins[FSIO_CURVE_8];
/**
y
2021-11-14 06:27:16 -08:00
* offset 3540
2021-11-04 20:03:11 -07:00
*/
float scriptCurve6[FSIO_CURVE_8];
/**
2021-11-14 06:27:16 -08:00
* offset 3572
2021-11-04 20:03:11 -07:00
*/
2021-11-07 07:30:54 -08:00
gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT];
/**
units
2021-11-14 06:27:16 -08:00
* offset 3636
2021-11-07 07:30:54 -08:00
*/
uint8_t unused3328[236];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Min tCharge Coeff.
2021-11-14 06:27:16 -08:00
* offset 3872
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeAirCoefMin;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Max tCharge Coeff.
2021-11-14 06:27:16 -08:00
* offset 3876
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeAirCoefMax;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Max Air Flow (kg/h)
2021-11-14 06:27:16 -08:00
* offset 3880
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeAirFlowMax;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
tChange Increment Limit (deg/sec)
2021-11-14 06:27:16 -08:00
* offset 3884
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeAirIncrLimit;
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
tChange Decrement Limit (deg/sec)
2021-11-14 06:27:16 -08:00
* offset 3888
2018-11-29 21:17:55 -08:00
*/
2021-11-11 20:15:01 -08:00
float tChargeAirDecrLimit;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 3892
2018-11-29 21:17:55 -08:00
*/
tChargeMode_e tChargeMode;
/**
2018-12-09 07:19:47 -08:00
* target TPS value, 0 to 100%
* TODO: use int8 data date once we template interpolation method
2021-04-26 14:59:44 -07:00
target TPS position
2021-11-14 06:27:16 -08:00
* offset 3896
2018-11-29 21:17:55 -08:00
*/
2019-01-07 16:30:35 -08:00
float etbBiasBins[ETB_BIAS_CURVE_LENGTH];
2018-12-09 07:19:47 -08:00
/**
* PWM bias, 0 to 100%
2021-04-26 14:59:44 -07:00
ETB duty cycle bias
2021-11-14 06:27:16 -08:00
* offset 3928
2018-12-09 07:19:47 -08:00
*/
float etbBiasValues[ETB_BIAS_CURVE_LENGTH];
/**
2021-11-14 06:27:16 -08:00
* offset 3960
2018-12-09 07:19:47 -08:00
*/
2021-11-11 20:15:01 -08:00
float hip9011Gain;
2019-01-04 14:18:43 -08:00
/**
2019-03-02 11:00:32 -08:00
* iTerm min value
2021-11-14 06:27:16 -08:00
* offset 3964
2019-01-04 14:18:43 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t etb_iTermMin;
2019-03-02 11:00:32 -08:00
/**
* iTerm max value
2021-11-14 06:27:16 -08:00
* offset 3966
2019-03-02 11:00:32 -08:00
*/
2021-11-11 20:15:01 -08:00
int16_t etb_iTermMax;
2019-03-02 11:00:32 -08:00
/**
2021-11-05 15:21:29 -07:00
* Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open.
%
2021-11-14 06:27:16 -08:00
* offset 3968
2019-03-02 11:00:32 -08:00
*/
2021-11-11 20:15:01 -08:00
uint8_t etbMaximumPosition;
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 3969
*/
2021-11-05 15:21:29 -07:00
uint8_t unused1059[7];
/**
2019-03-22 20:00:21 -07:00
* See useIdleTimingPidControl
2021-11-14 06:27:16 -08:00
* offset 3976
*/
2019-03-22 20:00:21 -07:00
pid_s idleTimingPid;
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 3996
2019-03-22 20:00:21 -07:00
*/
2021-01-07 05:08:14 -08:00
uint8_t unused3988[2];
2019-03-22 20:00:21 -07:00
/**
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
2021-11-14 06:27:16 -08:00
* offset 3998
2019-03-22 20:00:21 -07:00
*/
2021-11-11 20:15:01 -08:00
int16_t idleTimingPidDeadZone;
2019-03-22 20:00:21 -07:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 4000
2019-03-22 20:00:21 -07:00
*/
2021-01-07 05:08:14 -08:00
uint8_t unused3942[2];
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
2021-11-14 06:27:16 -08:00
* offset 4002
2019-03-22 20:00:21 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4004
2019-03-22 20:00:21 -07:00
*/
2021-11-11 20:15:01 -08:00
float tpsAccelFractionDivisor;
2019-03-25 12:08:32 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4008
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
/**
2021-11-14 06:27:16 -08:00
* offset 4009
2019-04-14 15:12:15 -07:00
*/
spi_device_e mc33816spiDevice;
/**
* iTerm min value
2021-11-14 06:27:16 -08:00
* offset 4010
*/
2021-11-11 20:15:01 -08:00
int16_t idlerpmpid_iTermMin;
2019-03-28 19:48:12 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4012
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
2021-11-14 06:27:16 -08:00
* offset 4013
2019-04-14 15:12:15 -07:00
*/
2021-11-11 20:15:01 -08:00
scaled_channel<uint8_t, 10, 1> stoichRatioPrimary;
/**
* iTerm max value
2021-11-14 06:27:16 -08:00
* offset 4014
*/
2021-11-11 20:15:01 -08:00
int16_t idlerpmpid_iTermMax;
2019-04-13 07:58:52 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4016
2019-04-13 07:58:52 -07:00
*/
spi_device_e mc33972spiDevice;
2019-04-14 15:12:15 -07:00
/**
2021-05-21 12:28:41 -07:00
* Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0
2021-04-26 14:59:44 -07:00
:1
2021-11-14 06:27:16 -08:00
* offset 4017
2019-04-14 15:12:15 -07:00
*/
2021-11-11 20:15:01 -08:00
scaled_channel<uint8_t, 10, 1> stoichRatioSecondary;
2021-01-05 13:32:00 -08:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 4018
2021-01-05 13:32:00 -08:00
*/
uint8_t unusedSpiPadding8[2];
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
%
2021-11-14 06:27:16 -08:00
* offset 4020
2019-04-13 07:58:52 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4024
*/
2021-07-06 17:57:01 -07:00
uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT];
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 4036
*/
2021-01-02 06:16:50 -08:00
int unused4028[2];
/**
2019-12-03 21:38:40 -08:00
* Trigger comparator center point voltage
2021-04-26 14:59:44 -07:00
V
2021-11-14 06:27:16 -08:00
* offset 4044
*/
2021-11-11 20:15:01 -08:00
uint8_t triggerCompCenterVolt;
2019-12-03 21:38:40 -08:00
/**
* Trigger comparator hysteresis voltage (Min)
2021-04-26 14:59:44 -07:00
V
2021-11-14 06:27:16 -08:00
* offset 4045
2019-12-03 21:38:40 -08:00
*/
2021-11-11 20:15:01 -08:00
uint8_t triggerCompHystMin;
2019-12-03 21:38:40 -08:00
/**
* Trigger comparator hysteresis voltage (Max)
2021-04-26 14:59:44 -07:00
V
2021-11-14 06:27:16 -08:00
* offset 4046
2019-12-03 21:38:40 -08:00
*/
2021-11-11 20:15:01 -08:00
uint8_t triggerCompHystMax;
2019-12-03 21:38:40 -08:00
/**
* VR-sensor saturation RPM
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 4047
2019-12-03 21:38:40 -08:00
*/
2021-11-11 20:15:01 -08:00
uint8_t triggerCompSensorSatRpm;
2019-06-15 10:33:14 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4048
2019-06-15 10:33:14 -07:00
*/
2019-09-11 17:46:50 -07:00
pid_s idleRpmPid2;
/**
2021-11-05 19:01:07 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 4068
2019-09-11 17:46:50 -07:00
*/
2021-11-05 19:01:07 -07:00
uint8_t iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE];
2019-10-30 06:27:12 -07:00
/**
2021-04-26 14:59:44 -07:00
Load
2021-11-14 06:27:16 -08:00
* offset 4132
2019-10-30 06:27:12 -07:00
*/
uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE];
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 4140
2019-10-30 06:27:12 -07:00
*/
uint8_t iacPidMultRpmBins[IAC_PID_MULT_SIZE];
/**
2020-04-19 15:32:24 -07:00
* set can_vss X
2021-11-14 06:27:16 -08:00
* offset 4148
2019-10-30 06:27:12 -07:00
*/
2020-04-19 15:32:24 -07:00
can_vss_nbc_e canVssNbcType;
/**
2021-11-14 06:27:16 -08:00
* offset 4152
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
2021-11-14 06:27:16 -08:00
* offset 4504
2020-04-25 15:07:37 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t mc33_i_boost;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
mA
2021-11-14 06:27:16 -08:00
* offset 4506
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t mc33_i_peak;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
mA
2021-11-14 06:27:16 -08:00
* offset 4508
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t mc33_i_hold;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2021-11-14 06:27:16 -08:00
* offset 4510
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4512
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4514
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4516
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t mc33_t_bypass;
2020-05-19 05:38:31 -07:00
/**
2021-04-26 14:59:44 -07:00
us
2021-11-14 06:27:16 -08:00
* offset 4518
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4520
2020-05-19 05:38:31 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t mc33_t_hold_tot;
2020-05-19 05:38:31 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4522
2020-05-19 05:38:31 -07:00
*/
2021-06-12 04:28:45 -07:00
pin_input_mode_e tcuUpshiftButtonPinMode;
/**
2021-11-14 06:27:16 -08:00
* offset 4523
2021-06-12 04:28:45 -07:00
*/
pin_input_mode_e tcuDownshiftButtonPinMode;
2020-05-19 05:38:31 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4524
2020-05-19 05:38:31 -07:00
*/
2020-09-10 19:18:18 -07:00
pin_input_mode_e acSwitchMode;
/**
2021-11-14 06:27:16 -08:00
* offset 4525
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];
/**
2021-04-26 14:59:44 -07:00
dB
2021-11-14 06:27:16 -08:00
* offset 4531
2020-09-28 18:41:06 -07:00
*/
2020-12-08 18:10:55 -08:00
int8_t knockBaseNoise[IGN_RPM_COUNT];
/**
* need 4 byte alignment
2021-07-03 08:33:11 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 4547
2020-12-08 18:10:55 -08:00
*/
2021-11-14 06:27:16 -08:00
uint8_t alignmentFill_at_4547[1];
2020-09-10 19:18:18 -07:00
/**
2021-10-30 07:50:41 -07:00
from
2021-11-14 06:27:16 -08:00
* offset 4548
2020-09-10 19:18:18 -07:00
*/
2021-10-30 07:50:41 -07:00
float triggerGapOverrideFrom[GAP_TRACKING_LENGTH];
2021-05-23 17:00:27 -07:00
/**
2021-09-29 20:55:33 -07:00
Percent
2021-11-14 06:27:16 -08:00
* offset 4620
2021-05-23 17:00:27 -07:00
*/
2021-09-29 20:55:33 -07:00
int8_t fuelTrim[MAX_CYLINDER_COUNT];
/**
2021-10-30 07:50:41 -07:00
to
2021-11-14 06:27:16 -08:00
* offset 4632
2021-09-29 20:55:33 -07:00
*/
2021-10-30 07:50:41 -07:00
float triggerGapOverrideTo[GAP_TRACKING_LENGTH];
/**
2021-11-05 20:28:22 -07:00
lobes/cam
2021-11-14 06:27:16 -08:00
* offset 4704
2021-10-30 07:50:41 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t hpfpCamLobes;
2021-11-05 20:28:22 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4705
2021-11-05 20:28:22 -07:00
*/
hpfp_cam_e hpfpCam;
/**
* Crank angle ATDC of first lobe peak
deg
2021-11-14 06:27:16 -08:00
* offset 4706
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4707
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4708
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4710
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t hpfpActivationAngle;
2021-11-05 20:28:22 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 4711
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -08:00
uint8_t unusedFiller_4703;
2021-11-05 20:28:22 -07:00
/**
%/kPa
2021-11-14 06:27:16 -08:00
* offset 4712
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -08:00
scaled_channel<uint16_t, 1000, 1> hpfpPidP;
2021-11-05 20:28:22 -07:00
/**
%/kPa/lobe
2021-11-14 06:27:16 -08:00
* offset 4714
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -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
2021-11-14 06:27:16 -08:00
* offset 4716
2021-11-05 20:28:22 -07:00
*/
2021-11-11 20:15:01 -08:00
uint16_t hpfpTargetDecay;
2021-11-05 20:28:22 -07:00
/**
%
2021-11-14 06:27:16 -08:00
* offset 4718
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 2, 1> hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE];
/**
deg
2021-11-14 06:27:16 -08:00
* offset 4734
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 2, 1> hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE];
/**
volts
2021-11-14 06:27:16 -08:00
* offset 4750
2021-11-05 20:28:22 -07:00
*/
uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE];
/**
ms
2021-11-14 06:27:16 -08:00
* offset 4758
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpDeadtimeMS[HPFP_DEADTIME_SIZE];
/**
kPa
2021-11-14 06:27:16 -08:00
* offset 4774
2021-11-05 20:28:22 -07:00
*/
uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE];
/**
load
2021-11-14 06:27:16 -08:00
* offset 4974
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint16_t, 10, 1> hpfpTargetLoadBins[HPFP_TARGET_SIZE];
/**
RPM
2021-11-14 06:27:16 -08:00
* offset 4994
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 1, 50> hpfpTargetRpmBins[HPFP_TARGET_SIZE];
/**
%
2021-11-14 06:27:16 -08:00
* offset 5004
2021-11-05 20:28:22 -07:00
*/
int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE];
/**
cc/lobe
2021-11-14 06:27:16 -08:00
* offset 5104
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE];
/**
RPM
2021-11-14 06:27:16 -08:00
* offset 5124
2021-11-05 20:28:22 -07:00
*/
scaled_channel<uint8_t, 1, 50> hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE];
/**
* need 4 byte alignment
units
2021-11-14 06:27:16 -08:00
* offset 5134
2021-11-05 20:28:22 -07:00
*/
2021-11-14 06:27:16 -08:00
uint8_t alignmentFill_at_5134[2];
2021-11-05 20:28:22 -07:00
/**
units
2021-11-14 06:27:16 -08:00
* offset 5136
2021-11-05 20:28:22 -07:00
*/
int mainUnusedEnd[218];
2021-11-14 06:27:16 -08:00
/** total size 6008*/
};
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;
2020-03-28 17:14:17 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 6008
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
2021-11-14 06:27:16 -08:00
* offset 6128
2020-03-27 09:13:12 -07:00
*/
float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
Seconds
2021-11-14 06:27:16 -08:00
* offset 6160
2020-03-27 09:13:12 -07:00
*/
float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 6192
2020-03-27 09:13:12 -07:00
*/
float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
Seconds
2021-11-14 06:27:16 -08:00
* offset 6224
2020-03-27 09:13:12 -07:00
*/
float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE];
2020-01-31 11:23:15 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 6256
2020-01-31 11:23:15 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t boostTableOpenLoop[BOOST_RPM_COUNT][BOOST_LOAD_COUNT];
2020-01-31 11:23:15 -08:00
/**
2021-04-26 14:59:44 -07:00
units
2021-11-14 06:27:16 -08:00
* offset 6320
2020-01-31 11:23:15 -08:00
*/
2020-05-06 05:49:08 -07:00
uint8_t unused6312[8];
2020-01-31 11:23:15 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 6328
2020-01-31 11:23:15 -08:00
*/
uint8_t boostRpmBins[BOOST_RPM_COUNT];
/**
2021-11-14 06:27:16 -08:00
* offset 6336
2020-01-31 11:23:15 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t boostTableClosedLoop[BOOST_RPM_COUNT][BOOST_LOAD_COUNT];
2020-01-31 11:23:15 -08:00
/**
2021-04-26 14:59:44 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 6400
2020-01-31 11:23:15 -08:00
*/
uint8_t boostTpsBins[BOOST_LOAD_COUNT];
2019-06-10 09:52:26 -07:00
/**
2021-11-05 19:01:07 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 6408
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
%
2021-11-14 06:27:16 -08:00
* offset 6472
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
2021-11-14 06:27:16 -08:00
* offset 6480
2019-06-10 09:52:26 -07:00
*/
2019-06-10 20:38:44 -07:00
uint8_t 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
2021-11-14 06:27:16 -08:00
* offset 6488
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
%
2021-11-14 06:27:16 -08:00
* offset 6520
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
2021-11-14 06:27:16 -08:00
* offset 6552
2018-11-29 21:17:55 -08:00
*/
float idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE];
/**
* Optional timing advance table for Idle (see useSeparateAdvanceForIdle)
2021-04-26 14:59:44 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 6584
2018-11-29 21:17:55 -08:00
*/
float idleAdvance[IDLE_ADVANCE_CURVE_SIZE];
/**
* Optional VE table for Idle (see useSeparateVEForIdle)
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 6616
2018-11-29 21:17:55 -08:00
*/
float idleVeBins[IDLE_VE_CURVE_SIZE];
/**
2021-11-06 19:14:13 -07:00
* Optional VE table for Idle (see useSeparateVEForIdle)
2021-04-26 14:59:44 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 6648
2018-11-29 21:17:55 -08:00
*/
float idleVe[IDLE_VE_CURVE_SIZE];
/**
2021-11-14 06:27:16 -08:00
* offset 6680
2018-11-29 21:17:55 -08:00
*/
le_formula_t fsioFormulas[FSIO_COMMAND_COUNT];
2021-08-15 12:38:17 -07:00
/**
2021-11-14 06:27:16 -08:00
* offset 7880
2021-08-15 12:38:17 -07:00
*/
2021-08-16 03:57:59 -07:00
lua_script_t luaScript;
2018-11-29 21:17:55 -08:00
/**
2021-11-14 06:27:16 -08:00
* offset 9880
2018-11-29 21:17:55 -08:00
*/
le_formula_t timingMultiplier;
/**
2021-11-14 06:27:16 -08:00
* offset 10080
2018-11-29 21:17:55 -08:00
*/
le_formula_t timingAdditive;
/**
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 10280
2018-11-29 21:17:55 -08:00
*/
float cltFuelCorrBins[CLT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2021-11-14 06:27:16 -08:00
* offset 10344
2018-11-29 21:17:55 -08:00
*/
float cltFuelCorr[CLT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 10408
2018-11-29 21:17:55 -08:00
*/
float iatFuelCorrBins[IAT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2021-11-14 06:27:16 -08:00
* offset 10472
2018-11-29 21:17:55 -08:00
*/
float iatFuelCorr[IAT_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2021-11-14 06:27:16 -08:00
* offset 10536
2018-11-29 21:17:55 -08:00
*/
float crankingFuelCoef[CRANKING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
C
2021-11-14 06:27:16 -08:00
* offset 10568
2018-11-29 21:17:55 -08:00
*/
float crankingFuelBins[CRANKING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
ratio
2021-11-14 06:27:16 -08:00
* offset 10600
2018-11-29 21:17:55 -08:00
*/
float crankingCycleCoef[CRANKING_CURVE_SIZE];
/**
2021-04-26 14:59:44 -07:00
counter
2021-11-14 06:27:16 -08:00
* offset 10632
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
2021-11-14 06:27:16 -08:00
* offset 10664
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
2021-11-14 06:27:16 -08:00
* offset 10728
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
2021-11-14 06:27:16 -08:00
* offset 10792
2018-11-29 21:17:55 -08:00
*/
float mafDecoding[MAF_DECODING_COUNT];
/**
2021-04-26 14:59:44 -07:00
V
2021-11-14 06:27:16 -08:00
* offset 11816
2018-11-29 21:17:55 -08:00
*/
float mafDecodingBins[MAF_DECODING_COUNT];
/**
2021-11-05 19:01:07 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 12840
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
float ignitionIatCorrTable[IGN_RPM_COUNT][IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Temperature
2021-11-14 06:27:16 -08:00
* offset 13864
2018-11-29 21:17:55 -08:00
*/
float ignitionIatCorrLoadBins[IGN_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 13928
2018-11-29 21:17:55 -08:00
*/
float ignitionIatCorrRpmBins[IGN_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 13992
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
float injectionPhase[IGN_RPM_COUNT][IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Load
2021-11-14 06:27:16 -08:00
* offset 15016
2018-11-29 21:17:55 -08:00
*/
float injPhaseLoadBins[FUEL_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 15080
2018-11-29 21:17:55 -08:00
*/
float injPhaseRpmBins[FUEL_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
onoff
2021-11-14 06:27:16 -08:00
* offset 15144
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];
2020-09-15 01:35:57 -07:00
/**
2021-01-10 07:16:52 -08:00
* Good example: number of tooth on wheel, For Can 10 is a good number.
2021-04-26 14:59:44 -07:00
Hz
2021-11-14 06:27:16 -08:00
* offset 15204
2020-09-15 01:35:57 -07:00
*/
2021-11-11 20:15:01 -08:00
float vssFilterReciprocal;
2021-01-10 07:16:52 -08:00
/**
2021-11-05 19:01:07 -07:00
kPa
2021-11-14 06:27:16 -08:00
* offset 15208
2021-01-10 07:16:52 -08:00
*/
2021-11-05 19:01:07 -07:00
uint16_t mapEstimateTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT];
2021-01-31 14:21:02 -08:00
/**
2021-04-26 14:59:44 -07:00
% TPS
2021-11-14 06:27:16 -08:00
* offset 15720
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
2021-11-14 06:27:16 -08:00
* offset 15752
2021-01-31 14:21:02 -08:00
*/
uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 15784
2021-01-31 14:21:02 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t vvtTable1[FSIO_TABLE_8][FSIO_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 15848
2021-02-09 11:01:08 -08:00
*/
float vvtTable1LoadBins[FSIO_TABLE_8];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 15880
2021-02-09 11:01:08 -08:00
*/
float vvtTable1RpmBins[FSIO_TABLE_8];
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 15912
2021-02-09 11:01:08 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t vvtTable2[FSIO_TABLE_8][FSIO_TABLE_8];
2021-02-09 11:01:08 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 15976
2021-02-09 11:01:08 -08:00
*/
float vvtTable2LoadBins[FSIO_TABLE_8];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 16008
2021-02-09 11:01:08 -08:00
*/
float vvtTable2RpmBins[FSIO_TABLE_8];
/**
2021-08-16 03:57:59 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 16040
2021-02-09 11:01:08 -08:00
*/
2021-08-16 03:57:59 -07:00
float unusedLuaWasHere[64];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
deg
2021-11-14 06:27:16 -08:00
* offset 16296
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
float ignitionTable[IGN_RPM_COUNT][IGN_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
Load
2021-11-14 06:27:16 -08:00
* offset 17320
2018-11-29 21:17:55 -08:00
*/
float ignitionLoadBins[IGN_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 17384
2018-11-29 21:17:55 -08:00
*/
float ignitionRpmBins[IGN_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
%
2021-11-14 06:27:16 -08:00
* offset 17448
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
float veTable[FUEL_RPM_COUNT][FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
kPa
2021-11-14 06:27:16 -08:00
* offset 18472
2018-11-29 21:17:55 -08:00
*/
float veLoadBins[FUEL_LOAD_COUNT];
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 18536
2018-11-29 21:17:55 -08:00
*/
float veRpmBins[FUEL_RPM_COUNT];
/**
2021-11-05 19:01:07 -07:00
lambda
2021-11-14 06:27:16 -08:00
* offset 18600
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
/**
2021-11-14 06:27:16 -08:00
* offset 18856
2018-11-29 21:17:55 -08:00
*/
2020-10-26 15:17:20 -07:00
float lambdaLoadBins[FUEL_LOAD_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 18920
2018-11-29 21:17:55 -08:00
*/
2020-10-26 15:17:20 -07:00
float lambdaRpmBins[FUEL_RPM_COUNT];
2018-11-29 21:17:55 -08:00
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 18984
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
2021-11-14 06:27:16 -08:00
* offset 19240
2018-11-29 21:17:55 -08:00
*/
float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
to
2021-11-14 06:27:16 -08:00
* offset 19272
2018-11-29 21:17:55 -08:00
*/
float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE];
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 19304
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
float fsioTable1[FSIO_TABLE_8][FSIO_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 19560
2018-11-29 21:17:55 -08:00
*/
float fsioTable1LoadBins[FSIO_TABLE_8];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 19592
2018-11-29 21:17:55 -08:00
*/
float fsioTable1RpmBins[FSIO_TABLE_8];
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 19624
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t fsioTable2[FSIO_TABLE_8][FSIO_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 19688
2018-11-29 21:17:55 -08:00
*/
float fsioTable2LoadBins[FSIO_TABLE_8];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 19720
2018-11-29 21:17:55 -08:00
*/
float fsioTable2RpmBins[FSIO_TABLE_8];
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 19752
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t fsioTable3[FSIO_TABLE_8][FSIO_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 19816
2018-11-29 21:17:55 -08:00
*/
float fsioTable3LoadBins[FSIO_TABLE_8];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 19848
2018-11-29 21:17:55 -08:00
*/
float fsioTable3RpmBins[FSIO_TABLE_8];
/**
2021-11-05 19:01:07 -07:00
value
2021-11-14 06:27:16 -08:00
* offset 19880
2018-11-29 21:17:55 -08:00
*/
2021-11-05 19:01:07 -07:00
uint8_t fsioTable4[FSIO_TABLE_8][FSIO_TABLE_8];
2018-11-29 21:17:55 -08:00
/**
2021-04-26 14:59:44 -07:00
L
2021-11-14 06:27:16 -08:00
* offset 19944
2018-11-29 21:17:55 -08:00
*/
float fsioTable4LoadBins[FSIO_TABLE_8];
/**
* RPM is float and not integer in order to use unified methods for interpolation
2021-04-26 14:59:44 -07:00
RPM
2021-11-14 06:27:16 -08:00
* offset 19976
2018-11-29 21:17:55 -08:00
*/
float fsioTable4RpmBins[FSIO_TABLE_8];
2021-11-14 06:27:16 -08:00
/** total size 20008*/
};
2018-11-29 21:17:55 -08:00
// end
2021-11-14 06:27:16 -08:00
// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 14 14:25:49 UTC 2021