rusefi/firmware/controllers/generated/engine_configuration_genera...

5855 lines
124 KiB
C
Raw Normal View History

2024-09-04 19:29:18 -07:00
// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt
2024-03-08 16:39:54 -08:00
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
#include "rusefi_types.h"
// start of stft_cell_cfg_s
struct stft_cell_cfg_s {
/**
* Maximum % that the short term fuel trim can add
* units: %
* offset 0
*/
int8_t maxAdd;
/**
* Maximum % that the short term fuel trim can remove
* units: %
* offset 1
*/
int8_t maxRemove;
/**
* 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.
* units: sec
* offset 2
*/
scaled_channel<uint16_t, 10, 1> timeConstant;
};
static_assert(sizeof(stft_cell_cfg_s) == 4);
// start of stft_s
struct stft_s {
/**
2024-03-15 09:51:03 -07:00
* Below this RPM, the idle region is active, idle+300 would be a good value
2024-03-08 16:39:54 -08:00
* units: RPM
* offset 0
*/
scaled_channel<uint8_t, 1, 50> maxIdleRegionRpm;
2024-11-12 05:52:39 -08:00
/**
* need 4 byte alignment
* units: units
* offset 1
*/
uint8_t alignmentFill_at_1[1];
2024-03-08 16:39:54 -08:00
/**
* Below this engine load, the overrun region is active
* units: load
2024-11-12 05:52:39 -08:00
* offset 2
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint16_t maxOverrunLoad;
2024-03-08 16:39:54 -08:00
/**
* Above this engine load, the power region is active
* units: load
2024-11-12 05:52:39 -08:00
* offset 4
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint16_t minPowerLoad;
2024-03-08 16:39:54 -08: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.
* units: %
2024-11-12 05:52:39 -08:00
* offset 6
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> deadband;
/**
* Below this temperature, correction is disabled.
* units: C
2024-11-12 05:52:39 -08:00
* offset 7
2024-03-08 16:39:54 -08:00
*/
int8_t minClt;
/**
* Below this AFR, correction is paused
* units: afr
2024-11-12 05:52:39 -08:00
* offset 8
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> minAfr;
/**
* Above this AFR, correction is paused
* units: afr
2024-11-12 05:52:39 -08:00
* offset 9
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> maxAfr;
/**
* Delay after starting the engine before beginning closed loop correction.
* units: seconds
2024-11-12 05:52:39 -08:00
* offset 10
2024-03-08 16:39:54 -08:00
*/
uint8_t startupDelay;
/**
2024-11-12 05:52:39 -08:00
* need 4 byte alignment
* units: units
* offset 11
*/
uint8_t alignmentFill_at_11[1];
/**
* offset 12
2024-03-08 16:39:54 -08:00
*/
stft_cell_cfg_s cellCfgs[STFT_CELL_COUNT];
};
2024-11-12 05:52:39 -08:00
static_assert(sizeof(stft_s) == 28);
2024-03-08 16:39:54 -08:00
// start of pid_s
struct pid_s {
/**
* offset 0
*/
float pFactor;
/**
* offset 4
*/
float iFactor;
/**
* offset 8
*/
float dFactor;
/**
* Linear addition to PID logic
* offset 12
*/
int16_t offset;
/**
* PID dTime
* units: ms
* offset 14
*/
int16_t periodMs;
/**
* Output Min Duty Cycle
* offset 16
*/
int16_t minValue;
/**
* Output Max Duty Cycle
* offset 18
*/
int16_t maxValue;
};
static_assert(sizeof(pid_s) == 20);
2024-04-20 05:22:40 -07:00
// start of MsIoBox_config_s
struct MsIoBox_config_s {
/**
* offset 0
*/
MsIoBoxId id;
/**
* offset 1
*/
MsIoBoxVss vss;
/**
* need 4 byte alignment
* units: units
* offset 2
*/
uint8_t alignmentFill_at_2[2];
};
static_assert(sizeof(MsIoBox_config_s) == 4);
2024-03-08 16:39:54 -08:00
// start of cranking_parameters_s
struct cranking_parameters_s {
/**
* 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.
* units: mg
* offset 0
*/
float baseFuel;
/**
* This sets the RPM limit below which the ECU will use cranking fuel and ignition logic, typically this is around 350-450rpm.
* set cranking_rpm X
* units: RPM
* offset 4
*/
int16_t rpm;
/**
* need 4 byte alignment
* units: units
* offset 6
*/
uint8_t alignmentFill_at_6[2];
};
static_assert(sizeof(cranking_parameters_s) == 8);
// start of gppwm_channel
struct gppwm_channel {
/**
* Select a pin to use for PWM or on-off output.
* offset 0
*/
output_pin_e pin;
/**
* 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.
* units: %
* offset 2
*/
uint8_t dutyIfError;
/**
* need 4 byte alignment
* units: units
* offset 3
*/
uint8_t alignmentFill_at_3[1];
/**
* Select a frequency to run PWM at.
* Set this to 0hz to enable on-off mode.
* units: hz
* offset 4
*/
uint16_t pwmFrequency;
/**
* Hysteresis: in on-off mode, turn the output on when the table value is above this duty.
* units: %
* offset 6
*/
uint8_t onAboveDuty;
/**
* Hysteresis: in on-off mode, turn the output off when the table value is below this duty.
* units: %
* offset 7
*/
uint8_t offBelowDuty;
/**
* Selects the Y axis to use for the table.
* offset 8
*/
gppwm_channel_e loadAxis;
/**
* Selects the X axis to use for the table.
* offset 9
*/
gppwm_channel_e rpmAxis;
/**
* offset 10
*/
scaled_channel<int16_t, 2, 1> loadBins[GPPWM_LOAD_COUNT];
/**
* offset 26
*/
int16_t rpmBins[GPPWM_RPM_COUNT];
/**
* units: duty
* offset 42
*/
scaled_channel<uint8_t, 2, 1> table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT];
/**
* need 4 byte alignment
* units: units
* offset 106
*/
uint8_t alignmentFill_at_106[2];
};
static_assert(sizeof(gppwm_channel) == 108);
// start of air_pressure_sensor_config_s
struct air_pressure_sensor_config_s {
/**
* kPa value at low volts
* units: kpa
* offset 0
*/
float lowValue;
/**
* kPa value at high volts
* units: kpa
* offset 4
*/
float highValue;
/**
* offset 8
*/
air_pressure_sensor_type_e type;
/**
* offset 9
*/
adc_channel_e hwChannel;
/**
* need 4 byte alignment
* units: units
* offset 10
*/
uint8_t alignmentFill_at_10[2];
};
static_assert(sizeof(air_pressure_sensor_config_s) == 12);
// start of MAP_sensor_config_s
struct MAP_sensor_config_s {
/**
* offset 0
*/
float samplingAngleBins[MAP_ANGLE_SIZE];
/**
* MAP averaging sampling start crank degree angle
* units: deg
* offset 32
*/
float samplingAngle[MAP_ANGLE_SIZE];
/**
* offset 64
*/
float samplingWindowBins[MAP_WINDOW_SIZE];
/**
* MAP averaging angle crank degree duration
* units: deg
* offset 96
*/
float samplingWindow[MAP_WINDOW_SIZE];
/**
* offset 128
*/
air_pressure_sensor_config_s sensor;
};
static_assert(sizeof(MAP_sensor_config_s) == 140);
/**
* @brief Thermistor known values
*/
// start of thermistor_conf_s
struct thermistor_conf_s {
/**
* these values are in Celcius
* units: *C
* offset 0
*/
float tempC_1;
/**
* units: *C
* offset 4
*/
float tempC_2;
/**
* units: *C
* offset 8
*/
float tempC_3;
/**
* units: Ohm
* offset 12
*/
float resistance_1;
/**
* units: Ohm
* offset 16
*/
float resistance_2;
/**
* units: Ohm
* offset 20
*/
float resistance_3;
/**
* Pull-up resistor value on your board
* units: Ohm
* offset 24
*/
float bias_resistor;
};
static_assert(sizeof(thermistor_conf_s) == 28);
// start of linear_sensor_s
struct linear_sensor_s {
/**
* offset 0
*/
adc_channel_e hwChannel;
/**
* need 4 byte alignment
* units: units
* offset 1
*/
uint8_t alignmentFill_at_1[3];
/**
* units: volts
* offset 4
*/
float v1;
/**
* offset 8
*/
float value1;
/**
* units: volts
* offset 12
*/
float v2;
/**
* offset 16
*/
float value2;
};
static_assert(sizeof(linear_sensor_s) == 20);
// start of ThermistorConf
struct ThermistorConf {
/**
* offset 0
*/
thermistor_conf_s config;
/**
* offset 28
*/
adc_channel_e adcChannel;
/**
* need 4 byte alignment
* units: units
* offset 29
*/
uint8_t alignmentFill_at_29[3];
};
static_assert(sizeof(ThermistorConf) == 32);
// start of injector_s
struct injector_s {
/**
2024-10-06 18:38:43 -07:00
* This is your injector flow at the fuel pressure used in the vehicle
* See units setting below
2024-03-08 16:39:54 -08:00
* offset 0
*/
float flow;
/**
* units: volts
* offset 4
*/
float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE];
/**
* ms delay between injector open and close dead times
* units: ms
* offset 36
*/
float battLagCorr[VBAT_INJECTOR_CURVE_SIZE];
};
static_assert(sizeof(injector_s) == 68);
// start of trigger_config_s
struct trigger_config_s {
/**
* https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers
* offset 0
*/
trigger_type_e type;
/**
* units: number
* offset 4
*/
int customTotalToothCount;
/**
* units: number
* offset 8
*/
int customSkippedToothCount;
};
static_assert(sizeof(trigger_config_s) == 12);
// start of afr_sensor_s
struct afr_sensor_s {
/**
* offset 0
*/
adc_channel_e hwChannel;
/**
* offset 1
*/
adc_channel_e hwChannel2;
/**
* need 4 byte alignment
* units: units
* offset 2
*/
uint8_t alignmentFill_at_2[2];
/**
* units: volts
* offset 4
*/
float v1;
/**
* units: AFR
* offset 8
*/
float value1;
/**
* units: volts
* offset 12
*/
float v2;
/**
* units: AFR
* offset 16
*/
float value2;
};
static_assert(sizeof(afr_sensor_s) == 20);
// start of idle_hardware_s
struct idle_hardware_s {
/**
* units: Hz
* offset 0
*/
int solenoidFrequency;
/**
* offset 4
*/
output_pin_e solenoidPin;
/**
* offset 6
*/
Gpio stepperDirectionPin;
/**
* offset 8
*/
Gpio stepperStepPin;
/**
* offset 10
*/
pin_output_mode_e solenoidPinMode;
/**
* need 4 byte alignment
* units: units
* offset 11
*/
uint8_t alignmentFill_at_11[1];
};
static_assert(sizeof(idle_hardware_s) == 12);
// start of dc_io
struct dc_io {
/**
* offset 0
*/
Gpio directionPin1;
/**
* offset 2
*/
Gpio directionPin2;
/**
* Acts as EN pin in two-wire mode
* offset 4
*/
Gpio controlPin;
/**
* offset 6
*/
Gpio disablePin;
};
static_assert(sizeof(dc_io) == 8);
// start of vr_threshold_s
struct vr_threshold_s {
/**
* units: rpm
* offset 0
*/
scaled_channel<uint8_t, 1, 50> rpmBins[6];
/**
* units: volts
* offset 6
*/
scaled_channel<uint8_t, 100, 1> values[6];
/**
* offset 12
*/
Gpio pin;
/**
* need 4 byte alignment
* units: units
* offset 14
*/
uint8_t alignmentFill_at_14[2];
};
static_assert(sizeof(vr_threshold_s) == 16);
// start of engine_configuration_s
struct engine_configuration_s {
/**
* http://rusefi.com/wiki/index.php?title=Manual:Engine_Type
* set engine_type X
* offset 0
*/
engine_type_e engineType;
/**
* offset 2
*/
uint16_t startButtonSuppressOnStartUpMs;
/**
* Disable sensor sniffer above this rpm
* units: RPM
* offset 4
*/
uint16_t sensorSnifferRpmThreshold;
/**
* A secondary Rev limit engaged by the driver to help launch the vehicle faster
* units: rpm
* offset 6
*/
uint16_t launchRpm;
/**
* set rpm_hard_limit X
* units: rpm
* offset 8
*/
uint16_t rpmHardLimit;
/**
* Engine sniffer would be disabled above this rpm
* set engineSnifferRpmThreshold X
* units: RPM
* offset 10
*/
uint16_t engineSnifferRpmThreshold;
/**
* Disable multispark above this engine speed.
* units: rpm
* offset 12
*/
scaled_channel<uint8_t, 1, 50> multisparkMaxRpm;
/**
* Above this RPM, disable AC. Set to 0 to disable check.
* units: rpm
* offset 13
*/
scaled_channel<uint8_t, 1, 50> maxAcRpm;
/**
* Above this TPS, disable AC. Set to 0 to disable check.
* units: %
* offset 14
*/
uint8_t maxAcTps;
/**
* Above this CLT, disable AC to prevent overheating the engine. Set to 0 to disable check.
* units: deg C
* offset 15
*/
uint8_t maxAcClt;
/**
2024-03-20 14:09:51 -07:00
* Just for reference really, not taken into account by any logic at this point
* units: CR
2024-03-08 16:39:54 -08:00
* offset 16
*/
2024-03-20 14:09:51 -07:00
float compressionRatio;
/**
* Voltage when the wastegate is closed.
* You probably don't have one of these!
* units: mv
* offset 20
*/
uint16_t wastegatePositionMin;
/**
* Voltage when the wastegate is fully open.
* You probably don't have one of these!
* 1 volt = 1000 units
* units: mv
* offset 22
*/
uint16_t wastegatePositionMax;
/**
* Voltage when the idle valve is closed.
* You probably don't have one of these!
* units: mv
* offset 24
*/
uint16_t idlePositionMin;
/**
* Voltage when the idle valve is open.
* You probably don't have one of these!
* 1 volt = 1000 units
* units: mv
* offset 26
*/
uint16_t idlePositionMax;
/**
* offset 28
*/
output_pin_e mainRelayPin;
/**
* offset 30
*/
Gpio sdCardCsPin;
/**
* offset 32
*/
Gpio canTxPin;
/**
* offset 34
*/
Gpio canRxPin;
/**
2024-09-26 09:29:33 -07:00
* Pin that activates the reduction/cut for shifting. Sometimes shared with the Launch Control pin
2024-03-20 14:09:51 -07:00
* offset 36
*/
2024-09-26 09:29:33 -07:00
switch_input_pin_e torqueReductionTriggerPin;
2024-03-20 14:09:51 -07:00
/**
* units: %
* offset 38
*/
int8_t launchFuelAdderPercent;
/**
2024-10-09 17:10:35 -07:00
* Time after which the throttle is considered jammed.
2024-03-20 14:09:51 -07:00
* units: sec
* offset 39
*/
scaled_channel<uint8_t, 50, 1> etbJamTimeout;
/**
* offset 40
*/
output_pin_e tachOutputPin;
/**
* offset 42
*/
pin_output_mode_e tachOutputPinMode;
/**
* Additional idle % while A/C is active
* units: %
* offset 43
*/
uint8_t acIdleExtraOffset;
/**
* Value between 0 and 100 used in Manual mode
* units: %
* offset 44
*/
float manIdlePosition;
2024-03-08 16:39:54 -08:00
/**
* This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC.
* units: deg
* offset 48
*/
uint8_t multisparkMaxSparkingAngle;
/**
* Configures the maximum number of extra sparks to fire (does not include main spark)
* units: count
* offset 49
*/
uint8_t multisparkMaxExtraSparkCount;
/**
2024-03-20 14:09:51 -07:00
* units: RPM
2024-03-08 16:39:54 -08:00
* offset 50
*/
2024-03-20 14:09:51 -07:00
int16_t vvtControlMinRpm;
2024-03-08 16:39:54 -08:00
/**
* offset 52
*/
injector_s injector;
/**
* offset 120
*/
injector_s injectorSecondary;
/**
* Does the vehicle have a turbo or supercharger?
offset 188 bit 0 */
bool isForcedInduction : 1 {};
/**
* On some Ford and Toyota vehicles one of the throttle sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor.
offset 188 bit 1 */
bool useFordRedundantTps : 1 {};
/**
offset 188 bit 2 */
bool enableKline : 1 {};
/**
offset 188 bit 3 */
bool overrideTriggerGaps : 1 {};
/**
* Turn on this fan when AC is on.
offset 188 bit 4 */
bool enableFan1WithAc : 1 {};
/**
* Turn on this fan when AC is on.
offset 188 bit 5 */
bool enableFan2WithAc : 1 {};
/**
* Inhibit operation of this fan while the engine is not running.
offset 188 bit 6 */
bool disableFan1WhenStopped : 1 {};
/**
* Inhibit operation of this fan while the engine is not running.
offset 188 bit 7 */
bool disableFan2WhenStopped : 1 {};
/**
* Enable secondary spark outputs that fire after the primary (rotaries, twin plug engines).
offset 188 bit 8 */
bool enableTrailingSparks : 1 {};
/**
2024-06-27 16:09:42 -07:00
* TLE7209 and L6205 use two-wire mode. TLE9201 and VNH2SP30 do NOT use two wire mode.
2024-03-08 16:39:54 -08:00
offset 188 bit 9 */
bool etb_use_two_wires : 1 {};
/**
* 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 188 bit 10 */
bool isDoubleSolenoidIdle : 1 {};
/**
offset 188 bit 11 */
bool useEeprom : 1 {};
/**
* Switch between Industrial and Cic PID implementation
offset 188 bit 12 */
bool useCicPidForIdle : 1 {};
/**
offset 188 bit 13 */
bool useTLE8888_cranking_hack : 1 {};
/**
offset 188 bit 14 */
bool kickStartCranking : 1 {};
/**
* 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 188 bit 15 */
bool useSeparateIdleTablesForCrankingTaper : 1 {};
/**
offset 188 bit 16 */
bool launchControlEnabled : 1 {};
/**
* "Detect double trigger edges"
offset 188 bit 17 */
bool doNotFilterTriggerEdgeNoise : 1 {};
/**
offset 188 bit 18 */
bool antiLagEnabled : 1 {};
/**
* For cranking either use the specified fixed base fuel mass, or use the normal running math (VE table).
offset 188 bit 19 */
bool useRunningMathForCranking : 1 {};
/**
* Shall we display real life signal or just the part consumed by trigger decoder.
* Applies to both trigger and cam/vvt input.
*
* enable logic_level_trigger
offset 188 bit 20 */
bool displayLogicLevelsInEngineSniffer : 1 {};
/**
offset 188 bit 21 */
bool useTLE8888_stepper : 1 {};
/**
offset 188 bit 22 */
bool usescriptTableForCanSniffingFiltering : 1 {};
/**
* Print incoming and outgoing first bus CAN messages in rusEFI console
offset 188 bit 23 */
bool verboseCan : 1 {};
/**
* Experimental setting that will cause a misfire
* DO NOT ENABLE.
offset 188 bit 24 */
bool artificialTestMisfire : 1 {};
/**
* On some Ford and Toyota vehicles one of the pedal sensors is not linear on the full range, i.e. in the specific range of the positions we effectively have only one sensor.
offset 188 bit 25 */
bool useFordRedundantPps : 1 {};
/**
offset 188 bit 26 */
bool cltSensorPulldown : 1 {};
/**
offset 188 bit 27 */
bool iatSensorPulldown : 1 {};
/**
offset 188 bit 28 */
bool allowIdenticalPps : 1 {};
/**
offset 188 bit 29 */
bool overrideVvtTriggerGaps : 1 {};
/**
* If enabled - use onboard SPI Accelerometer, otherwise listen for CAN messages
offset 188 bit 30 */
bool useSpiImu : 1 {};
/**
offset 188 bit 31 */
bool enableStagedInjection : 1 {};
/**
* Closed throttle, 1 volt = 200 units.
* See also tps1_1AdcChannel
* set tps_min X
* units: ADC
* offset 192
*/
int16_t tpsMin;
/**
* Full throttle.
* See also tps1_1AdcChannel
* set tps_max X
* units: ADC
* offset 194
*/
int16_t tpsMax;
/**
* TPS error detection: what throttle % is unrealistically low?
* Also used for accelerator pedal error detection if so equipped.
* units: %
* offset 196
*/
int16_t tpsErrorDetectionTooLow;
/**
* TPS error detection: what throttle % is unrealistically high?
* Also used for accelerator pedal error detection if so equipped.
* units: %
* offset 198
*/
int16_t tpsErrorDetectionTooHigh;
/**
* offset 200
*/
cranking_parameters_s cranking;
/**
* Dwell duration while cranking
* units: ms
* offset 208
*/
float ignitionDwellForCrankingMs;
/**
* Once engine speed passes this value, start reducing ETB angle.
* units: rpm
* offset 212
*/
uint16_t etbRevLimitStart;
/**
* 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.
* units: rpm
* offset 214
*/
uint16_t etbRevLimitRange;
/**
* @see isMapAveragingEnabled
* offset 216
*/
MAP_sensor_config_s map;
/**
* todo: merge with channel settings, use full-scale Thermistor here!
* offset 356
*/
ThermistorConf clt;
/**
* offset 388
*/
ThermistorConf iat;
/**
* units: deg
* offset 420
*/
2024-03-09 05:42:30 -08:00
float launchTimingRetard;
2024-03-08 16:39:54 -08:00
/**
* value '6' for 8MHz hw osc
* read hip9011 datasheet for details
* todo split into two bit fields
* units: integer
* offset 424
*/
int hip9011PrescalerAndSDO;
/**
2024-10-19 21:11:52 -07:00
* iTerm min value
2024-03-08 16:39:54 -08:00
* offset 428
*/
2024-10-19 21:11:52 -07:00
int16_t alternator_iTermMin;
/**
* iTerm max value
* offset 430
*/
int16_t alternator_iTermMax;
2024-03-08 16:39:54 -08:00
/**
2024-10-06 18:02:58 -07:00
* @@DISPLACEMENT_TOOLTIP@@
2024-03-08 16:39:54 -08:00
* units: L
* offset 432
*/
scaled_channel<uint16_t, 1000, 1> displacement;
/**
* units: RPM
* offset 434
*/
uint16_t triggerSimulatorRpm;
/**
* Number of cylinder the engine has.
* offset 436
*/
uint32_t cylindersCount;
/**
* offset 440
*/
firing_order_e firingOrder;
/**
* offset 441
*/
2024-03-20 14:09:51 -07:00
uint8_t justATempTest;
2024-03-08 16:39:54 -08:00
/**
2024-09-15 11:48:30 -07:00
* Delta kPa for MAP sync
* units: kPa
2024-03-08 16:39:54 -08:00
* offset 442
*/
2024-09-15 11:48:30 -07:00
uint8_t mapSyncThreshold;
/**
2024-09-26 09:29:33 -07:00
* How many % of ignition events will be cut
* units: %
2024-09-15 11:48:30 -07:00
* offset 443
*/
2024-09-26 09:29:33 -07:00
int8_t torqueReductionIgnitionCut;
2024-03-08 16:39:54 -08:00
/**
2024-08-04 11:05:43 -07:00
* @@CYLINDER_BORE_TOOLTIP@@
2024-03-08 16:39:54 -08:00
* units: mm
* offset 444
*/
float cylinderBore;
/**
* This setting controls which fuel quantity control algorithm is used.
* 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 448
*/
engine_load_mode_e fuelAlgorithm;
/**
* units: %
* offset 449
*/
uint8_t ALSMaxTPS;
/**
* This is the injection strategy during engine start. See Fuel/Injection settings for more detail. It is suggested to use "Simultaneous".
* offset 450
*/
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.
* offset 451
*/
injection_mode_e injectionMode;
/**
* Minimum RPM to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.
* offset 452
*/
uint16_t boostControlMinRpm;
/**
* Minimum TPS to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.
* offset 454
*/
uint8_t boostControlMinTps;
/**
2024-11-12 05:52:39 -08:00
* need 4 byte alignment
* units: units
2024-03-08 16:39:54 -08:00
* offset 455
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_455[1];
/**
* Minimum MAP to enable boost control. Use this to avoid solenoid noise at idle, and help spool in some cases.
* offset 456
*/
uint16_t boostControlMinMap;
/**
* need 4 byte alignment
* units: units
* offset 458
*/
uint8_t alignmentFill_at_458[2];
2024-03-08 16:39:54 -08:00
/**
* Ignition advance angle used during engine cranking, 5-10 degrees will work as a base setting for most engines.
* There is tapering towards running timing advance
* set cranking_timing_angle X
* units: deg
2024-11-12 05:52:39 -08:00
* offset 460
2024-03-08 16:39:54 -08:00
*/
angle_t crankingTimingAngle;
/**
* 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
2024-11-12 05:52:39 -08:00
* offset 464
2024-03-08 16:39:54 -08:00
*/
ignition_mode_e ignitionMode;
/**
* How many consecutive gap rations have to match expected ranges for sync to happen
* units: count
2024-11-12 05:52:39 -08:00
* offset 465
2024-03-08 16:39:54 -08:00
*/
int8_t gapTrackingLengthOverride;
/**
* Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed).
* units: kph
2024-11-12 05:52:39 -08:00
* offset 466
2024-03-08 16:39:54 -08:00
*/
uint8_t maxIdleVss;
/**
2024-11-12 05:52:39 -08:00
* offset 467
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
uint8_t camDecoder2jzPrecision;
2024-03-08 16:39:54 -08: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.
* units: kPa
2024-11-12 05:52:39 -08:00
* offset 468
2024-03-08 16:39:54 -08:00
*/
uint16_t minOilPressureAfterStart;
/**
2024-04-02 16:20:54 -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).
2024-11-12 05:52:39 -08:00
* offset 470
2024-03-08 16:39:54 -08:00
*/
timing_mode_e timingMode;
/**
2024-11-12 05:52:39 -08:00
* offset 471
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
can_nbc_e canNbcType;
2024-03-08 16:39:54 -08:00
/**
* This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing
* This mode is useful when adjusting distributor location.
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 472
2024-03-08 16:39:54 -08:00
*/
angle_t fixedModeTiming;
/**
* Angle between Top Dead Center (TDC) and the first trigger event.
* Positive value in case of synchronization point before TDC and negative in case of synchronization point after TDC
* .Knowing this angle allows us to control timing and other angles in reference to TDC.
2024-04-02 16:20:54 -07:00
* HOWTO:
* 1: Switch to fixed timing mode on 'ignition setting' dialog
2024-04-02 16:33:12 -07:00
* 2: use an actual timing light to calibrate
* 3: add/subtract until timing light confirms desired fixed timing value!'
2024-03-08 16:39:54 -08:00
* units: deg btdc
2024-11-12 05:52:39 -08:00
* offset 476
2024-03-08 16:39:54 -08:00
*/
angle_t globalTriggerAngleOffset;
/**
* 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.
* units: coef
2024-11-12 05:52:39 -08:00
* offset 480
2024-03-08 16:39:54 -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.
* units: coef
2024-11-12 05:52:39 -08:00
* offset 484
2024-03-08 16:39:54 -08:00
*/
float vbattDividerCoeff;
/**
* Cooling fan turn-on temperature threshold, in Celsius
* units: deg C
2024-11-12 05:52:39 -08:00
* offset 488
2024-03-08 16:39:54 -08:00
*/
float fanOnTemperature;
/**
* Cooling fan turn-off temperature threshold, in Celsius
* units: deg C
2024-11-12 05:52:39 -08:00
* offset 492
2024-03-08 16:39:54 -08:00
*/
float fanOffTemperature;
/**
2024-11-12 05:52:39 -08:00
* offset 496
2024-03-08 16:39:54 -08:00
*/
output_pin_e acrPin;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 498
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_498[2];
2024-03-08 16:39:54 -08:00
/**
* Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size.
* units: revs/km
2024-11-12 05:52:39 -08:00
* offset 500
2024-03-08 16:39:54 -08:00
*/
float driveWheelRevPerKm;
/**
* CANbus thread period in ms
* units: ms
2024-11-12 05:52:39 -08:00
* offset 504
2024-03-08 16:39:54 -08:00
*/
int canSleepPeriodMs;
/**
* units: index
2024-11-12 05:52:39 -08:00
* offset 508
2024-03-08 16:39:54 -08:00
*/
int byFirmwareVersion;
/**
* First throttle body, first sensor. See also pedalPositionAdcChannel
2024-11-12 05:52:39 -08:00
* offset 512
2024-03-08 16:39:54 -08:00
*/
adc_channel_e tps1_1AdcChannel;
/**
* 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.
2024-11-12 05:52:39 -08:00
* offset 513
2024-03-08 16:39:54 -08: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.
2024-11-12 05:52:39 -08:00
* offset 514
2024-03-08 16:39:54 -08:00
*/
adc_channel_e fuelLevelSensor;
/**
* Second throttle body position sensor, single channel so far
2024-11-12 05:52:39 -08:00
* offset 515
2024-03-08 16:39:54 -08:00
*/
adc_channel_e tps2_1AdcChannel;
/**
* 0.1 is a good default value
* units: x
2024-11-12 05:52:39 -08:00
* offset 516
2024-03-08 16:39:54 -08:00
*/
float idle_derivativeFilterLoss;
/**
* just a temporary solution
* units: angle
2024-11-12 05:52:39 -08:00
* offset 520
2024-03-08 16:39:54 -08:00
*/
int trailingSparkAngle;
/**
2024-11-12 05:52:39 -08:00
* offset 524
2024-03-08 16:39:54 -08:00
*/
trigger_config_s trigger;
/**
* Extra air taper amount
* units: %
2024-11-12 05:52:39 -08:00
* offset 536
2024-03-08 16:39:54 -08:00
*/
float airByRpmTaper;
/**
2024-11-12 05:52:39 -08:00
* offset 540
2024-03-08 16:39:54 -08:00
*/
spi_device_e hip9011SpiDevice;
/**
* Duty cycle to use in case of a sensor failure. This duty cycle should produce the minimum possible amount of boost. This duty is also used in case any of the minimum RPM/TPS/MAP conditions are not met.
* units: %
2024-11-12 05:52:39 -08:00
* offset 541
2024-03-08 16:39:54 -08:00
*/
uint8_t boostControlSafeDutyCycle;
/**
2024-11-12 05:52:39 -08:00
* offset 542
2024-03-08 16:39:54 -08:00
*/
adc_channel_e mafAdcChannel;
/**
2024-11-12 05:52:39 -08:00
* offset 543
2024-03-08 16:39:54 -08:00
*/
uint8_t acrRevolutions;
/**
2024-11-12 05:52:39 -08:00
* offset 544
2024-03-08 16:39:54 -08:00
*/
int calibrationBirthday;
/**
* units: volts
2024-11-12 05:52:39 -08:00
* offset 548
2024-03-08 16:39:54 -08:00
*/
float adcVcc;
/**
2024-09-15 11:48:30 -07:00
* Magic engine phase: we compare instant MAP at X to instant MAP at x+360 angle in one complete cycle
2024-03-08 16:39:54 -08:00
* units: Deg
2024-11-12 05:52:39 -08:00
* offset 552
2024-03-08 16:39:54 -08:00
*/
float mapCamDetectionAnglePosition;
/**
* 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.
2024-11-12 05:52:39 -08:00
* offset 556
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e camInputs[CAM_INPUTS_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 564
2024-03-08 16:39:54 -08:00
*/
afr_sensor_s afr;
/**
* Electronic throttle pedal position first channel
* See throttlePedalPositionSecondAdcChannel for second channel
* See also tps1_1AdcChannel
* See throttlePedalUpVoltage and throttlePedalWOTVoltage
2024-11-12 05:52:39 -08:00
* offset 584
2024-03-08 16:39:54 -08:00
*/
adc_channel_e throttlePedalPositionAdcChannel;
/**
* TPS/PPS error threshold
* units: %
2024-11-12 05:52:39 -08:00
* offset 585
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> etbSplit;
/**
2024-11-12 05:52:39 -08:00
* offset 586
2024-03-08 16:39:54 -08:00
*/
Gpio tle6240_cs;
/**
2024-11-12 05:52:39 -08:00
* offset 588
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e tle6240_csPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 589
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e mc33810_csPinMode;
/**
* Throttle Pedal not pressed switch - used on some older vehicles like early Mazda Miata
2024-11-12 05:52:39 -08:00
* offset 590
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e throttlePedalUpPin;
/**
* @see hasBaroSensor
2024-11-12 05:52:39 -08:00
* offset 592
2024-03-08 16:39:54 -08:00
*/
air_pressure_sensor_config_s baroSensor;
/**
2024-11-12 05:52:39 -08:00
* offset 604
2024-03-08 16:39:54 -08:00
*/
idle_hardware_s idle;
/**
2024-06-03 12:01:31 -07:00
* Ignition timing to remove when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),
2024-03-08 16:39:54 -08:00
* units: %
2024-11-12 05:52:39 -08:00
* offset 616
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> knockRetardAggression;
/**
* After a knock event, reapply timing at this rate.
* units: deg/s
2024-11-12 05:52:39 -08:00
* offset 617
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> knockRetardReapplyRate;
/**
* Select which cam is used for engine sync. Other cams will be used only for VVT measurement, but not engine sync.
2024-11-12 05:52:39 -08:00
* offset 618
2024-03-08 16:39:54 -08:00
*/
engineSyncCam_e engineSyncCam;
/**
2024-11-12 05:52:39 -08:00
* offset 619
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
pin_output_mode_e sdCardCsPinMode;
2024-03-08 16:39:54 -08:00
/**
* Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0.
* units: ratio
2024-11-12 05:52:39 -08:00
* offset 620
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> vssGearRatio;
2024-03-20 14:09:51 -07:00
/**
* Set this so your vehicle speed signal is responsive, but not noisy. Larger value give smoother but slower response.
2024-11-12 05:52:39 -08:00
* offset 622
2024-03-20 14:09:51 -07:00
*/
uint8_t vssFilterReciprocal;
2024-03-08 16:39:54 -08:00
/**
* Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft.
* units: count
2024-11-12 05:52:39 -08:00
* offset 623
2024-03-08 16:39:54 -08:00
*/
uint8_t vssToothCount;
/**
* Override the Y axis (load) value used for only the Idle VE table.
* Advanced users only: If you aren't sure you need this, you probably don't need this.
2024-11-12 05:52:39 -08:00
* offset 624
2024-03-08 16:39:54 -08:00
*/
ve_override_e idleVeOverrideMode;
/**
2024-03-20 14:09:51 -07:00
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 625
2024-03-20 14:09:51 -07:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_625[1];
2024-03-20 14:09:51 -07:00
/**
2024-11-12 05:52:39 -08:00
* offset 626
2024-03-08 16:39:54 -08:00
*/
Gpio l9779_cs;
/**
2024-11-12 05:52:39 -08:00
* offset 628
2024-03-08 16:39:54 -08:00
*/
output_pin_e injectionPins[MAX_CYLINDER_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 652
2024-03-08 16:39:54 -08:00
*/
output_pin_e ignitionPins[MAX_CYLINDER_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 676
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e injectionPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 677
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e ignitionPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 678
2024-03-08 16:39:54 -08:00
*/
output_pin_e fuelPumpPin;
/**
2024-11-12 05:52:39 -08:00
* offset 680
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e fuelPumpPinMode;
/**
* How many consecutive VVT gap rations have to match expected ranges for sync to happen
* units: count
2024-11-12 05:52:39 -08:00
* offset 681
2024-03-08 16:39:54 -08:00
*/
int8_t gapVvtTrackingLengthOverride;
/**
* Check engine light, also malfunction indicator light. Always blinks once on boot.
2024-11-12 05:52:39 -08:00
* offset 682
2024-03-08 16:39:54 -08:00
*/
output_pin_e malfunctionIndicatorPin;
/**
2024-11-12 05:52:39 -08:00
* offset 684
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e malfunctionIndicatorPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 685
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e fanPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 686
2024-03-08 16:39:54 -08:00
*/
output_pin_e fanPin;
/**
* Some cars have a switch to indicate that clutch pedal is all the way down
2024-11-12 05:52:39 -08:00
* offset 688
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e clutchDownPin;
/**
2024-11-12 05:52:39 -08:00
* offset 690
2024-03-08 16:39:54 -08:00
*/
output_pin_e alternatorControlPin;
/**
2024-11-12 05:52:39 -08:00
* offset 692
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e alternatorControlPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 693
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e clutchDownPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 694
2024-03-08 16:39:54 -08:00
*/
Gpio digitalPotentiometerChipSelect[DIGIPOT_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 702
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e electronicThrottlePin1Mode;
/**
2024-11-12 05:52:39 -08:00
* offset 703
2024-03-08 16:39:54 -08:00
*/
spi_device_e max31855spiDevice;
/**
2024-11-12 05:52:39 -08:00
* offset 704
2024-03-08 16:39:54 -08:00
*/
Gpio debugTriggerSync;
/**
* Digital Potentiometer is used by stock ECU stimulation code
2024-11-12 05:52:39 -08:00
* offset 706
2024-03-08 16:39:54 -08:00
*/
spi_device_e digitalPotentiometerSpiDevice;
/**
2024-11-12 05:52:39 -08:00
* offset 707
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
pin_input_mode_e brakePedalPinMode;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 708
2024-03-08 16:39:54 -08:00
*/
Gpio mc33972_cs;
/**
2024-11-12 05:52:39 -08:00
* offset 710
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e mc33972_csPinMode;
/**
* Useful in Research&Development phase
2024-11-12 05:52:39 -08:00
* offset 711
2024-03-08 16:39:54 -08:00
*/
adc_channel_e auxFastSensor1_adcChannel;
/**
* First throttle body, second sensor.
2024-11-12 05:52:39 -08:00
* offset 712
2024-03-08 16:39:54 -08:00
*/
adc_channel_e tps1_2AdcChannel;
/**
* Second throttle body, second sensor.
2024-11-12 05:52:39 -08:00
* offset 713
2024-03-08 16:39:54 -08:00
*/
adc_channel_e tps2_2AdcChannel;
/**
* Electronic throttle pedal position input
* Second channel
* See also tps1_1AdcChannel
* See throttlePedalSecondaryUpVoltage and throttlePedalSecondaryWOTVoltage
2024-11-12 05:52:39 -08:00
* offset 714
2024-03-08 16:39:54 -08:00
*/
adc_channel_e throttlePedalPositionSecondAdcChannel;
/**
* AFR, WBO, EGO - whatever you like to call it
2024-11-12 05:52:39 -08:00
* offset 715
2024-03-08 16:39:54 -08:00
*/
ego_sensor_e afr_type;
/**
2024-11-12 05:52:39 -08:00
* offset 716
2024-03-08 16:39:54 -08:00
*/
Gpio mc33810_cs[C_MC33810_COUNT];
2024-03-20 14:09:51 -07:00
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 718
2024-03-20 14:09:51 -07:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_718[2];
2024-03-08 16:39:54 -08:00
/**
* 0.1 is a good default value
* units: x
2024-11-12 05:52:39 -08:00
* offset 720
2024-03-08 16:39:54 -08:00
*/
float idle_antiwindupFreq;
/**
2024-11-12 05:52:39 -08:00
* offset 724
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e triggerInputPins[TRIGGER_INPUT_PIN_COUNT];
/**
* Minimum allowed time for the boost phase. If the boost target current is reached before this time elapses, it is assumed that the injector has failed short circuit.
* units: us
2024-11-12 05:52:39 -08:00
* offset 728
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_min_boost;
/**
2024-11-12 05:52:39 -08:00
* offset 730
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e hip9011CsPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 731
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e throttlePedalUpPinMode;
/**
* Ratio between the wheels and your transmission output.
* units: ratio
2024-11-12 05:52:39 -08:00
* offset 732
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> finalGearRatio;
/**
2024-11-12 05:52:39 -08:00
* offset 734
2024-03-20 14:09:51 -07:00
*/
2024-03-08 16:39:54 -08:00
brain_input_pin_e tcuInputSpeedSensorPin;
/**
2024-11-12 05:52:39 -08:00
* offset 736
2024-03-08 16:39:54 -08:00
*/
uint8_t tcuInputSpeedSensorTeeth;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 737
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_737[1];
2024-03-08 16:39:54 -08: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.
2024-11-12 05:52:39 -08:00
* offset 738
2024-03-08 16:39:54 -08:00
*/
Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT];
/**
* units: g/s
2024-11-12 05:52:39 -08:00
* offset 742
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> fordInjectorSmallPulseSlope;
/**
2024-11-12 05:52:39 -08:00
* offset 744
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e triggerSimulatorPinModes[TRIGGER_SIMULATOR_PIN_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 746
2024-03-08 16:39:54 -08:00
*/
adc_channel_e maf2AdcChannel;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 747
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_747[1];
2024-03-08 16:39:54 -08:00
/**
* On-off O2 sensor heater control. 'ON' if engine is running, 'OFF' if stopped or cranking.
2024-11-12 05:52:39 -08:00
* offset 748
2024-03-08 16:39:54 -08:00
*/
output_pin_e o2heaterPin;
/**
2024-11-12 05:52:39 -08:00
* offset 750
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e o2heaterPinModeTodO;
/**
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 751
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 100> lambdaProtectionMinRpm;
/**
* units: %
2024-11-12 05:52:39 -08:00
* offset 752
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> lambdaProtectionMinLoad;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 753
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_753[3];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 0 */
2024-03-08 16:39:54 -08:00
bool is_enabled_spi_1 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 1 */
2024-03-08 16:39:54 -08:00
bool is_enabled_spi_2 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 2 */
2024-03-08 16:39:54 -08:00
bool is_enabled_spi_3 : 1 {};
/**
* enable sd/disable sd
2024-11-12 05:52:39 -08:00
offset 756 bit 3 */
2024-03-08 16:39:54 -08:00
bool isSdCardEnabled : 1 {};
/**
* Use 11 bit (standard) or 29 bit (extended) IDs for rusEFI verbose CAN format.
2024-11-12 05:52:39 -08:00
offset 756 bit 4 */
2024-03-08 16:39:54 -08:00
bool rusefiVerbose29b : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 5 */
2024-03-08 16:39:54 -08:00
bool rethrowHardFault : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 6 */
2024-03-08 16:39:54 -08:00
bool isHip9011Enabled : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 7 */
2024-03-08 16:39:54 -08:00
bool requireFootOnBrakeToCrank : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 8 */
2024-03-08 16:39:54 -08:00
bool verboseQuad : 1 {};
/**
* This setting should only be used if you have a stepper motor idle valve and a stepper motor driver installed.
2024-11-12 05:52:39 -08:00
offset 756 bit 9 */
2024-03-08 16:39:54 -08:00
bool useStepperIdle : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 10 */
2024-03-08 16:39:54 -08:00
bool enabledStep1Limiter : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 11 */
2024-03-08 16:39:54 -08:00
bool useTpicAdvancedMode : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 12 */
2024-03-08 16:39:54 -08:00
bool lambdaProtectionEnable : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 13 */
2024-03-08 16:39:54 -08:00
bool verboseTLE8888 : 1 {};
/**
* CAN broadcast using custom rusEFI protocol
* enable can_broadcast/disable can_broadcast
2024-11-12 05:52:39 -08:00
offset 756 bit 14 */
2024-03-08 16:39:54 -08:00
bool enableVerboseCanTx : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 15 */
2024-08-31 17:20:58 -07:00
bool externalRusEfiGdiModule : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 16 */
2024-09-11 04:25:40 -07:00
bool flipWboChannels : 1 {};
2024-03-08 16:39:54 -08:00
/**
* Useful for individual intakes
2024-11-12 05:52:39 -08:00
offset 756 bit 17 */
2024-03-08 16:39:54 -08:00
bool measureMapOnlyInOneCylinder : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 18 */
2024-03-08 16:39:54 -08:00
bool stepperForceParkingEveryRestart : 1 {};
/**
* 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.
2024-11-12 05:52:39 -08:00
offset 756 bit 19 */
2024-03-08 16:39:54 -08:00
bool isFasterEngineSpinUpEnabled : 1 {};
/**
* This setting disables fuel injection while the engine is in overrun, this is useful as a fuel saving measure and to prevent back firing.
2024-11-12 05:52:39 -08:00
offset 756 bit 20 */
2024-03-08 16:39:54 -08:00
bool coastingFuelCutEnabled : 1 {};
/**
* Override the IAC position during overrun conditions to help reduce engine breaking, this can be helpful for large engines in light weight cars or engines that have trouble returning to idle.
2024-11-12 05:52:39 -08:00
offset 756 bit 21 */
2024-03-08 16:39:54 -08:00
bool useIacTableForCoasting : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 22 */
2024-03-08 16:39:54 -08:00
bool useNoiselessTriggerDecoder : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 23 */
2024-03-08 16:39:54 -08:00
bool useIdleTimingPidControl : 1 {};
/**
* 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.
2024-11-12 05:52:39 -08:00
offset 756 bit 24 */
2024-03-08 16:39:54 -08:00
bool disableEtbWhenEngineStopped : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 25 */
2024-03-08 16:39:54 -08:00
bool is_enabled_spi_4 : 1 {};
/**
* 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.
2024-11-12 05:52:39 -08:00
offset 756 bit 26 */
2024-03-08 16:39:54 -08:00
bool pauseEtbControl : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 27 */
2024-06-09 16:35:23 -07:00
bool tpsTpsPercentMode : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 28 */
2024-03-08 16:39:54 -08:00
bool verboseKLine : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 29 */
2024-03-08 16:39:54 -08:00
bool idleIncrementalPidCic : 1 {};
/**
* AEM X-Series or rusEFI Wideband
2024-11-12 05:52:39 -08:00
offset 756 bit 30 */
2024-03-08 16:39:54 -08:00
bool enableAemXSeries : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 756 bit 31 */
2024-05-11 17:36:16 -07:00
bool unused32nd : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 760
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e logicAnalyzerPins[LOGIC_ANALYZER_CHANNEL_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 768
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e mainRelayPinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 769
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_769[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 770
2024-03-08 16:39:54 -08:00
*/
Gpio hip9011CsPin;
/**
2024-11-12 05:52:39 -08:00
* offset 772
2024-03-08 16:39:54 -08:00
*/
Gpio hip9011IntHoldPin;
/**
2024-11-12 05:52:39 -08:00
* offset 774
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e hip9011IntHoldPinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 775
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_775[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 776
2024-03-08 16:39:54 -08:00
*/
uint32_t verboseCanBaseAddress;
/**
* Boost Voltage
* units: v
2024-11-12 05:52:39 -08:00
* offset 780
2024-03-08 16:39:54 -08:00
*/
uint8_t mc33_hvolt;
2024-11-12 05:52:39 -08:00
/**
* need 4 byte alignment
* units: units
* offset 781
*/
uint8_t alignmentFill_at_781[1];
2024-03-08 16:39:54 -08:00
/**
* Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost.
* units: kPa
2024-11-12 05:52:39 -08:00
* offset 782
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint16_t minimumBoostClosedLoopMap;
2024-03-08 16:39:54 -08:00
/**
2024-05-29 11:44:57 -07:00
* units: %
2024-11-12 05:52:39 -08:00
* offset 784
2024-03-08 16:39:54 -08:00
*/
2024-05-29 11:44:57 -07:00
int8_t initialIgnitionCutPercent;
/**
* units: %
2024-11-12 05:52:39 -08:00
* offset 785
2024-05-29 11:44:57 -07:00
*/
int8_t finalIgnitionCutPercentBeforeLaunch;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 786
2024-03-08 16:39:54 -08:00
*/
2024-05-10 14:14:58 -07:00
gppwm_channel_e boostOpenLoopYAxis;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 787
2024-03-08 16:39:54 -08:00
*/
spi_device_e l9779spiDevice;
/**
2024-11-12 05:52:39 -08:00
* offset 788
2024-03-08 16:39:54 -08:00
*/
imu_type_e imuType;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 789
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_789[1];
2024-03-08 16:39:54 -08:00
/**
* units: kg
2024-11-12 05:52:39 -08:00
* offset 790
2024-03-08 16:39:54 -08:00
*/
uint16_t vehicleWeight;
/**
* How far above idle speed do we consider idling, i.e. coasting detection threshold.
* For example, if target = 800, this param = 200, then anything below 1000 RPM is considered idle.
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 792
2024-03-08 16:39:54 -08:00
*/
int16_t idlePidRpmUpperLimit;
/**
* Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment.
* units: ms
2024-11-12 05:52:39 -08:00
* offset 794
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> applyNonlinearBelowPulse;
/**
2024-11-12 05:52:39 -08:00
* offset 796
2024-03-08 16:39:54 -08:00
*/
Gpio lps25BaroSensorScl;
/**
2024-11-12 05:52:39 -08:00
* offset 798
2024-03-08 16:39:54 -08:00
*/
Gpio lps25BaroSensorSda;
/**
2024-11-12 05:52:39 -08:00
* offset 800
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e vehicleSpeedSensorInputPin;
/**
* Some vehicles have a switch to indicate that clutch pedal is all the way up
2024-11-12 05:52:39 -08:00
* offset 802
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e clutchUpPin;
/**
2024-11-12 05:52:39 -08:00
* offset 804
2024-03-08 16:39:54 -08:00
*/
InjectorNonlinearMode injectorNonlinearMode;
/**
2024-11-12 05:52:39 -08:00
* offset 805
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e clutchUpPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 806
2024-03-08 16:39:54 -08:00
*/
Gpio max31855_cs[EGT_CHANNEL_COUNT];
/**
* Continental/GM flex fuel sensor, 50-150hz type
2024-11-12 05:52:39 -08:00
* offset 822
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e flexSensorPin;
/**
2024-09-26 09:29:33 -07:00
* Since torque reduction pin is usually shared with launch control, most people have an RPM where behavior under that is Launch Control, over that is Flat Shift/Torque Reduction
* units: rpm
2024-11-12 05:52:39 -08:00
* offset 824
2024-03-08 16:39:54 -08:00
*/
2024-09-26 09:29:33 -07:00
uint16_t torqueReductionArmingRpm;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 826
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e stepperDirectionPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 827
2024-03-08 16:39:54 -08:00
*/
spi_device_e mc33972spiDevice;
/**
* Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0
* units: :1
2024-11-12 05:52:39 -08:00
* offset 828
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> stoichRatioSecondary;
/**
* Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open.
* units: %
2024-11-12 05:52:39 -08:00
* offset 829
2024-03-08 16:39:54 -08:00
*/
uint8_t etbMaximumPosition;
/**
* Rate the ECU will log to the SD card, in hz (log lines per second).
* units: hz
2024-11-12 05:52:39 -08:00
* offset 830
2024-03-08 16:39:54 -08:00
*/
uint16_t sdCardLogFrequency;
/**
2024-11-12 05:52:39 -08:00
* offset 832
2024-03-08 16:39:54 -08:00
*/
adc_channel_e idlePositionChannel;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 833
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_833[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 834
2024-03-08 16:39:54 -08:00
*/
2024-05-29 12:12:50 -07:00
uint16_t launchCorrectionsEndRpm;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 836
2024-03-08 16:39:54 -08:00
*/
output_pin_e starterRelayDisablePin;
/**
* On some vehicles we can disable starter once engine is already running
2024-11-12 05:52:39 -08:00
* offset 838
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e starterRelayDisablePinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 839
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_839[1];
2024-03-08 16:39:54 -08:00
/**
* Some Subaru and some Mazda use double-solenoid idle air valve
2024-11-12 05:52:39 -08:00
* offset 840
2024-03-08 16:39:54 -08:00
*/
output_pin_e secondSolenoidPin;
/**
* See also starterControlPin
2024-11-12 05:52:39 -08:00
* offset 842
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e startStopButtonPin;
/**
2024-03-20 14:19:27 -07:00
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 844
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:19:27 -07:00
scaled_channel<uint8_t, 1, 100> lambdaProtectionRestoreRpm;
/**
2024-11-12 05:52:39 -08:00
* offset 845
2024-03-20 14:19:27 -07:00
*/
pin_output_mode_e acRelayPinMode;
2024-11-12 05:52:39 -08:00
/**
* need 4 byte alignment
* units: units
* offset 846
*/
uint8_t alignmentFill_at_846[2];
2024-03-08 16:39:54 -08: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.
* units: count
2024-11-12 05:52:39 -08:00
* offset 848
2024-03-08 16:39:54 -08:00
*/
int mapMinBufferLength;
/**
* Below this throttle position, the engine is considered idling. If you have an electronic throttle, this checks accelerator pedal position instead of throttle position, and should be set to 1-2%.
* units: %
2024-11-12 05:52:39 -08:00
* offset 852
2024-03-08 16:39:54 -08:00
*/
int16_t idlePidDeactivationTpsThreshold;
/**
* units: %
2024-11-12 05:52:39 -08:00
* offset 854
2024-03-08 16:39:54 -08:00
*/
int16_t stepperParkingExtraSteps;
/**
* units: ADC
2024-11-12 05:52:39 -08:00
* offset 856
2024-03-08 16:39:54 -08:00
*/
uint16_t tps1SecondaryMin;
/**
* units: ADC
2024-11-12 05:52:39 -08:00
* offset 858
2024-03-08 16:39:54 -08:00
*/
uint16_t tps1SecondaryMax;
/**
* units: rpm
2024-11-12 05:52:39 -08:00
* offset 860
2024-03-08 16:39:54 -08:00
*/
int16_t antiLagRpmTreshold;
/**
* Maximum time to crank starter when start/stop button is pressed
* units: Seconds
2024-11-12 05:52:39 -08:00
* offset 862
2024-03-08 16:39:54 -08:00
*/
uint16_t startCrankingDuration;
/**
* This pin is used for debugging - snap a logic analyzer on it and see if it's ever high
2024-11-12 05:52:39 -08:00
* offset 864
2024-03-08 16:39:54 -08:00
*/
Gpio triggerErrorPin;
/**
2024-11-12 05:52:39 -08:00
* offset 866
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e triggerErrorPinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 867
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_867[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 868
2024-03-08 16:39:54 -08:00
*/
output_pin_e acRelayPin;
/**
* units: %
2024-11-12 05:52:39 -08:00
* offset 870
2024-03-08 16:39:54 -08:00
*/
uint8_t lambdaProtectionMinTps;
/**
* Only respond once lambda is out of range for this period of time. Use to avoid transients triggering lambda protection when not needed
* units: s
2024-11-12 05:52:39 -08:00
* offset 871
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> lambdaProtectionTimeout;
/**
2024-11-12 05:52:39 -08:00
* offset 872
2024-03-08 16:39:54 -08:00
*/
script_setting_t scriptSetting[SCRIPT_SETTING_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 904
2024-03-08 16:39:54 -08:00
*/
Gpio spi1mosiPin;
/**
2024-11-12 05:52:39 -08:00
* offset 906
2024-03-08 16:39:54 -08:00
*/
Gpio spi1misoPin;
/**
2024-11-12 05:52:39 -08:00
* offset 908
2024-03-08 16:39:54 -08:00
*/
Gpio spi1sckPin;
/**
2024-11-12 05:52:39 -08:00
* offset 910
2024-03-08 16:39:54 -08:00
*/
Gpio spi2mosiPin;
/**
2024-11-12 05:52:39 -08:00
* offset 912
2024-03-08 16:39:54 -08:00
*/
Gpio spi2misoPin;
/**
2024-11-12 05:52:39 -08:00
* offset 914
2024-03-08 16:39:54 -08:00
*/
Gpio spi2sckPin;
/**
2024-11-12 05:52:39 -08:00
* offset 916
2024-03-08 16:39:54 -08:00
*/
Gpio spi3mosiPin;
/**
2024-11-12 05:52:39 -08:00
* offset 918
2024-03-08 16:39:54 -08:00
*/
Gpio spi3misoPin;
/**
2024-11-12 05:52:39 -08:00
* offset 920
2024-03-08 16:39:54 -08:00
*/
Gpio spi3sckPin;
/**
* Saab Combustion Detection Module knock signal input pin
* also known as Saab Ion Sensing Module
2024-11-12 05:52:39 -08:00
* offset 922
2024-03-08 16:39:54 -08:00
*/
Gpio cdmInputPin;
/**
2024-11-12 05:52:39 -08:00
* offset 924
2024-03-08 16:39:54 -08:00
*/
uart_device_e consoleUartDevice;
/**
* rusEFI console Sensor Sniffer mode
2024-11-12 05:52:39 -08:00
* offset 925
2024-03-08 16:39:54 -08:00
*/
sensor_chart_e sensorChartMode;
/**
2024-11-12 05:52:39 -08:00
* offset 926
2024-03-08 16:39:54 -08:00
*/
maf_sensor_type_e mafSensorType;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 927
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_927[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 0 */
2024-03-08 16:39:54 -08:00
bool clutchUpPinInverted : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 1 */
2024-03-08 16:39:54 -08:00
bool clutchDownPinInverted : 1 {};
/**
* If enabled we use two H-bridges to drive stepper idle air valve
2024-11-12 05:52:39 -08:00
offset 928 bit 2 */
2024-03-08 16:39:54 -08:00
bool useHbridgesToDriveIdleStepper : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 3 */
2024-03-08 16:39:54 -08:00
bool multisparkEnable : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 4 */
2024-03-08 16:39:54 -08:00
bool enableLaunchRetard : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 5 */
2024-03-08 16:39:54 -08:00
bool canInputBCM : 1 {};
/**
* This property is useful if using rusEFI as TCM or BCM only
2024-11-12 05:52:39 -08:00
offset 928 bit 6 */
2024-03-08 16:39:54 -08:00
bool consumeObdSensors : 1 {};
/**
* Read VSS from OEM CAN bus according to selected CAN vehicle configuration.
2024-11-12 05:52:39 -08:00
offset 928 bit 7 */
2024-03-08 16:39:54 -08:00
bool enableCanVss : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 8 */
2024-11-06 05:42:20 -08:00
bool suppressWboWorkaround7048 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 9 */
2024-03-08 16:39:54 -08:00
bool showHumanReadableWarning : 1 {};
/**
* 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.
2024-11-12 05:52:39 -08:00
offset 928 bit 10 */
2024-03-08 16:39:54 -08:00
bool stftIgnoreErrorMagnitude : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 11 */
2024-03-08 16:39:54 -08:00
bool vvtBooleanForVerySpecialCases : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 12 */
2024-03-08 16:39:54 -08:00
bool enableSoftwareKnock : 1 {};
/**
* Verbose info in console below engineSnifferRpmThreshold
* enable vvt_details
2024-11-12 05:52:39 -08:00
offset 928 bit 13 */
2024-03-08 16:39:54 -08:00
bool verboseVVTDecoding : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 14 */
2024-03-08 16:39:54 -08:00
bool invertCamVVTSignal : 1 {};
/**
* In Alpha-N mode, compensate for air temperature.
2024-11-12 05:52:39 -08:00
offset 928 bit 15 */
2024-03-08 16:39:54 -08:00
bool alphaNUseIat : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 16 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl1 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 17 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl2 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 18 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl3 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 19 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl4 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 20 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl5 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 21 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl6 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 22 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl7 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 23 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl8 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 24 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl9 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 25 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl10 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 26 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl11 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 27 */
2024-03-08 16:39:54 -08:00
bool knockBankCyl12 : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 28 */
2024-03-08 16:39:54 -08:00
bool tcuEnabled : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 928 bit 29 */
2024-03-08 16:39:54 -08:00
bool canBroadcastUseChannelTwo : 1 {};
/**
* If enabled we use four Push-Pull outputs to directly drive stepper idle air valve coils
2024-11-12 05:52:39 -08:00
offset 928 bit 30 */
2024-03-08 16:39:54 -08:00
bool useRawOutputToDriveIdleStepper : 1 {};
/**
* Print incoming and outgoing second bus CAN messages in rusEFI console
2024-11-12 05:52:39 -08:00
offset 928 bit 31 */
2024-03-08 16:39:54 -08:00
bool verboseCan2 : 1 {};
/**
2024-11-12 05:52:39 -08:00
* offset 932
2024-03-08 16:39:54 -08:00
*/
dc_io etbIo[ETB_COUNT];
/**
* Wastegate control Solenoid
2024-11-12 05:52:39 -08:00
* offset 948
2024-03-08 16:39:54 -08:00
*/
output_pin_e boostControlPin;
/**
2024-11-12 05:52:39 -08:00
* offset 950
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e boostControlPinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 951
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_951[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 952
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e ALSActivatePin;
/**
2024-11-12 05:52:39 -08:00
* offset 954
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e launchActivatePin;
/**
2024-11-12 05:52:39 -08:00
* offset 956
2024-03-08 16:39:54 -08:00
*/
pid_s boostPid;
/**
2024-11-12 05:52:39 -08:00
* offset 976
2024-03-08 16:39:54 -08:00
*/
boostType_e boostType;
/**
2024-11-12 05:52:39 -08:00
* offset 977
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e ignitionKeyDigitalPinMode;
/**
2024-11-12 05:52:39 -08:00
* offset 978
2024-03-08 16:39:54 -08:00
*/
Gpio ignitionKeyDigitalPin;
/**
* units: Hz
2024-11-12 05:52:39 -08:00
* offset 980
2024-03-08 16:39:54 -08:00
*/
int boostPwmFrequency;
/**
2024-11-12 05:52:39 -08:00
* offset 984
2024-03-08 16:39:54 -08:00
*/
launchActivationMode_e launchActivationMode;
/**
2024-11-12 05:52:39 -08:00
* offset 985
2024-03-08 16:39:54 -08:00
*/
antiLagActivationMode_e antiLagActivationMode;
/**
2024-03-20 14:19:27 -07:00
* How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs.
* units: sec
2024-11-12 05:52:39 -08:00
* offset 986
2024-03-20 14:19:27 -07:00
*/
scaled_channel<uint8_t, 20, 1> tpsAccelLookback;
/**
* Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut.
* units: sec
2024-11-12 05:52:39 -08:00
* offset 987
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:19:27 -07:00
scaled_channel<uint8_t, 10, 1> noFuelTrimAfterDfcoTime;
2024-03-08 16:39:54 -08:00
/**
* Launch disabled above this speed if setting is above zero
* units: Kph
2024-11-12 05:52:39 -08:00
* offset 988
2024-03-08 16:39:54 -08:00
*/
int launchSpeedThreshold;
/**
2024-03-16 16:09:24 -07:00
* Starting Launch RPM window to activate (subtracts from Launch RPM)
2024-03-08 16:39:54 -08:00
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 992
2024-03-08 16:39:54 -08:00
*/
2024-03-16 16:09:24 -07:00
int launchRpmWindow;
2024-03-08 16:39:54 -08:00
/**
2024-06-07 17:37:32 -07:00
* units: ms
2024-11-12 05:52:39 -08:00
* offset 996
2024-03-08 16:39:54 -08:00
*/
2024-06-07 17:37:32 -07:00
float triggerEventsTimeoutMs;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1000
2024-03-08 16:39:54 -08:00
*/
2024-06-15 07:33:55 -07:00
float mapExpAverageAlpha;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1004
2024-03-08 16:39:54 -08:00
*/
2024-03-17 17:44:34 -07:00
float magicNumberAvailableForDevTricks;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1008
2024-03-08 16:39:54 -08:00
*/
float turbochargerFilter;
/**
2024-11-12 05:52:39 -08:00
* offset 1012
2024-03-08 16:39:54 -08:00
*/
int launchTpsThreshold;
/**
2024-11-12 05:52:39 -08:00
* offset 1016
2024-03-08 16:39:54 -08:00
*/
float launchActivateDelay;
/**
2024-11-12 05:52:39 -08:00
* offset 1020
2024-03-08 16:39:54 -08:00
*/
stft_s stft;
/**
2024-11-12 05:52:39 -08:00
* offset 1048
2024-03-08 16:39:54 -08:00
*/
dc_io stepperDcIo[DC_PER_STEPPER];
/**
* For example, BMW, GM or Chevrolet
* REQUIRED for rusEFI Online
2024-11-12 05:52:39 -08:00
* offset 1064
2024-03-08 16:39:54 -08:00
*/
vehicle_info_t engineMake;
/**
* For example, LS1 or NB2
* REQUIRED for rusEFI Online
2024-11-12 05:52:39 -08:00
* offset 1096
2024-03-08 16:39:54 -08:00
*/
vehicle_info_t engineCode;
/**
* For example, Hunchback or Orange Miata
* Vehicle name has to be unique between your vehicles.
* REQUIRED for rusEFI Online
2024-11-12 05:52:39 -08:00
* offset 1128
2024-03-08 16:39:54 -08:00
*/
vehicle_info_t vehicleName;
/**
2024-11-12 05:52:39 -08:00
* offset 1160
2024-03-08 16:39:54 -08:00
*/
output_pin_e tcu_solenoid[TCU_SOLENOID_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 1172
2024-03-08 16:39:54 -08:00
*/
dc_function_e etbFunctions[ETB_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 1174
2024-03-08 16:39:54 -08:00
*/
spi_device_e drv8860spiDevice;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1175
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1175[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1176
2024-03-08 16:39:54 -08:00
*/
Gpio drv8860_cs;
/**
2024-11-12 05:52:39 -08:00
* offset 1178
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e drv8860_csPinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1179
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1179[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1180
2024-03-08 16:39:54 -08:00
*/
Gpio drv8860_miso;
/**
2024-11-12 05:52:39 -08:00
* offset 1182
2024-03-08 16:39:54 -08:00
*/
output_pin_e luaOutputPins[LUA_PWM_COUNT];
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1198
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1198[2];
2024-03-08 16:39:54 -08:00
/**
* Angle between cam sensor and VVT zero position
* units: value
2024-11-12 05:52:39 -08:00
* offset 1200
2024-03-08 16:39:54 -08:00
*/
float vvtOffsets[CAM_INPUTS_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 1216
2024-03-08 16:39:54 -08:00
*/
vr_threshold_s vrThreshold[VR_THRESHOLD_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 1248
2024-03-08 16:39:54 -08:00
*/
gppwm_note_t gpPwmNote[GPPWM_CHANNELS];
/**
* units: ADC
2024-11-12 05:52:39 -08:00
* offset 1312
2024-03-08 16:39:54 -08:00
*/
uint16_t tps2SecondaryMin;
/**
* units: ADC
2024-11-12 05:52:39 -08:00
* offset 1314
2024-03-08 16:39:54 -08:00
*/
uint16_t tps2SecondaryMax;
/**
* Select which bus the wideband controller is attached to.
2024-11-12 05:52:39 -08:00
offset 1316 bit 0 */
2024-03-08 16:39:54 -08:00
bool widebandOnSecondBus : 1 {};
/**
* Enables lambda sensor closed loop feedback for fuelling.
2024-11-12 05:52:39 -08:00
offset 1316 bit 1 */
2024-03-08 16:39:54 -08:00
bool fuelClosedLoopCorrectionEnabled : 1 {};
/**
* On even fire engines with even number of cylinders we go wasted spark during cranking. Use this setting to disable wasted spark cranking on odd fire engines.
2024-11-12 05:52:39 -08:00
offset 1316 bit 2 */
2024-03-08 16:39:54 -08:00
bool oddFireEngine : 1 {};
/**
2024-07-12 14:27:54 -07:00
* Write SD card log even when powered by USB
2024-11-12 05:52:39 -08:00
offset 1316 bit 3 */
2024-07-12 14:27:54 -07:00
bool alwaysWriteSdCard : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-08-04 11:05:43 -07:00
* Second harmonic (aka double) is usually quieter background noise
2024-11-12 05:52:39 -08:00
offset 1316 bit 4 */
2024-08-04 11:05:43 -07:00
bool knockDetectionUseDoubleFrequency : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 5 */
2024-03-08 16:39:54 -08:00
bool yesUnderstandLocking : 1 {};
/**
* Sometimes we have a performance issue while printing error
2024-11-12 05:52:39 -08:00
offset 1316 bit 6 */
2024-03-08 16:39:54 -08:00
bool silentTriggerError : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 7 */
2024-03-08 16:39:54 -08:00
bool useLinearCltSensor : 1 {};
/**
* enable can_read/disable can_read
2024-11-12 05:52:39 -08:00
offset 1316 bit 8 */
2024-03-08 16:39:54 -08:00
bool canReadEnabled : 1 {};
/**
* enable can_write/disable can_write. See also can1ListenMode
2024-11-12 05:52:39 -08:00
offset 1316 bit 9 */
2024-03-08 16:39:54 -08:00
bool canWriteEnabled : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 10 */
2024-03-08 16:39:54 -08:00
bool useLinearIatSensor : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 11 */
2024-08-08 08:16:06 -07:00
bool enableOilPressureProtect : 1 {};
2024-03-08 16:39:54 -08:00
/**
* Treat milliseconds value as duty cycle value, i.e. 0.5ms would become 50%
2024-11-12 05:52:39 -08:00
offset 1316 bit 12 */
2024-03-08 16:39:54 -08:00
bool tachPulseDurationAsDutyCycle : 1 {};
/**
* This enables smart alternator control and activates the extra alternator settings.
2024-11-12 05:52:39 -08:00
offset 1316 bit 13 */
2024-03-08 16:39:54 -08:00
bool isAlternatorControlEnabled : 1 {};
/**
* https://wiki.rusefi.com/Trigger-Configuration-Guide
* This setting flips the signal from the primary engine speed sensor.
2024-11-12 05:52:39 -08:00
offset 1316 bit 14 */
2024-03-08 16:39:54 -08:00
bool invertPrimaryTriggerSignal : 1 {};
/**
* https://wiki.rusefi.com/Trigger-Configuration-Guide
* This setting flips the signal from the secondary engine speed sensor.
2024-11-12 05:52:39 -08:00
offset 1316 bit 15 */
2024-03-08 16:39:54 -08:00
bool invertSecondaryTriggerSignal : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 16 */
2024-03-08 16:39:54 -08:00
bool cutFuelOnHardLimit : 1 {};
/**
* Be careful enabling this: some engines are known to self-disassemble their valvetrain with a spark cut. Fuel cut is much safer.
2024-11-12 05:52:39 -08:00
offset 1316 bit 17 */
2024-03-08 16:39:54 -08:00
bool cutSparkOnHardLimit : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 18 */
2024-03-08 16:39:54 -08:00
bool launchFuelCutEnable : 1 {};
/**
* This is the Cut Mode normally used
2024-11-12 05:52:39 -08:00
offset 1316 bit 19 */
2024-03-08 16:39:54 -08:00
bool launchSparkCutEnable : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 20 */
2024-09-27 15:37:51 -07:00
bool torqueReductionEnabled : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 21 */
2024-09-27 15:37:51 -07:00
bool torqueReductionTriggerPinInverted : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 22 */
2024-11-02 09:47:47 -07:00
bool limitTorqueReductionTime : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* Are you a developer troubleshooting TS over CAN ISO/TP?
2024-11-12 05:52:39 -08:00
offset 1316 bit 23 */
2024-11-12 07:34:38 -08:00
bool verboseIsoTp : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 24 */
2024-11-12 07:34:38 -08:00
bool engineSnifferFocusOnInputs : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 25 */
2024-11-12 07:34:38 -08:00
bool launchActivateInverted : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 26 */
2024-11-12 07:34:38 -08:00
bool twoStroke : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* Where is your primary skipped wheel located?
2024-11-12 05:52:39 -08:00
offset 1316 bit 27 */
2024-11-12 07:34:38 -08:00
bool skippedWheelOnCam : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 28 */
2024-11-12 07:34:38 -08:00
bool unusedBit_406_28 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 29 */
2024-11-12 07:34:38 -08:00
bool unusedBit_406_29 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 30 */
2024-11-12 07:34:38 -08:00
bool unusedBit_406_30 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1316 bit 31 */
2024-11-12 07:34:38 -08:00
bool unusedBit_406_31 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1320
2024-03-08 16:39:54 -08:00
*/
adc_channel_e hipOutputChannel;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1321
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1321[1];
2024-03-08 16:39:54 -08:00
/**
* A/C button input
2024-11-12 05:52:39 -08:00
* offset 1322
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e acSwitch;
/**
2024-11-12 05:52:39 -08:00
* offset 1324
2024-03-08 16:39:54 -08:00
*/
adc_channel_e vRefAdcChannel;
/**
* Expected neutral position
* units: %
2024-11-12 05:52:39 -08:00
* offset 1325
2024-03-08 16:39:54 -08:00
*/
uint8_t etbNeutralPosition;
/**
* See also idleRpmPid
2024-11-12 05:52:39 -08:00
* offset 1326
2024-03-08 16:39:54 -08:00
*/
idle_mode_e idleMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1327
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1327[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1328 bit 0 */
2024-03-08 16:39:54 -08:00
bool isInjectionEnabled : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1328 bit 1 */
2024-03-08 16:39:54 -08:00
bool isIgnitionEnabled : 1 {};
/**
* When enabled if TPS is held above 95% no fuel is injected while cranking to clear excess fuel from the cylinders.
2024-11-12 05:52:39 -08:00
offset 1328 bit 2 */
2024-03-08 16:39:54 -08:00
bool isCylinderCleanupEnabled : 1 {};
/**
* Should we use tables to vary tau/beta based on CLT/MAP, or just with fixed values?
2024-11-12 05:52:39 -08:00
offset 1328 bit 3 */
2024-03-08 16:39:54 -08:00
bool complexWallModel : 1 {};
/**
* RPM is measured based on last 720 degrees while instant RPM is measured based on the last 90 degrees of crank revolution
2024-11-12 05:52:39 -08:00
offset 1328 bit 4 */
2024-03-08 16:39:54 -08:00
bool alwaysInstantRpm : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1328 bit 5 */
2024-03-08 16:39:54 -08:00
bool isMapAveragingEnabled : 1 {};
/**
* If enabled, use separate temperature multiplier table for cranking idle position.
* If disabled, use normal running multiplier table applied to the cranking base position.
2024-11-12 05:52:39 -08:00
offset 1328 bit 6 */
2024-03-08 16:39:54 -08:00
bool overrideCrankingIacSetting : 1 {};
/**
2024-10-29 19:00:17 -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 advance at low idle speeds will prevent stalling and extra retard at high idle speeds can help reduce engine power and slow the idle speed.
2024-11-12 05:52:39 -08:00
offset 1328 bit 7 */
2024-03-08 16:39:54 -08:00
bool useSeparateAdvanceForIdle : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1328 bit 8 */
2024-03-08 16:39:54 -08:00
bool isWaveAnalyzerEnabled : 1 {};
/**
* This activates a separate fuel table for Idle, this allows fine tuning of the idle fuelling.
2024-11-12 05:52:39 -08:00
offset 1328 bit 9 */
2024-03-08 16:39:54 -08:00
bool useSeparateVeForIdle : 1 {};
/**
* Verbose info in console below engineSnifferRpmThreshold
* enable trigger_details
2024-11-12 05:52:39 -08:00
offset 1328 bit 10 */
2024-03-08 16:39:54 -08:00
bool verboseTriggerSynchDetails : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1328 bit 11 */
2024-03-08 16:39:54 -08:00
bool cutFuelInAcr : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1328 bit 12 */
2024-03-08 16:39:54 -08:00
bool hondaK : 1 {};
/**
* This is needed if your coils are individually wired (COP) and you wish to use batch ignition (Wasted Spark).
2024-11-12 07:34:38 -08:00
offset 1328 bit 13 */
2024-03-08 16:39:54 -08:00
bool twoWireBatchIgnition : 1 {};
/**
2024-05-03 12:13:29 -07:00
* Read MAP sensor on ECU start-up to use as baro value.
2024-11-12 07:34:38 -08:00
offset 1328 bit 14 */
2024-03-08 16:39:54 -08:00
bool useFixedBaroCorrFromMap : 1 {};
/**
* In Constant mode, timing is automatically tapered to running as RPM increases.
* In Table mode, the "Cranking ignition advance" table is used directly.
2024-11-12 07:34:38 -08:00
offset 1328 bit 15 */
2024-03-08 16:39:54 -08:00
bool useSeparateAdvanceForCranking : 1 {};
/**
2024-06-23 11:19:07 -07:00
* This enables the various ignition corrections during cranking (IAT, CLT and PID idle).
2024-03-08 16:39:54 -08:00
* You probably don't need this.
2024-11-12 07:34:38 -08:00
offset 1328 bit 16 */
2024-03-08 16:39:54 -08:00
bool useAdvanceCorrectionsForCranking : 1 {};
/**
* Enable a second cranking table to use for E100 flex fuel, interpolating between the two based on flex fuel sensor.
2024-11-12 07:34:38 -08:00
offset 1328 bit 17 */
2024-03-08 16:39:54 -08:00
bool flexCranking : 1 {};
/**
* This flag allows to use a special 'PID Multiplier' table (0.0-1.0) to compensate for nonlinear nature of IAC-RPM controller
2024-11-12 07:34:38 -08:00
offset 1328 bit 18 */
2024-03-08 16:39:54 -08:00
bool useIacPidMultTable : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1328 bit 19 */
2024-03-08 16:39:54 -08:00
bool isBoostControlEnabled : 1 {};
/**
* Interpolates the Ignition Retard from 0 to 100% within the RPM Range
2024-11-12 07:34:38 -08:00
offset 1328 bit 20 */
2024-03-08 16:39:54 -08:00
bool launchSmoothRetard : 1 {};
/**
* Some engines are OK running semi-random sequential while other engine require phase synchronization
2024-11-12 07:34:38 -08:00
offset 1328 bit 21 */
2024-03-08 16:39:54 -08:00
bool isPhaseSyncRequiredForIgnition : 1 {};
/**
* If enabled, use a curve for RPM limit (based on coolant temperature) instead of a constant value.
2024-11-12 07:34:38 -08:00
offset 1328 bit 22 */
2024-03-08 16:39:54 -08:00
bool useCltBasedRpmLimit : 1 {};
/**
2024-09-24 06:05:34 -07:00
* If enabled, don't wait for engine start to heat O2 sensors.
* WARNING: this will reduce the life of your sensor, as condensation in the exhaust from a cold start can crack the sensing element.
2024-11-12 07:34:38 -08:00
offset 1328 bit 23 */
2024-03-08 16:39:54 -08:00
bool forceO2Heating : 1 {};
/**
* If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'.
2024-11-12 07:34:38 -08:00
offset 1328 bit 24 */
2024-03-08 16:39:54 -08:00
bool invertVvtControlIntake : 1 {};
/**
* If increased VVT duty cycle increases the indicated VVT angle, set this to 'advance'. If it decreases, set this to 'retard'. Most intake cams use 'advance', and most exhaust cams use 'retard'.
2024-11-12 07:34:38 -08:00
offset 1328 bit 25 */
2024-03-08 16:39:54 -08:00
bool invertVvtControlExhaust : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1328 bit 26 */
2024-03-08 16:39:54 -08:00
bool useBiQuadOnAuxSpeedSensors : 1 {};
/**
* 'Trigger' mode will write a high speed log of trigger events (warning: uses lots of space!). 'Normal' mode will write a standard MLG of sensors, engine function, etc. similar to the one captured in TunerStudio.
2024-11-12 07:34:38 -08:00
offset 1328 bit 27 */
2024-03-08 16:39:54 -08:00
bool sdTriggerLog : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1328 bit 28 */
2024-03-08 16:39:54 -08:00
bool ALSActivateInverted : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1328 bit 29 */
2024-03-08 16:39:54 -08:00
bool stepper_dc_use_two_wires : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1328 bit 30 */
2024-03-08 16:39:54 -08:00
bool watchOutForLinearTime : 1 {};
2024-11-12 07:34:38 -08:00
/**
offset 1328 bit 31 */
bool unusedBit_448_31 : 1 {};
2024-03-08 16:39:54 -08:00
/**
* units: count
2024-11-12 05:52:39 -08:00
* offset 1332
2024-03-08 16:39:54 -08:00
*/
uint32_t engineChartSize;
/**
* units: mult
2024-11-12 05:52:39 -08:00
* offset 1336
2024-03-08 16:39:54 -08:00
*/
float turboSpeedSensorMultiplier;
/**
2024-11-12 05:52:39 -08:00
* offset 1340
2024-03-08 16:39:54 -08:00
*/
Gpio camInputsDebug[CAM_INPUTS_COUNT];
/**
* Idle target speed when A/C is enabled. Some cars need the extra speed to keep the AC efficient while idling.
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 1348
2024-03-08 16:39:54 -08:00
*/
int16_t acIdleRpmTarget;
/**
* set warningPeriod X
* units: seconds
2024-11-12 05:52:39 -08:00
* offset 1350
2024-03-08 16:39:54 -08:00
*/
int16_t warningPeriod;
/**
* units: angle
2024-11-12 05:52:39 -08:00
* offset 1352
2024-03-08 16:39:54 -08:00
*/
float knockDetectionWindowStart;
/**
* units: angle
2024-11-12 05:52:39 -08:00
* offset 1356
2024-03-08 16:39:54 -08:00
*/
float knockDetectionWindowEnd;
/**
* units: ms
2024-11-12 05:52:39 -08:00
* offset 1360
2024-03-08 16:39:54 -08:00
*/
float idleStepperReactionTime;
/**
* units: count
2024-11-12 05:52:39 -08:00
* offset 1364
2024-03-08 16:39:54 -08:00
*/
int idleStepperTotalSteps;
/**
2024-09-26 09:29:33 -07:00
* Pedal position to realize that we need to reduce torque when the trigger pin is uuuh triggered
2024-11-12 05:52:39 -08:00
* offset 1368
2024-03-08 16:39:54 -08:00
*/
2024-09-26 09:29:33 -07:00
int torqueReductionArmingApp;
2024-03-08 16:39:54 -08:00
/**
* Duration in ms or duty cycle depending on selected mode
2024-11-12 05:52:39 -08:00
* offset 1372
2024-03-08 16:39:54 -08:00
*/
float tachPulseDuractionMs;
/**
* Length of time the deposited wall fuel takes to dissipate after the start of acceleration.
* units: Seconds
2024-11-12 05:52:39 -08:00
* offset 1376
2024-03-08 16:39:54 -08:00
*/
float wwaeTau;
/**
2024-11-12 05:52:39 -08:00
* offset 1380
2024-03-08 16:39:54 -08:00
*/
pid_s alternatorControl;
/**
2024-11-12 05:52:39 -08:00
* offset 1400
2024-03-08 16:39:54 -08:00
*/
pid_s etb;
/**
2024-11-12 05:52:39 -08:00
* offset 1420
2024-03-08 16:39:54 -08:00
*/
Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT];
/**
* RPM range above upper limit for extra air taper
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 1424
2024-03-08 16:39:54 -08:00
*/
int16_t airTaperRpmRange;
/**
2024-11-12 05:52:39 -08:00
* offset 1426
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e turboSpeedSensorInputPin;
/**
* Closed throttle#2. todo: extract these two fields into a structure
* See also tps2_1AdcChannel
* units: ADC
2024-11-12 05:52:39 -08:00
* offset 1428
2024-03-08 16:39:54 -08:00
*/
int16_t tps2Min;
/**
* Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!
* See also tps1_1AdcChannel
* units: ADC
2024-11-12 05:52:39 -08:00
* offset 1430
2024-03-08 16:39:54 -08:00
*/
int16_t tps2Max;
/**
* See also startStopButtonPin
2024-11-12 05:52:39 -08:00
* offset 1432
2024-03-08 16:39:54 -08:00
*/
output_pin_e starterControlPin;
/**
2024-11-12 05:52:39 -08:00
* offset 1434
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e startStopButtonMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1435
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1435[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
* offset 1436
2024-03-08 16:39:54 -08:00
*/
Gpio mc33816_flag0;
/**
* units: Pulse
2024-11-12 05:52:39 -08:00
* offset 1438
2024-03-08 16:39:54 -08:00
*/
uint8_t tachPulsePerRev;
/**
* need 4 byte alignment
* units: units
2024-11-12 05:52:39 -08:00
* offset 1439
2024-03-08 16:39:54 -08:00
*/
2024-11-12 05:52:39 -08:00
uint8_t alignmentFill_at_1439[1];
2024-03-08 16:39:54 -08:00
/**
* kPa value which is too low to be true
* units: kPa
2024-11-12 05:52:39 -08:00
* offset 1440
2024-03-08 16:39:54 -08:00
*/
float mapErrorDetectionTooLow;
/**
* kPa value which is too high to be true
* units: kPa
2024-11-12 05:52:39 -08:00
* offset 1444
2024-03-08 16:39:54 -08:00
*/
float mapErrorDetectionTooHigh;
/**
* How long to wait for the spark to fire before recharging the coil for another spark.
* units: ms
2024-11-12 05:52:39 -08:00
* offset 1448
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> multisparkSparkDuration;
/**
* This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table.
* units: ms
2024-11-12 05:52:39 -08:00
* offset 1450
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> multisparkDwell;
/**
* See cltIdleRpmBins
2024-11-12 05:52:39 -08:00
* offset 1452
2024-03-08 16:39:54 -08:00
*/
pid_s idleRpmPid;
/**
* 0 = No fuel settling on port walls 1 = All the fuel settling on port walls setting this to 0 disables the wall wetting enrichment.
* units: Fraction
2024-11-12 05:52:39 -08:00
* offset 1472
2024-03-08 16:39:54 -08:00
*/
float wwaeBeta;
/**
* See also EFI_CONSOLE_RX_BRAIN_PIN
2024-11-12 05:52:39 -08:00
* offset 1476
2024-03-08 16:39:54 -08:00
*/
Gpio binarySerialTxPin;
/**
2024-11-12 05:52:39 -08:00
* offset 1478
2024-03-08 16:39:54 -08:00
*/
Gpio binarySerialRxPin;
/**
2024-11-12 05:52:39 -08:00
* offset 1480
2024-03-08 16:39:54 -08:00
*/
Gpio auxValves[AUX_DIGITAL_VALVE_COUNT];
/**
2024-11-12 05:52:39 -08:00
* offset 1484
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e tcuUpshiftButtonPin;
/**
2024-11-12 05:52:39 -08:00
* offset 1486
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e tcuDownshiftButtonPin;
/**
* units: voltage
2024-11-12 05:52:39 -08:00
* offset 1488
2024-03-08 16:39:54 -08:00
*/
float throttlePedalUpVoltage;
/**
* Pedal in the floor
* units: voltage
2024-11-12 05:52:39 -08:00
* offset 1492
2024-03-08 16:39:54 -08:00
*/
float throttlePedalWOTVoltage;
/**
* on IGN voltage detection turn fuel pump on to build fuel pressure
* units: seconds
2024-11-12 05:52:39 -08:00
* offset 1496
2024-03-08 16:39:54 -08:00
*/
int16_t startUpFuelPumpDuration;
/**
* If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation
* units: RPM
2024-11-12 05:52:39 -08:00
* offset 1498
2024-03-08 16:39:54 -08:00
*/
int16_t idlePidRpmDeadZone;
/**
2024-09-26 09:29:33 -07:00
* For how long after the pin has been triggered will the cut/reduction stay active. After that, even if the pin is still triggered, torque is re-introduced
* units: ms
2024-11-12 05:52:39 -08:00
* offset 1500
2024-03-08 16:39:54 -08:00
*/
2024-09-26 09:29:33 -07:00
float torqueReductionTime;
2024-03-08 16:39:54 -08:00
/**
* See Over/Undervoltage Shutdown/Retry bit in documentation
2024-11-12 05:52:39 -08:00
offset 1504 bit 0 */
2024-03-08 16:39:54 -08:00
bool mc33810DisableRecoveryMode : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 1 */
2024-03-08 16:39:54 -08:00
bool mc33810Gpgd0Mode : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 2 */
2024-03-08 16:39:54 -08:00
bool mc33810Gpgd1Mode : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 3 */
2024-03-08 16:39:54 -08:00
bool mc33810Gpgd2Mode : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 4 */
2024-03-08 16:39:54 -08:00
bool mc33810Gpgd3Mode : 1 {};
/**
2024-06-08 17:17:19 -07:00
* Send out board statistics
2024-11-12 05:52:39 -08:00
offset 1504 bit 5 */
2024-03-08 16:39:54 -08:00
bool enableExtendedCanBroadcast : 1 {};
/**
2024-11-02 12:17:36 -07:00
* global_can_data performance hack
2024-11-12 05:52:39 -08:00
offset 1504 bit 6 */
2024-03-08 16:39:54 -08:00
bool luaCanRxWorkaround : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 7 */
2024-03-08 16:39:54 -08:00
bool flexSensorInverted : 1 {};
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 8 */
2024-03-08 16:39:54 -08:00
bool useHardSkipInTraction : 1 {};
/**
2024-11-12 07:34:38 -08:00
* Use Aux Speed 1 as one of speeds for wheel slip ratio?
2024-11-12 05:52:39 -08:00
offset 1504 bit 9 */
2024-11-12 07:34:38 -08:00
bool useAuxSpeedForSlipRatio : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* VSS and Aux Speed 1 or Aux Speed 1 with Aux Speed 2?
2024-11-12 05:52:39 -08:00
offset 1504 bit 10 */
2024-11-12 07:34:38 -08:00
bool useVssAsSecondWheelSpeed : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 11 */
2024-11-12 07:34:38 -08:00
bool is_enabled_spi_5 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 12 */
2024-11-12 07:34:38 -08:00
bool is_enabled_spi_6 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* AEM X-Series EGT gauge kit or rusEFI EGT sensor from Wideband controller
2024-11-12 05:52:39 -08:00
offset 1504 bit 13 */
2024-11-12 07:34:38 -08:00
bool enableAemXSeriesEgt : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 14 */
2024-11-12 07:34:38 -08:00
bool startRequestPinInverted : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 15 */
2024-11-12 07:34:38 -08:00
bool tcu_rangeSensorPulldown : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 16 */
2024-11-12 07:34:38 -08:00
bool brakePedalPinInverted : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 17 */
2024-11-12 07:34:38 -08:00
bool devBit0 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 18 */
2024-11-12 07:34:38 -08:00
bool devBit1 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 19 */
2024-11-12 07:34:38 -08:00
bool devBit2 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 20 */
2024-11-12 07:34:38 -08:00
bool devBit3 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 21 */
2024-11-12 07:34:38 -08:00
bool devBit4 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 22 */
2024-11-12 07:34:38 -08:00
bool devBit5 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 23 */
2024-11-12 07:34:38 -08:00
bool devBit6 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 24 */
2024-11-12 07:34:38 -08:00
bool devBit7 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 25 */
2024-11-12 07:34:38 -08:00
bool invertExhaustCamVVTSignal : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 26 */
2024-11-12 07:34:38 -08:00
bool enableKnockSpectrogram : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 27 */
2024-11-12 07:34:38 -08:00
bool enableKnockSpectrogramFilter : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 28 */
2024-11-12 07:34:38 -08:00
bool unusedBit_518_28 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 29 */
2024-11-12 07:34:38 -08:00
bool unusedBit_518_29 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 30 */
2024-11-12 07:34:38 -08:00
bool unusedBit_518_30 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 05:52:39 -08:00
offset 1504 bit 31 */
2024-11-12 07:34:38 -08:00
bool unusedBit_518_31 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-03-15 09:51:03 -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.\Should be 100 once tune is better
2024-03-08 16:39:54 -08:00
* units: cycles
2024-11-12 05:52:39 -08:00
* offset 1508
2024-03-08 16:39:54 -08:00
*/
int16_t afterCrankingIACtaperDuration;
/**
* IAC Value added when coasting and transitioning into idle.
* units: percent
2024-11-12 05:52:39 -08:00
* offset 1510
2024-03-08 16:39:54 -08:00
*/
int16_t iacByTpsTaper;
/**
2024-11-12 05:52:39 -08:00
* offset 1512
2024-03-08 16:39:54 -08:00
*/
Gpio accelerometerCsPin;
/**
* Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.
* units: kph
2024-11-12 07:34:38 -08:00
* offset 1514
2024-03-08 16:39:54 -08:00
*/
uint8_t coastingFuelCutVssLow;
/**
* Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears.
* units: kph
2024-11-12 07:34:38 -08:00
* offset 1515
2024-03-08 16:39:54 -08:00
*/
uint8_t coastingFuelCutVssHigh;
/**
* 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.
* units: roc
2024-11-12 07:34:38 -08:00
* offset 1516
2024-03-08 16:39:54 -08:00
*/
float tpsAccelEnrichmentThreshold;
/**
2024-11-12 07:34:38 -08:00
* offset 1520
2024-03-08 16:39:54 -08:00
*/
brain_input_pin_e auxSpeedSensorInputPin[AUX_SPEED_SENSOR_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 1524
2024-03-08 16:39:54 -08:00
*/
uint8_t totalGearsCount;
/**
* Sets what part of injection's is controlled by the injection phase table.
2024-11-12 07:34:38 -08:00
* offset 1525
2024-03-08 16:39:54 -08:00
*/
InjectionTimingMode injectionTimingMode;
/**
* See http://rusefi.com/s/debugmode
2024-11-12 07:34:38 -08:00
* offset 1526
2024-03-08 16:39:54 -08:00
*/
debug_mode_e debugMode;
/**
* Additional idle % when fan #1 is active
* units: %
2024-11-12 07:34:38 -08:00
* offset 1527
2024-03-08 16:39:54 -08:00
*/
uint8_t fan1ExtraIdle;
/**
* Band rate for primary TTL
* units: BPs
2024-11-12 07:34:38 -08:00
* offset 1528
2024-03-08 16:39:54 -08:00
*/
uint32_t uartConsoleSerialSpeed;
/**
* For decel we simply multiply delta of TPS and tFor decel we do not use table?!
* units: roc
2024-11-12 07:34:38 -08:00
* offset 1532
2024-03-08 16:39:54 -08:00
*/
float tpsDecelEnleanmentThreshold;
/**
* Magic multiplier, we multiply delta of TPS and get fuel squirt duration
* units: coeff
2024-11-12 07:34:38 -08:00
* offset 1536
2024-03-08 16:39:54 -08:00
*/
float tpsDecelEnleanmentMultiplier;
/**
2024-09-26 09:29:33 -07:00
* How many degrees of timing advance will be reduced during the Torque Reduction Time
* units: deg
2024-11-12 07:34:38 -08:00
* offset 1540
2024-03-08 16:39:54 -08:00
*/
2024-09-26 09:29:33 -07:00
float torqueReductionIgnitionRetard;
2024-03-08 16:39:54 -08:00
/**
* units: voltage
2024-11-12 07:34:38 -08:00
* offset 1544
2024-03-08 16:39:54 -08:00
*/
float throttlePedalSecondaryUpVoltage;
/**
* Pedal in the floor
* units: voltage
2024-11-12 07:34:38 -08:00
* offset 1548
2024-03-08 16:39:54 -08:00
*/
float throttlePedalSecondaryWOTVoltage;
/**
2024-11-12 07:34:38 -08:00
* offset 1552
2024-03-08 16:39:54 -08:00
*/
can_baudrate_e canBaudRate;
/**
* 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.
2024-11-12 07:34:38 -08:00
* offset 1553
2024-03-08 16:39:54 -08:00
*/
ve_override_e veOverrideMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1554
2024-03-08 16:39:54 -08:00
*/
can_baudrate_e can2BaudRate;
/**
* 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.
2024-11-12 07:34:38 -08:00
* offset 1555
2024-03-08 16:39:54 -08:00
*/
load_override_e afrOverrideMode;
/**
* units: A
2024-11-12 07:34:38 -08:00
* offset 1556
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> mc33_hpfp_i_peak;
/**
* units: A
2024-11-12 07:34:38 -08:00
* offset 1557
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> mc33_hpfp_i_hold;
/**
* How long to deactivate power when hold current is reached before applying power again
* units: us
2024-11-12 07:34:38 -08:00
* offset 1558
2024-03-08 16:39:54 -08:00
*/
uint8_t mc33_hpfp_i_hold_off;
/**
* Maximum amount of time the solenoid can be active before assuming a programming error
* units: ms
2024-11-12 07:34:38 -08:00
* offset 1559
2024-03-08 16:39:54 -08:00
*/
uint8_t mc33_hpfp_max_hold;
/**
* Enable if DC-motor driver (H-bridge) inverts the signals (eg. RZ7899 on Hellen boards)
2024-11-12 07:34:38 -08:00
offset 1560 bit 0 */
2024-03-08 16:39:54 -08:00
bool stepperDcInvertedPins : 1 {};
/**
* Allow OpenBLT on Primary CAN
2024-11-12 07:34:38 -08:00
offset 1560 bit 1 */
2024-03-08 16:39:54 -08:00
bool canOpenBLT : 1 {};
/**
* Allow OpenBLT on Secondary CAN
2024-11-12 07:34:38 -08:00
offset 1560 bit 2 */
2024-03-08 16:39:54 -08:00
bool can2OpenBLT : 1 {};
/**
2024-10-06 18:38:43 -07:00
* Select whether to configure injector flow in volumetric flow (default, cc/min) or mass flow (g/s).
2024-11-12 07:34:38 -08:00
offset 1560 bit 3 */
2024-03-08 16:39:54 -08:00
bool injectorFlowAsMassFlow : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 4 */
2024-03-08 16:39:54 -08:00
bool boardUseCanTerminator : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 5 */
2024-03-08 16:39:54 -08:00
bool kLineDoHondaSend : 1 {};
/**
* ListenMode is about acknowledging CAN traffic on the protocol level. Different from canWriteEnabled
2024-11-12 07:34:38 -08:00
offset 1560 bit 6 */
2024-03-08 16:39:54 -08:00
bool can1ListenMode : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 7 */
2024-03-08 16:39:54 -08:00
bool can2ListenMode : 1 {};
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 8 */
bool unusedBit_555_8 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 9 */
bool unusedBit_555_9 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 10 */
bool unusedBit_555_10 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 11 */
bool unusedBit_555_11 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 12 */
bool unusedBit_555_12 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 13 */
bool unusedBit_555_13 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 14 */
bool unusedBit_555_14 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 15 */
bool unusedBit_555_15 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 16 */
bool unusedBit_555_16 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 17 */
bool unusedBit_555_17 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 18 */
bool unusedBit_555_18 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 19 */
bool unusedBit_555_19 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 20 */
bool unusedBit_555_20 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 21 */
bool unusedBit_555_21 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 22 */
bool unusedBit_555_22 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 23 */
bool unusedBit_555_23 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 24 */
bool unusedBit_555_24 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 25 */
bool unusedBit_555_25 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 26 */
bool unusedBit_555_26 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 27 */
bool unusedBit_555_27 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 28 */
bool unusedBit_555_28 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 29 */
bool unusedBit_555_29 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 30 */
bool unusedBit_555_30 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
offset 1560 bit 31 */
bool unusedBit_555_31 : 1 {};
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 1564
2024-03-08 16:39:54 -08:00
*/
uint8_t camDecoder2jzPosition;
/**
2024-11-12 07:34:38 -08:00
* offset 1565
2024-03-08 16:39:54 -08:00
*/
mc33810maxDwellTimer_e mc33810maxDwellTimer;
/**
* Duration of each test pulse
* units: ms
2024-11-12 07:34:38 -08:00
* offset 1566
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> benchTestOnTime;
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 1568
2024-03-08 16:39:54 -08:00
*/
uint8_t lambdaProtectionRestoreTps;
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 1569
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> lambdaProtectionRestoreLoad;
/**
2024-11-12 07:34:38 -08:00
* offset 1570
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e launchActivatePinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 1571
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_1571[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 1572
2024-03-08 16:39:54 -08:00
*/
Gpio can2TxPin;
/**
2024-11-12 07:34:38 -08:00
* offset 1574
2024-03-08 16:39:54 -08:00
*/
Gpio can2RxPin;
/**
2024-11-12 07:34:38 -08:00
* offset 1576
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e starterControlPinMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1577
2024-03-08 16:39:54 -08:00
*/
adc_channel_e wastegatePositionSensor;
/**
* 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.
2024-11-12 07:34:38 -08:00
* offset 1578
2024-03-08 16:39:54 -08:00
*/
load_override_e ignOverrideMode;
/**
* Select which fuel pressure sensor measures the pressure of the fuel at your injectors.
2024-11-12 07:34:38 -08:00
* offset 1579
2024-03-08 16:39:54 -08:00
*/
injector_pressure_type_e injectorPressureType;
/**
2024-11-12 07:34:38 -08:00
* offset 1580
2024-03-08 16:39:54 -08:00
*/
output_pin_e hpfpValvePin;
/**
2024-11-12 07:34:38 -08:00
* offset 1582
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e hpfpValvePinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 1583
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_1583[1];
2024-03-08 16:39:54 -08:00
/**
* MAP value above which fuel is cut in case of overboost.
* Set to 0 to disable overboost cut.
* units: kPa (absolute)
2024-11-12 07:34:38 -08:00
* offset 1584
2024-03-08 16:39:54 -08:00
*/
float boostCutPressure;
/**
* units: kg/h
2024-11-12 07:34:38 -08:00
* offset 1588
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 5> tchargeBins[16];
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 1604
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 100, 1> tchargeValues[16];
/**
* Fixed timing, useful for TDC testing
* units: deg
2024-11-12 07:34:38 -08:00
* offset 1620
2024-03-08 16:39:54 -08:00
*/
float fixedTiming;
/**
* MAP voltage for low point
* units: v
2024-11-12 07:34:38 -08:00
* offset 1624
2024-03-08 16:39:54 -08:00
*/
float mapLowValueVoltage;
/**
* MAP voltage for low point
* units: v
2024-11-12 07:34:38 -08:00
* offset 1628
2024-03-08 16:39:54 -08:00
*/
float mapHighValueVoltage;
/**
* EGO value correction
* units: value
2024-11-12 07:34:38 -08:00
* offset 1632
2024-03-08 16:39:54 -08:00
*/
float egoValueShift;
/**
* VVT output solenoid pin for this cam
2024-11-12 07:34:38 -08:00
* offset 1636
2024-03-08 16:39:54 -08:00
*/
output_pin_e vvtPins[CAM_INPUTS_COUNT];
/**
* This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling.
* units: percent
2024-11-12 07:34:38 -08:00
* offset 1644
2024-03-08 16:39:54 -08:00
*/
int crankingIACposition;
/**
2024-11-12 07:34:38 -08:00
* offset 1648
2024-03-08 16:39:54 -08:00
*/
float tChargeMinRpmMinTps;
/**
2024-11-12 07:34:38 -08:00
* offset 1652
2024-03-08 16:39:54 -08:00
*/
float tChargeMinRpmMaxTps;
/**
2024-11-12 07:34:38 -08:00
* offset 1656
2024-03-08 16:39:54 -08:00
*/
float tChargeMaxRpmMinTps;
/**
2024-11-12 07:34:38 -08:00
* offset 1660
2024-03-08 16:39:54 -08:00
*/
float tChargeMaxRpmMaxTps;
/**
2024-11-12 07:34:38 -08:00
* offset 1664
2024-03-08 16:39:54 -08:00
*/
pwm_freq_t vvtOutputFrequency;
/**
* Minimim timing advance allowed. No spark on any cylinder will ever fire after this angle BTDC. For example, setting -10 here means no spark ever fires later than 10 deg ATDC. Note that this only concerns the primary spark: any trailing sparks or multispark may violate this constraint.
* units: deg BTDC
2024-11-12 07:34:38 -08:00
* offset 1666
2024-03-08 16:39:54 -08:00
*/
int8_t minimumIgnitionTiming;
/**
* Maximum timing advance allowed. No spark on any cylinder will ever fire before this angle BTDC. For example, setting 45 here means no spark ever fires earlier than 45 deg BTDC
* units: deg BTDC
2024-11-12 07:34:38 -08:00
* offset 1667
2024-03-08 16:39:54 -08:00
*/
int8_t maximumIgnitionTiming;
/**
* units: Hz
2024-11-12 07:34:38 -08:00
* offset 1668
2024-03-08 16:39:54 -08:00
*/
int alternatorPwmFrequency;
/**
* set vvt_mode X
2024-11-12 07:34:38 -08:00
* offset 1672
2024-03-08 16:39:54 -08:00
*/
vvt_mode_e vvtMode[CAMS_PER_BANK];
/**
* Additional idle % when fan #2 is active
* units: %
2024-11-12 07:34:38 -08:00
* offset 1674
2024-03-08 16:39:54 -08:00
*/
uint8_t fan2ExtraIdle;
/**
* Delay to allow fuel pressure to build before firing the priming pulse.
* units: sec
2024-11-12 07:34:38 -08:00
* offset 1675
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 100, 1> primingDelay;
/**
2024-11-12 07:34:38 -08:00
* offset 1676
2024-03-08 16:39:54 -08:00
*/
adc_channel_e auxAnalogInputs[LUA_ANALOG_INPUT_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 1684
2024-03-08 16:39:54 -08:00
*/
output_pin_e trailingCoilPins[MAX_CYLINDER_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 1708
2024-03-08 16:39:54 -08:00
*/
tle8888_mode_e tle8888mode;
/**
2024-11-12 07:34:38 -08:00
* offset 1709
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e accelerometerCsPinMode;
/**
* 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
2024-11-12 07:34:38 -08:00
* offset 1710
2024-03-08 16:39:54 -08:00
*/
injector_compensation_mode_e injectorCompensationMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1711
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e fan2PinMode;
/**
* 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.
* units: kPa
2024-11-12 07:34:38 -08:00
* offset 1712
2024-03-08 16:39:54 -08:00
*/
float fuelReferencePressure;
/**
2024-11-12 07:34:38 -08:00
* offset 1716
2024-03-08 16:39:54 -08:00
*/
ThermistorConf auxTempSensor1;
/**
2024-11-12 07:34:38 -08:00
* offset 1748
2024-03-08 16:39:54 -08:00
*/
ThermistorConf auxTempSensor2;
/**
* units: Deg
2024-11-12 07:34:38 -08:00
* offset 1780
2024-03-08 16:39:54 -08:00
*/
int16_t knockSamplingDuration;
/**
* units: Hz
2024-11-12 07:34:38 -08:00
* offset 1782
2024-03-08 16:39:54 -08:00
*/
int16_t etbFreq;
/**
2024-11-12 07:34:38 -08:00
* offset 1784
2024-03-08 16:39:54 -08:00
*/
pid_s etbWastegatePid;
/**
* For micro-stepping, make sure that PWM frequency (etbFreq) is high enough
2024-11-12 07:34:38 -08:00
* offset 1804
2024-03-08 16:39:54 -08:00
*/
stepper_num_micro_steps_e stepperNumMicroSteps;
/**
* Use to limit the current when the stepper motor is idle, not moving (100% = no limit)
* units: %
2024-11-12 07:34:38 -08:00
* offset 1805
2024-03-08 16:39:54 -08:00
*/
uint8_t stepperMinDutyCycle;
/**
* Use to limit the max.current through the stepper motor (100% = no limit)
* units: %
2024-11-12 07:34:38 -08:00
* offset 1806
2024-03-08 16:39:54 -08:00
*/
uint8_t stepperMaxDutyCycle;
/**
2024-11-12 07:34:38 -08:00
* offset 1807
2024-03-08 16:39:54 -08:00
*/
spi_device_e sdCardSpiDevice;
/**
* per-cylinder ignition and fueling timing correction for uneven engines
* units: deg
2024-11-12 07:34:38 -08:00
* offset 1808
2024-03-08 16:39:54 -08:00
*/
angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT];
/**
* units: seconds
2024-11-12 07:34:38 -08:00
* offset 1856
2024-03-08 16:39:54 -08:00
*/
float idlePidActivationTime;
/**
2024-11-12 07:34:38 -08:00
* offset 1860
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi1SckMode;
/**
* Modes count be used for 3v<>5v integration using pull-ups/pull-downs etc.
2024-11-12 07:34:38 -08:00
* offset 1861
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi1MosiMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1862
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi1MisoMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1863
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi2SckMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1864
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi2MosiMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1865
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi2MisoMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1866
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi3SckMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1867
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi3MosiMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1868
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi3MisoMode;
/**
2024-11-12 07:34:38 -08:00
* offset 1869
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e stepperEnablePinMode;
/**
* ResetB
2024-11-12 07:34:38 -08:00
* offset 1870
2024-03-08 16:39:54 -08:00
*/
Gpio mc33816_rstb;
/**
2024-11-12 07:34:38 -08:00
* offset 1872
2024-03-08 16:39:54 -08:00
*/
Gpio mc33816_driven;
/**
* Brake pedal switch
2024-11-12 07:34:38 -08:00
* offset 1874
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e brakePedalPin;
/**
* VVT output PID
* TODO: rename to vvtPid
2024-11-12 07:34:38 -08:00
* offset 1876
2024-03-08 16:39:54 -08:00
*/
pid_s auxPid[CAMS_PER_BANK];
/**
2024-11-12 07:34:38 -08:00
* offset 1916
2024-03-08 16:39:54 -08:00
*/
float injectorCorrectionPolynomial[8];
/**
* units: C
2024-11-12 07:34:38 -08:00
* offset 1948
2024-03-08 16:39:54 -08:00
*/
int8_t primeBins[PRIME_CURVE_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 1956
2024-03-08 16:39:54 -08:00
*/
linear_sensor_s oilPressure;
/**
2024-11-12 07:34:38 -08:00
* offset 1976
2024-03-08 16:39:54 -08:00
*/
spi_device_e accelerometerSpiDevice;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 1977
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_1977[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 1978
2024-03-08 16:39:54 -08:00
*/
output_pin_e fan2Pin;
/**
* Cooling fan turn-on temperature threshold, in Celsius
* units: deg C
2024-11-12 07:34:38 -08:00
* offset 1980
2024-03-08 16:39:54 -08:00
*/
uint8_t fan2OnTemperature;
/**
* Cooling fan turn-off temperature threshold, in Celsius
* units: deg C
2024-11-12 07:34:38 -08:00
* offset 1981
2024-03-08 16:39:54 -08:00
*/
uint8_t fan2OffTemperature;
/**
2024-11-12 07:34:38 -08:00
* offset 1982
2024-03-08 16:39:54 -08:00
*/
Gpio stepperEnablePin;
/**
2024-11-12 07:34:38 -08:00
* offset 1984
2024-03-08 16:39:54 -08:00
*/
Gpio tle8888_cs;
/**
2024-11-12 07:34:38 -08:00
* offset 1986
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e tle8888_csPinMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 1987
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_1987[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 1988
2024-03-08 16:39:54 -08:00
*/
Gpio mc33816_cs;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 1990
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_1990[2];
2024-03-08 16:39:54 -08:00
/**
* units: hz
2024-11-12 07:34:38 -08:00
* offset 1992
2024-03-08 16:39:54 -08:00
*/
float auxFrequencyFilter;
/**
2024-11-12 07:34:38 -08:00
* offset 1996
2024-03-08 16:39:54 -08:00
*/
sent_input_pin_e sentInputPins[SENT_INPUT_COUNT];
/**
* This sets the RPM above which fuel cut is active.
* units: rpm
2024-11-12 07:34:38 -08:00
* offset 1998
2024-03-08 16:39:54 -08:00
*/
int16_t coastingFuelCutRpmHigh;
/**
* This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle
* units: rpm
2024-11-12 07:34:38 -08:00
* offset 2000
2024-03-08 16:39:54 -08:00
*/
int16_t coastingFuelCutRpmLow;
/**
* Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position.
* units: %
2024-11-12 07:34:38 -08:00
* offset 2002
2024-03-08 16:39:54 -08:00
*/
int16_t coastingFuelCutTps;
/**
* Fuel cutoff is disabled when the engine is cold.
* units: C
2024-11-12 07:34:38 -08:00
* offset 2004
2024-03-08 16:39:54 -08:00
*/
int16_t coastingFuelCutClt;
/**
* Increases PID reaction for RPM<target by adding extra percent to PID-error
* units: %
2024-11-12 07:34:38 -08:00
* offset 2006
2024-03-08 16:39:54 -08:00
*/
int16_t pidExtraForLowRpm;
/**
* MAP value above which fuel injection is re-enabled.
* units: kPa
2024-11-12 07:34:38 -08:00
* offset 2008
2024-03-08 16:39:54 -08:00
*/
int16_t coastingFuelCutMap;
/**
2024-03-20 14:09:51 -07:00
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 2010
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_2010[2];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 2012
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
linear_sensor_s highPressureFuel;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 2032
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
linear_sensor_s lowPressureFuel;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 2052
2024-03-08 16:39:54 -08:00
*/
gppwm_note_t scriptCurveName[SCRIPT_CURVE_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 2148
2024-03-08 16:39:54 -08:00
*/
gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 2212
2024-03-08 16:39:54 -08:00
*/
gppwm_note_t scriptSettingName[SCRIPT_SETTING_COUNT];
/**
* Heat transfer coefficient at zero flow.
* 0 means the air charge is fully heated to the same temperature as CLT.
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.
2024-11-12 07:34:38 -08:00
* offset 2340
2024-03-08 16:39:54 -08:00
*/
float tChargeAirCoefMin;
/**
* Heat transfer coefficient at high flow, as defined by "max air flow".
* 0 means the air charge is fully heated to the same temperature as CLT.
* 1 means the air charge gains no heat, and enters the cylinder at the temperature measured by IAT.
2024-11-12 07:34:38 -08:00
* offset 2344
2024-03-08 16:39:54 -08:00
*/
float tChargeAirCoefMax;
/**
* High flow point for heat transfer estimation.
* Set this to perhaps 50-75% of your maximum airflow at wide open throttle.
* units: kg/h
2024-11-12 07:34:38 -08:00
* offset 2348
2024-03-08 16:39:54 -08:00
*/
float tChargeAirFlowMax;
/**
* Maximum allowed rate of increase allowed for the estimated charge temperature
* units: deg/sec
2024-11-12 07:34:38 -08:00
* offset 2352
2024-03-08 16:39:54 -08:00
*/
float tChargeAirIncrLimit;
/**
* Maximum allowed rate of decrease allowed for the estimated charge temperature
* units: deg/sec
2024-11-12 07:34:38 -08:00
* offset 2356
2024-03-08 16:39:54 -08:00
*/
float tChargeAirDecrLimit;
/**
2024-11-12 07:34:38 -08:00
* offset 2360
2024-03-08 16:39:54 -08:00
*/
float hip9011Gain;
/**
* iTerm min value
2024-11-12 07:34:38 -08:00
* offset 2364
2024-03-08 16:39:54 -08:00
*/
int16_t etb_iTermMin;
/**
* iTerm max value
2024-11-12 07:34:38 -08:00
* offset 2366
2024-03-08 16:39:54 -08:00
*/
int16_t etb_iTermMax;
/**
* See useIdleTimingPidControl
2024-11-12 07:34:38 -08:00
* offset 2368
2024-03-08 16:39:54 -08:00
*/
pid_s idleTimingPid;
/**
* When entering idle, and the PID settings are aggressive, it's good to make a soft entry upon entering closed loop
2024-11-12 07:34:38 -08:00
* offset 2388
2024-03-08 16:39:54 -08:00
*/
float idleTimingSoftEntryTime;
/**
2024-11-12 07:34:38 -08:00
* offset 2392
2024-03-08 16:39:54 -08:00
*/
2024-09-27 15:37:51 -07:00
pin_input_mode_e torqueReductionTriggerPinMode;
/**
2024-11-12 07:34:38 -08:00
* offset 2393
2024-09-27 15:37:51 -07:00
*/
torqueReductionActivationMode_e torqueReductionActivationMode;
2024-03-08 16:39:54 -08:00
/**
* A delay in cycles between fuel-enrich. portions
* units: cycles
2024-11-12 07:34:38 -08:00
* offset 2394
2024-03-08 16:39:54 -08:00
*/
int16_t tpsAccelFractionPeriod;
/**
* A fraction divisor: 1 or less = entire portion at once, or split into diminishing fractions
* units: coef
2024-11-12 07:34:38 -08:00
* offset 2396
2024-03-08 16:39:54 -08:00
*/
float tpsAccelFractionDivisor;
/**
2024-11-12 07:34:38 -08:00
* offset 2400
2024-03-08 16:39:54 -08:00
*/
spi_device_e tle8888spiDevice;
/**
2024-11-12 07:34:38 -08:00
* offset 2401
2024-03-08 16:39:54 -08:00
*/
spi_device_e mc33816spiDevice;
/**
* iTerm min value
2024-11-12 07:34:38 -08:00
* offset 2402
2024-03-08 16:39:54 -08:00
*/
int16_t idlerpmpid_iTermMin;
/**
2024-11-12 07:34:38 -08:00
* offset 2404
2024-03-08 16:39:54 -08:00
*/
spi_device_e tle6240spiDevice;
/**
* Stoichiometric ratio for your primary fuel. When Flex Fuel is enabled, this value is used when the Flex Fuel sensor indicates E0.
* E0 = 14.7
* E10 = 14.1
* E85 = 9.9
* E100 = 9.0
* units: :1
2024-11-12 07:34:38 -08:00
* offset 2405
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> stoichRatioPrimary;
/**
* iTerm max value
2024-11-12 07:34:38 -08:00
* offset 2406
2024-03-08 16:39:54 -08:00
*/
int16_t idlerpmpid_iTermMax;
/**
* This sets the range of the idle control on the ETB. At 100% idle position, the value specified here sets the base ETB position.
* units: %
2024-11-12 07:34:38 -08:00
* offset 2408
2024-03-08 16:39:54 -08:00
*/
float etbIdleThrottleRange;
/**
* Select which fuel correction bank this cylinder belongs to. Group cylinders that share the same O2 sensor
2024-11-12 07:34:38 -08:00
* offset 2412
2024-03-08 16:39:54 -08:00
*/
uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT];
/**
* units: mg
2024-11-12 07:34:38 -08:00
* offset 2424
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 5> primeValues[PRIME_CURVE_COUNT];
/**
* Trigger comparator center point voltage
* units: V
2024-11-12 07:34:38 -08:00
* offset 2432
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 50, 1> triggerCompCenterVolt;
/**
* Trigger comparator hysteresis voltage (Min)
* units: V
2024-11-12 07:34:38 -08:00
* offset 2433
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 50, 1> triggerCompHystMin;
/**
* Trigger comparator hysteresis voltage (Max)
* units: V
2024-11-12 07:34:38 -08:00
* offset 2434
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 50, 1> triggerCompHystMax;
/**
* VR-sensor saturation RPM
* units: RPM
2024-11-12 07:34:38 -08:00
* offset 2435
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 50> triggerCompSensorSatRpm;
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 2436
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE];
/**
* units: RPM
2024-11-12 07:34:38 -08:00
* offset 2448
2024-03-08 16:39:54 -08:00
*/
uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE];
/**
2024-11-12 07:34:38 -08:00
* offset 2454
2024-03-08 16:39:54 -08:00
*/
int8_t disableFan1AtSpeed;
/**
2024-11-12 07:34:38 -08:00
* offset 2455
2024-03-08 16:39:54 -08:00
*/
int8_t disableFan2AtSpeed;
/**
2024-11-12 07:34:38 -08:00
* offset 2456
2024-03-08 16:39:54 -08:00
*/
can_vss_nbc_e canVssNbcType;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 2458
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_2458[2];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 2460
2024-03-08 16:39:54 -08:00
*/
gppwm_channel gppwm[GPPWM_CHANNELS];
/**
* Boost Current
* units: mA
2024-11-12 07:34:38 -08:00
* offset 2892
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_i_boost;
/**
* Peak Current
* units: mA
2024-11-12 07:34:38 -08:00
* offset 2894
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_i_peak;
/**
* Hold Current
* units: mA
2024-11-12 07:34:38 -08:00
* offset 2896
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_i_hold;
/**
* Maximum allowed boost phase time. If the injector current doesn't reach the threshold before this time elapses, it is assumed that the injector is missing or has failed open circuit.
* units: us
2024-11-12 07:34:38 -08:00
* offset 2898
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_max_boost;
/**
* units: us
2024-11-12 07:34:38 -08:00
* offset 2900
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_peak_off;
/**
* Peak phase duration
* units: us
2024-11-12 07:34:38 -08:00
* offset 2902
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_peak_tot;
/**
* units: us
2024-11-12 07:34:38 -08:00
* offset 2904
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_bypass;
/**
* units: us
2024-11-12 07:34:38 -08:00
* offset 2906
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_hold_off;
/**
* Hold phase duration
* units: us
2024-11-12 07:34:38 -08:00
* offset 2908
2024-03-08 16:39:54 -08:00
*/
uint16_t mc33_t_hold_tot;
/**
2024-11-12 07:34:38 -08:00
* offset 2910
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e tcuUpshiftButtonPinMode;
/**
2024-11-12 07:34:38 -08:00
* offset 2911
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e tcuDownshiftButtonPinMode;
/**
2024-11-12 07:34:38 -08:00
* offset 2912
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e acSwitchMode;
/**
2024-11-12 07:34:38 -08:00
* offset 2913
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT];
2024-03-08 16:39:54 -08:00
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 2919
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_2919[1];
2024-03-08 16:39:54 -08:00
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 2920
2024-03-08 16:39:54 -08:00
*/
float triggerGapOverrideFrom[GAP_TRACKING_LENGTH];
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 2992
2024-03-08 16:39:54 -08:00
*/
float triggerGapOverrideTo[GAP_TRACKING_LENGTH];
/**
* Below this RPM, use camshaft information to synchronize the crank's position for full sequential operation. Use this if your cam sensor does weird things at high RPM. Set to 0 to disable, and always use cam to help sync crank.
* units: rpm
2024-11-12 07:34:38 -08:00
* offset 3064
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 50> maxCamPhaseResolveRpm;
/**
* Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust...
* units: sec
2024-11-12 07:34:38 -08:00
* offset 3065
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> dfcoDelay;
/**
* Delay before engaging the AC compressor. Set to 0 to engage immediately with no delay. Use this to prevent bogging at idle when AC engages.
* units: sec
2024-11-12 07:34:38 -08:00
* offset 3066
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> acDelay;
/**
2024-11-12 07:34:38 -08:00
* offset 3067
2024-03-08 16:39:54 -08:00
*/
2024-03-20 14:09:51 -07:00
tChargeMode_e tChargeMode;
2024-03-08 16:39:54 -08:00
/**
* units: mg
2024-11-12 07:34:38 -08:00
* offset 3068
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> fordInjectorSmallPulseBreakPoint;
/**
2024-10-09 17:10:35 -07:00
* Threshold in ETB error (target vs. actual) above which the jam timer is started. If the timer reaches the time specified in the jam detection timeout period, the throttle is considered jammed, and engine operation limited.
2024-03-08 16:39:54 -08:00
* units: %
2024-11-12 07:34:38 -08:00
* offset 3070
2024-03-08 16:39:54 -08:00
*/
2024-10-09 17:10:35 -07:00
uint8_t etbJamDetectThreshold;
2024-03-08 16:39:54 -08:00
/**
* units: lobes/cam
2024-11-12 07:34:38 -08:00
* offset 3071
2024-03-08 16:39:54 -08:00
*/
uint8_t hpfpCamLobes;
/**
2024-11-12 07:34:38 -08:00
* offset 3072
2024-03-08 16:39:54 -08:00
*/
hpfp_cam_e hpfpCam;
/**
2024-06-09 12:12:46 -07:00
* Low engine speed for A/C. Larger engines can survive lower values
* units: RPM
2024-11-12 07:34:38 -08:00
* offset 3073
2024-03-08 16:39:54 -08:00
*/
2024-06-09 12:12:46 -07:00
scaled_channel<int8_t, 1, 10> acLowRpmLimit;
2024-03-08 16:39:54 -08:00
/**
* If the requested activation time is below this angle, don't bother running the pump
* units: deg
2024-11-12 07:34:38 -08:00
* offset 3074
2024-03-08 16:39:54 -08:00
*/
uint8_t hpfpMinAngle;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3075
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3075[1];
2024-03-08 16:39:54 -08:00
/**
* Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm.
* units: cc
2024-11-12 07:34:38 -08:00
* offset 3076
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpPumpVolume;
/**
* How long to keep the valve activated (in order to allow the pump to build pressure and keep the valve open on its own)
* units: deg
2024-11-12 07:34:38 -08:00
* offset 3078
2024-03-08 16:39:54 -08:00
*/
uint8_t hpfpActivationAngle;
/**
2024-11-12 07:34:38 -08:00
* offset 3079
2024-03-08 16:39:54 -08:00
*/
uint8_t issFilterReciprocal;
/**
* units: %/kPa
2024-11-12 07:34:38 -08:00
* offset 3080
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpPidP;
/**
* units: %/kPa/lobe
2024-11-12 07:34:38 -08:00
* offset 3082
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100000, 1> hpfpPidI;
/**
* 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.
* units: kPa/s
2024-11-12 07:34:38 -08:00
* offset 3084
2024-03-08 16:39:54 -08:00
*/
uint16_t hpfpTargetDecay;
/**
2024-11-12 07:34:38 -08:00
* offset 3086
2024-03-08 16:39:54 -08:00
*/
output_pin_e stepper_raw_output[4];
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 3094
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> gearRatio[TCU_GEAR_COUNT];
/**
* We need to give engine time to build oil pressure without diverting it to VVT
* units: ms
2024-11-12 07:34:38 -08:00
* offset 3114
2024-03-08 16:39:54 -08:00
*/
uint16_t vvtActivationDelayMs;
/**
* units: Nm
2024-11-12 07:34:38 -08:00
* offset 3116
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE];
/**
* units: RPM
2024-11-12 07:34:38 -08:00
* offset 3152
2024-03-08 16:39:54 -08:00
*/
uint16_t torqueRpmBins[TORQUE_CURVE_SIZE];
/**
* units: Load
2024-11-12 07:34:38 -08:00
* offset 3164
2024-03-08 16:39:54 -08:00
*/
uint16_t torqueLoadBins[TORQUE_CURVE_SIZE];
/**
2024-11-12 07:34:38 -08:00
* offset 3176
2024-03-08 16:39:54 -08:00
*/
GearControllerMode gearControllerMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3177
2024-03-08 16:39:54 -08:00
*/
TransmissionControllerMode transmissionControllerMode;
/**
2024-10-22 23:11:00 -07:00
* During revolution where ACR should be disabled at what specific angle to disengage
2024-03-08 16:39:54 -08:00
* units: deg
2024-11-12 07:34:38 -08:00
* offset 3178
2024-03-08 16:39:54 -08:00
*/
uint16_t acrDisablePhase;
/**
2024-11-12 07:34:38 -08:00
* offset 3180
2024-03-08 16:39:54 -08:00
*/
linear_sensor_s auxLinear1;
/**
2024-11-12 07:34:38 -08:00
* offset 3200
2024-03-08 16:39:54 -08:00
*/
linear_sensor_s auxLinear2;
/**
2024-11-12 07:34:38 -08:00
* offset 3220
2024-03-08 16:39:54 -08:00
*/
output_pin_e tcu_tcc_onoff_solenoid;
/**
2024-11-12 07:34:38 -08:00
* offset 3222
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e tcu_tcc_onoff_solenoid_mode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3223
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3223[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3224
2024-03-08 16:39:54 -08:00
*/
output_pin_e tcu_tcc_pwm_solenoid;
/**
2024-11-12 07:34:38 -08:00
* offset 3226
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e tcu_tcc_pwm_solenoid_mode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3227
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3227[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3228
2024-03-08 16:39:54 -08:00
*/
pwm_freq_t tcu_tcc_pwm_solenoid_freq;
/**
2024-11-12 07:34:38 -08:00
* offset 3230
2024-03-08 16:39:54 -08:00
*/
output_pin_e tcu_pc_solenoid_pin;
/**
2024-11-12 07:34:38 -08:00
* offset 3232
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e tcu_pc_solenoid_pin_mode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3233
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3233[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3234
2024-03-08 16:39:54 -08:00
*/
pwm_freq_t tcu_pc_solenoid_freq;
/**
2024-11-12 07:34:38 -08:00
* offset 3236
2024-03-08 16:39:54 -08:00
*/
output_pin_e tcu_32_solenoid_pin;
/**
2024-11-12 07:34:38 -08:00
* offset 3238
2024-03-08 16:39:54 -08:00
*/
pin_output_mode_e tcu_32_solenoid_pin_mode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3239
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3239[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3240
2024-03-08 16:39:54 -08:00
*/
pwm_freq_t tcu_32_solenoid_freq;
/**
2024-11-12 07:34:38 -08:00
* offset 3242
2024-03-08 16:39:54 -08:00
*/
output_pin_e acrPin2;
/**
2024-10-09 17:10:35 -07:00
* Set a minimum allowed target position to avoid slamming/driving against the hard mechanical stop in the throttle.
2024-03-08 16:39:54 -08:00
* units: %
2024-11-12 07:34:38 -08:00
* offset 3244
2024-03-08 16:39:54 -08:00
*/
2024-10-09 17:10:35 -07:00
scaled_channel<uint8_t, 10, 1> etbMinimumPosition;
2024-03-08 16:39:54 -08:00
/**
2024-10-09 17:10:35 -07:00
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3245
2024-10-09 17:10:35 -07:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3245[1];
2024-10-09 17:10:35 -07:00
/**
2024-11-12 07:34:38 -08:00
* offset 3246
2024-03-08 16:39:54 -08:00
*/
uint16_t tuneHidingKey;
/**
2024-10-30 21:11:09 -07:00
* Individual charaters are accessible using vin(index) Lua function
2024-11-12 07:34:38 -08:00
* offset 3248
2024-03-08 16:39:54 -08:00
*/
vin_number_t vinNumber;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3265
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3265[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3266
2024-03-08 16:39:54 -08:00
*/
uint16_t highSpeedOffsets[HIGH_SPEED_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 3330
2024-03-08 16:39:54 -08:00
*/
fuel_pressure_sensor_mode_e fuelPressureSensorMode;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3331
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3331[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3332
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT];
/**
* units: rpm
2024-11-12 07:34:38 -08:00
* offset 3348
2024-03-08 16:39:54 -08:00
*/
int16_t ALSMinRPM;
/**
* units: rpm
2024-11-12 07:34:38 -08:00
* offset 3350
2024-03-08 16:39:54 -08:00
*/
int16_t ALSMaxRPM;
/**
* units: sec
2024-11-12 07:34:38 -08:00
* offset 3352
2024-03-08 16:39:54 -08:00
*/
int16_t ALSMaxDuration;
/**
* units: C
2024-11-12 07:34:38 -08:00
* offset 3354
2024-03-08 16:39:54 -08:00
*/
int8_t ALSMinCLT;
/**
* units: C
2024-11-12 07:34:38 -08:00
* offset 3355
2024-03-08 16:39:54 -08:00
*/
int8_t ALSMaxCLT;
/**
2024-11-12 07:34:38 -08:00
* offset 3356
2024-03-08 16:39:54 -08:00
*/
uint8_t alsMinTimeBetween;
/**
2024-11-12 07:34:38 -08:00
* offset 3357
2024-03-08 16:39:54 -08:00
*/
uint8_t alsEtbPosition;
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 3358
2024-03-08 16:39:54 -08:00
*/
uint8_t acRelayAlternatorDutyAdder;
/**
2024-11-12 07:34:38 -08:00
* offset 3359
2024-03-08 16:39:54 -08:00
*/
SentEtbType sentEtbType;
/**
2024-11-12 07:34:38 -08:00
* offset 3360
2024-03-08 16:39:54 -08:00
*/
uint16_t customSentTpsMin;
2024-10-09 17:10:35 -07:00
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3362
2024-10-09 17:10:35 -07:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3362[2];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 3364
2024-03-08 16:39:54 -08:00
*/
int ALSIdleAdd;
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 3368
2024-03-08 16:39:54 -08:00
*/
int ALSEtbAdd;
/**
2024-11-12 07:34:38 -08:00
* offset 3372
2024-03-08 16:39:54 -08:00
*/
float ALSSkipRatio;
/**
2024-08-20 14:03:42 -07:00
* Hysterisis: if Pressure High Disable is 240kpa, and acPressureEnableHyst is 20, when the ECU sees 240kpa, A/C will be disabled, and stay disabled until 240-20=220kpa is reached
* units: kPa (absolute)
2024-11-12 07:34:38 -08:00
* offset 3376
2024-03-08 16:39:54 -08:00
*/
2024-08-20 14:03:42 -07:00
scaled_channel<uint8_t, 2, 1> acPressureEnableHyst;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3377
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e ALSActivatePinMode;
/**
* For Ford TPS, use 53%. For Toyota ETCS-i, use ~65%
* units: %
2024-11-12 07:34:38 -08:00
* offset 3378
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 2, 1> tpsSecondaryMaximum;
/**
* For Toyota ETCS-i, use ~69%
* units: %
2024-11-12 07:34:38 -08:00
* offset 3379
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 2, 1> ppsSecondaryMaximum;
/**
2024-11-12 07:34:38 -08:00
* offset 3380
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e luaDigitalInputPinModes[LUA_DIGITAL_INPUT_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 3388
2024-03-08 16:39:54 -08:00
*/
uint16_t customSentTpsMax;
/**
2024-11-12 07:34:38 -08:00
* offset 3390
2024-03-08 16:39:54 -08:00
*/
uint16_t kLineBaudRate;
/**
2024-11-12 07:34:38 -08:00
* offset 3392
2024-03-08 16:39:54 -08:00
*/
CanGpioType canGpioType;
/**
2024-11-12 07:34:38 -08:00
* offset 3393
2024-03-08 16:39:54 -08:00
*/
UiMode uiMode;
/**
* Crank angle ATDC of first lobe peak
* units: deg
2024-11-12 07:34:38 -08:00
* offset 3394
2024-03-08 16:39:54 -08:00
*/
int16_t hpfpPeakPos;
/**
* units: us
2024-11-12 07:34:38 -08:00
* offset 3396
2024-03-08 16:39:54 -08:00
*/
int16_t kLinePeriodUs;
/**
* Window that the correction will be added throughout (example, if rpm limit is 7000, and rpmSoftLimitWindowSize is 200, the corrections activate at 6800RPM, creating a 200rpm window)
* units: RPM
2024-11-12 07:34:38 -08:00
* offset 3398
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> rpmSoftLimitWindowSize;
/**
* Degrees of timing REMOVED from actual timing during soft RPM limit window
* units: deg
2024-11-12 07:34:38 -08:00
* offset 3399
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 5, 1> rpmSoftLimitTimingRetard;
/**
* % of fuel ADDED during window
* units: %
2024-11-12 07:34:38 -08:00
* offset 3400
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 5, 1> rpmSoftLimitFuelAdded;
/**
* Hysterisis: if the hard limit is 7200rpm and rpmHardLimitHyst is 200rpm, then when the ECU sees 7200rpm, fuel/ign will cut, and stay cut until 7000rpm (7200-200) is reached
* units: RPM
2024-11-12 07:34:38 -08:00
* offset 3401
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> rpmHardLimitHyst;
/**
* Time between bench test pulses
* units: ms
2024-11-12 07:34:38 -08:00
* offset 3402
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 10, 1> benchTestOffTime;
/**
* Hysterisis: if hard cut is 240kpa, and boostCutPressureHyst is 20, when the ECU sees 240kpa, fuel/ign will cut, and stay cut until 240-20=220kpa is reached
* units: kPa (absolute)
2024-11-12 07:34:38 -08:00
* offset 3404
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 2, 1> boostCutPressureHyst;
/**
2024-03-09 12:29:41 -08:00
* Boost duty cycle modified by gear
2024-03-08 16:39:54 -08:00
* units: %
2024-11-12 07:34:38 -08:00
* offset 3405
2024-03-08 16:39:54 -08:00
*/
2024-03-09 12:29:41 -08:00
scaled_channel<int8_t, 2, 1> gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT];
2024-03-08 16:39:54 -08:00
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3415
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3415[1];
2024-03-08 16:39:54 -08:00
/**
* How many test bench pulses do you want
2024-11-12 07:34:38 -08:00
* offset 3416
2024-03-08 16:39:54 -08:00
*/
uint32_t benchTestCount;
/**
* How long initial IAC adder is held before starting to decay.
* units: seconds
2024-11-12 07:34:38 -08:00
* offset 3420
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> iacByTpsHoldTime;
/**
* How long it takes to remove initial IAC adder to return to normal idle.
* units: seconds
2024-11-12 07:34:38 -08:00
* offset 3421
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> iacByTpsDecayTime;
/**
2024-11-12 07:34:38 -08:00
* offset 3422
2024-03-08 16:39:54 -08:00
*/
switch_input_pin_e tcu_rangeInput[RANGE_INPUT_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 3434
2024-03-08 16:39:54 -08:00
*/
pin_input_mode_e tcu_rangeInputMode[RANGE_INPUT_COUNT];
/**
* Scale the reported vehicle speed value from CAN. Example: Parameter set to 1.1, CAN VSS reports 50kph, ECU will report 55kph instead.
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 3440
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 10000, 1> canVssScaling;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3442
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3442[2];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3444
2024-03-08 16:39:54 -08:00
*/
ThermistorConf oilTempSensor;
/**
2024-11-12 07:34:38 -08:00
* offset 3476
2024-03-08 16:39:54 -08:00
*/
ThermistorConf fuelTempSensor;
/**
2024-11-12 07:34:38 -08:00
* offset 3508
2024-03-08 16:39:54 -08:00
*/
ThermistorConf ambientTempSensor;
/**
2024-11-12 07:34:38 -08:00
* offset 3540
2024-03-08 16:39:54 -08:00
*/
ThermistorConf compressorDischargeTemperature;
/**
* Place the sensor before the throttle, but after any turbocharger/supercharger and intercoolers if fitted. Uses the same calibration as the MAP sensor.
2024-11-12 07:34:38 -08:00
* offset 3572
2024-03-08 16:39:54 -08:00
*/
adc_channel_e throttleInletPressureChannel;
/**
* Place the sensor after the turbocharger/supercharger, but before any intercoolers if fitted. Uses the same calibration as the MAP sensor.
2024-11-12 07:34:38 -08:00
* offset 3573
2024-03-08 16:39:54 -08:00
*/
adc_channel_e compressorDischargePressureChannel;
/**
2024-11-12 07:34:38 -08:00
* offset 3574
2024-03-08 16:39:54 -08:00
*/
Gpio dacOutputPins[DAC_OUTPUT_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 3578
2024-03-08 16:39:54 -08:00
*/
output_pin_e speedometerOutputPin;
/**
* Number of speedometer pulses per kilometer travelled.
2024-11-12 07:34:38 -08:00
* offset 3580
2024-03-08 16:39:54 -08:00
*/
uint16_t speedometerPulsePerKm;
/**
2024-11-12 07:34:38 -08:00
* offset 3582
2024-03-08 16:39:54 -08:00
*/
uint8_t simulatorCamPosition[CAM_INPUTS_COUNT];
/**
2024-11-12 07:34:38 -08:00
* offset 3586
2024-03-08 16:39:54 -08:00
*/
adc_channel_e ignKeyAdcChannel;
/**
2024-11-12 07:34:38 -08:00
* offset 3587
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi6MisoMode;
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 3588
2024-03-08 16:39:54 -08:00
*/
float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH];
/**
* units: ratio
2024-11-12 07:34:38 -08:00
* offset 3604
2024-03-08 16:39:54 -08:00
*/
float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH];
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 3620
2024-03-08 16:39:54 -08:00
*/
int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE];
/**
* If injector duty cycle hits this value, instantly cut fuel.
* units: %
2024-11-12 07:34:38 -08:00
* offset 3656
2024-03-08 16:39:54 -08:00
*/
uint8_t maxInjectorDutyInstant;
/**
* If injector duty cycle hits this value for the specified delay time, cut fuel.
* units: %
2024-11-12 07:34:38 -08:00
* offset 3657
2024-03-08 16:39:54 -08:00
*/
uint8_t maxInjectorDutySustained;
/**
* Timeout period for duty cycle over the sustained limit to trigger duty cycle protection.
* units: sec
2024-11-12 07:34:38 -08:00
* offset 3658
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 10, 1> maxInjectorDutySustainedTimeout;
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3659
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3659[1];
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3660
2024-03-08 16:39:54 -08:00
*/
output_pin_e injectionPinsStage2[MAX_CYLINDER_COUNT];
/**
* units: Deg
2024-11-12 07:34:38 -08:00
* offset 3684
2024-03-08 16:39:54 -08:00
*/
int8_t tractionControlTimingDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE];
/**
* units: %
2024-11-12 07:34:38 -08:00
* offset 3720
2024-03-08 16:39:54 -08:00
*/
int8_t tractionControlIgnitionSkip[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE];
/**
2024-11-12 07:34:38 -08:00
* offset 3756
2024-03-08 16:39:54 -08:00
*/
float auxSpeed1Multiplier;
/**
2024-11-12 07:34:38 -08:00
* offset 3760
2024-03-08 16:39:54 -08:00
*/
float brakeMeanEffectivePressureDifferential;
/**
2024-11-12 07:34:38 -08:00
* offset 3764
2024-03-08 16:39:54 -08:00
*/
Gpio spi4mosiPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3766
2024-03-08 16:39:54 -08:00
*/
Gpio spi4misoPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3768
2024-03-08 16:39:54 -08:00
*/
Gpio spi4sckPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3770
2024-03-08 16:39:54 -08:00
*/
Gpio spi5mosiPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3772
2024-03-08 16:39:54 -08:00
*/
Gpio spi5misoPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3774
2024-03-08 16:39:54 -08:00
*/
Gpio spi5sckPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3776
2024-03-08 16:39:54 -08:00
*/
Gpio spi6mosiPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3778
2024-03-08 16:39:54 -08:00
*/
Gpio spi6misoPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3780
2024-03-08 16:39:54 -08:00
*/
Gpio spi6sckPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3782
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi4SckMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3783
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi4MosiMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3784
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi4MisoMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3785
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi5SckMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3786
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi5MosiMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3787
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi5MisoMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3788
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi6SckMode;
/**
2024-11-12 07:34:38 -08:00
* offset 3789
2024-03-08 16:39:54 -08:00
*/
pin_mode_e spi6MosiMode;
/**
2024-03-20 20:05:53 -07:00
* need 4 byte alignment
2024-03-08 16:39:54 -08:00
* units: units
2024-11-12 07:34:38 -08:00
* offset 3790
2024-03-08 16:39:54 -08:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3790[2];
2024-03-20 20:05:53 -07:00
/**
* Secondary TTL channel baud rate
* units: BPs
2024-11-12 07:34:38 -08:00
* offset 3792
2024-03-20 20:05:53 -07:00
*/
uint32_t tunerStudioSerialSpeed;
2024-03-08 16:39:54 -08:00
/**
2024-11-12 07:34:38 -08:00
* offset 3796
2024-03-08 16:39:54 -08:00
*/
2024-03-23 18:52:32 -07:00
Gpio camSimulatorPin;
/**
2024-11-12 07:34:38 -08:00
* offset 3798
2024-03-23 18:52:32 -07:00
*/
2024-03-26 21:55:50 -07:00
pin_output_mode_e camSimulatorPinMode;
2024-03-24 15:08:54 -07:00
/**
2024-03-28 11:45:11 -07:00
* need 4 byte alignment
2024-03-24 15:08:54 -07:00
* units: units
2024-11-12 07:34:38 -08:00
* offset 3799
2024-03-24 15:08:54 -07:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3799[1];
2024-03-28 11:45:11 -07:00
/**
2024-11-12 07:34:38 -08:00
* offset 3800
2024-03-28 11:45:11 -07:00
*/
int anotherCiTest;
/**
2024-11-12 07:34:38 -08:00
* offset 3804
2024-03-28 11:45:11 -07:00
*/
2024-04-08 13:33:10 -07:00
uint32_t device_uid[3];
/**
2024-11-12 07:34:38 -08:00
* offset 3816
2024-04-08 13:33:10 -07:00
*/
2024-04-14 17:18:00 -07:00
adc_channel_e tcu_rangeAnalogInput[RANGE_INPUT_COUNT];
2024-03-24 15:08:54 -07:00
/**
* need 4 byte alignment
* units: units
2024-11-12 07:34:38 -08:00
* offset 3822
2024-04-14 17:18:00 -07:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3822[2];
2024-04-14 17:18:00 -07:00
/**
* units: Ohm
2024-11-12 07:34:38 -08:00
* offset 3824
2024-04-14 17:18:00 -07:00
*/
float tcu_rangeSensorBiasResistor;
/**
2024-11-12 07:34:38 -08:00
* offset 3828
2024-03-24 15:08:54 -07:00
*/
2024-04-20 05:22:40 -07:00
MsIoBox_config_s msIoBox0;
/**
2024-05-26 07:02:34 -07:00
* Nominal coil charge current, 0.25A step
* units: A
2024-11-12 07:34:38 -08:00
* offset 3832
2024-04-20 05:22:40 -07:00
*/
2024-05-26 07:02:34 -07:00
scaled_channel<uint8_t, 4, 1> mc33810Nomi;
/**
* Maximum coil charge current, 1A step
* units: A
2024-11-12 07:34:38 -08:00
* offset 3833
2024-05-26 07:02:34 -07:00
*/
uint8_t mc33810Maxi;
/**
2024-06-17 08:28:56 -07:00
* need 4 byte alignment
2024-05-26 07:02:34 -07:00
* units: units
2024-11-12 07:34:38 -08:00
* offset 3834
2024-05-26 07:02:34 -07:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3834[2];
2024-06-17 08:28:56 -07:00
/**
2024-11-12 07:34:38 -08:00
* offset 3836
2024-06-17 08:28:56 -07:00
*/
linear_sensor_s acPressure;
/**
2024-06-18 09:55:05 -07:00
* value of A/C pressure in kPa before that compressor is disengaged
* units: kPa
2024-11-12 07:34:38 -08:00
* offset 3856
2024-06-17 08:28:56 -07:00
*/
2024-06-17 12:41:09 -07:00
uint16_t minAcPressure;
/**
2024-06-18 09:55:05 -07:00
* value of A/C pressure in kPa after that compressor is disengaged
* units: kPa
2024-11-12 07:34:38 -08:00
* offset 3858
2024-06-17 12:41:09 -07:00
*/
uint16_t maxAcPressure;
/**
2024-08-08 08:16:06 -07:00
* Delay before cutting fuel due to low oil pressure. Use this to ignore short pressure blips and sensor noise.
* units: sec
2024-11-12 07:34:38 -08:00
* offset 3860
2024-06-17 12:41:09 -07:00
*/
2024-08-08 08:16:06 -07:00
scaled_channel<uint8_t, 10, 1> minimumOilPressureTimeout;
/**
2024-09-05 05:26:55 -07:00
* need 4 byte alignment
2024-08-08 08:16:06 -07:00
* units: units
2024-11-12 07:34:38 -08:00
* offset 3861
2024-08-08 08:16:06 -07:00
*/
2024-11-12 07:34:38 -08:00
uint8_t alignmentFill_at_3861[3];
2024-09-05 05:26:55 -07:00
/**
2024-11-12 07:34:38 -08:00
* offset 3864
2024-09-05 05:26:55 -07:00
*/
linear_sensor_s auxLinear3;
/**
2024-11-12 07:34:38 -08:00
* offset 3884
2024-09-05 05:26:55 -07:00
*/
linear_sensor_s auxLinear4;
2024-06-17 08:28:56 -07:00
/**
2024-10-21 08:05:10 -07:00
* Below TPS value all knock suppression will be disabled.
* units: %
2024-11-12 07:34:38 -08:00
* offset 3904
2024-06-17 08:28:56 -07:00
*/
2024-10-21 08:05:10 -07:00
scaled_channel<uint8_t, 1, 1> knockSuppressMinTps;
/**
* Fuel to odd when a knock event occurs. Advice: 5% (mild), 10% (turbo/high comp.), 15% (high knock, e.g. GDI), 20% (spicy lump),
* units: %
2024-11-12 07:34:38 -08:00
* offset 3905
2024-10-21 08:05:10 -07:00
*/
scaled_channel<uint8_t, 10, 1> knockFuelTrimAggression;
/**
* After a knock event, reapply fuel at this rate.
2024-11-01 06:30:47 -07:00
* units: 1%/s
2024-11-12 07:34:38 -08:00
* offset 3906
2024-10-21 08:05:10 -07:00
*/
scaled_channel<uint8_t, 10, 1> knockFuelTrimReapplyRate;
/**
* Fuel trim when knock, max 30%
* units: %
2024-11-12 07:34:38 -08:00
* offset 3907
2024-10-21 08:05:10 -07:00
*/
scaled_channel<uint8_t, 1, 1> knockFuelTrim;
/**
* units: sense
2024-11-12 07:34:38 -08:00
* offset 3908
2024-10-21 08:05:10 -07:00
*/
float knockSpectrumSensitivity;
/**
* "Estimated knock frequency, ignore cylinderBore if this one > 0"
* units: Hz
2024-11-12 07:34:38 -08:00
* offset 3912
2024-10-21 08:05:10 -07:00
*/
float knockFrequency;
/**
2024-11-18 07:14:31 -08: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
2024-11-12 07:34:38 -08:00
* offset 3916
2024-10-21 08:05:10 -07:00
*/
2024-11-18 07:14:31 -08:00
injector_compensation_mode_e secondaryInjectorCompensationMode;
/**
* need 4 byte alignment
* units: units
* offset 3917
*/
uint8_t alignmentFill_at_3917[3];
/**
* 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.
* units: kPa
* offset 3920
*/
float secondaryInjectorFuelReferencePressure;
/**
* units: units
* offset 3924
*/
2024-09-05 05:26:55 -07:00
uint8_t unusedOftenChangesDuringFirmwareUpdate[END_OF_CALIBRATION_PADDING];
2024-11-18 07:14:31 -08:00
/**
* need 4 byte alignment
* units: units
* offset 4035
*/
uint8_t alignmentFill_at_4035[1];
2024-03-08 16:39:54 -08:00
};
2024-11-18 07:14:31 -08:00
static_assert(sizeof(engine_configuration_s) == 4036);
2024-03-08 16:39:54 -08:00
2024-04-18 13:31:43 -07:00
// start of ign_cyl_trim_s
struct ign_cyl_trim_s {
2024-03-08 16:39:54 -08:00
/**
* offset 0
*/
2024-04-18 13:31:43 -07:00
scaled_channel<int8_t, 5, 1> table[IGN_TRIM_SIZE][IGN_TRIM_SIZE];
2024-03-08 16:39:54 -08:00
};
2024-04-18 13:31:43 -07:00
static_assert(sizeof(ign_cyl_trim_s) == 16);
// start of fuel_cyl_trim_s
struct fuel_cyl_trim_s {
/**
* offset 0
*/
scaled_channel<int8_t, 5, 1> table[FUEL_TRIM_SIZE][FUEL_TRIM_SIZE];
};
static_assert(sizeof(fuel_cyl_trim_s) == 16);
2024-03-08 16:39:54 -08:00
// start of blend_table_s
struct blend_table_s {
/**
* offset 0
*/
scaled_channel<int16_t, 10, 1> table[8][8];
/**
* units: Load
* offset 128
*/
uint16_t loadBins[8];
/**
* units: RPM
* offset 144
*/
uint16_t rpmBins[8];
/**
* offset 160
*/
gppwm_channel_e blendParameter;
/**
* offset 161
*/
gppwm_channel_e yAxisOverride;
/**
* offset 162
*/
scaled_channel<int16_t, 10, 1> blendBins[8];
/**
* units: %
* offset 178
*/
scaled_channel<uint8_t, 2, 1> blendValues[8];
/**
* need 4 byte alignment
* units: units
* offset 186
*/
uint8_t alignmentFill_at_186[2];
};
static_assert(sizeof(blend_table_s) == 188);
// start of persistent_config_s
struct persistent_config_s {
/**
* offset 0
*/
engine_configuration_s engineConfiguration;
2024-07-30 18:10:26 -07:00
/**
* units: mult
2024-11-18 07:14:31 -08:00
* offset 4036
2024-07-30 18:10:26 -07:00
*/
float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT];
/**
* units: count
2024-11-18 07:14:31 -08:00
* offset 4180
2024-07-30 18:10:26 -07:00
*/
float postCrankingDurationBins[CRANKING_ENRICH_COUNT];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 4204
2024-07-30 18:10:26 -07:00
*/
int16_t postCrankingCLTBins[CRANKING_ENRICH_COUNT];
2024-03-08 16:39:54 -08:00
/**
* target TPS value, 0 to 100%
* TODO: use int8 data date once we template interpolation method
* units: target TPS position
2024-11-18 07:14:31 -08:00
* offset 4216
2024-03-08 16:39:54 -08:00
*/
float etbBiasBins[ETB_BIAS_CURVE_LENGTH];
/**
2024-08-17 08:41:36 -07:00
* PWM bias, open loop component of PID closed loop control
2024-03-08 16:39:54 -08:00
* units: ETB duty cycle bias
2024-11-18 07:14:31 -08:00
* offset 4248
2024-03-08 16:39:54 -08:00
*/
float etbBiasValues[ETB_BIAS_CURVE_LENGTH];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 4280
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 20, 1> iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE];
/**
* units: Load
2024-11-18 07:14:31 -08:00
* offset 4344
2024-03-08 16:39:54 -08:00
*/
uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 4352
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> iacPidMultRpmBins[IAC_PID_MULT_SIZE];
/**
* On Single Coil or Wasted Spark setups you have to lower dwell at high RPM
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 4360
2024-03-08 16:39:54 -08:00
*/
uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE];
/**
* units: ms
2024-11-18 07:14:31 -08:00
* offset 4376
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> sparkDwellValues[DWELL_CURVE_SIZE];
/**
* CLT-based target RPM for automatic idle controller
* units: C
2024-11-18 07:14:31 -08:00
* offset 4392
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int8_t, 1, 2> cltIdleRpmBins[CLT_CURVE_SIZE];
/**
* See idleRpmPid
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 4408
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 20> cltIdleRpm[CLT_CURVE_SIZE];
/**
* CLT-based timing correction
* units: C
2024-11-18 07:14:31 -08:00
* offset 4424
2024-03-08 16:39:54 -08:00
*/
float cltTimingBins[CLT_TIMING_CURVE_SIZE];
/**
* units: degree
2024-11-18 07:14:31 -08:00
* offset 4456
2024-03-08 16:39:54 -08:00
*/
float cltTimingExtra[CLT_TIMING_CURVE_SIZE];
/**
* units: x
2024-11-18 07:14:31 -08:00
* offset 4488
2024-03-08 16:39:54 -08:00
*/
float scriptCurve1Bins[SCRIPT_CURVE_16];
/**
* units: y
2024-11-18 07:14:31 -08:00
* offset 4552
2024-03-08 16:39:54 -08:00
*/
float scriptCurve1[SCRIPT_CURVE_16];
/**
* units: x
2024-11-18 07:14:31 -08:00
* offset 4616
2024-03-08 16:39:54 -08:00
*/
float scriptCurve2Bins[SCRIPT_CURVE_16];
/**
* units: y
2024-11-18 07:14:31 -08:00
* offset 4680
2024-03-08 16:39:54 -08:00
*/
float scriptCurve2[SCRIPT_CURVE_16];
/**
* units: x
2024-11-18 07:14:31 -08:00
* offset 4744
2024-03-08 16:39:54 -08:00
*/
float scriptCurve3Bins[SCRIPT_CURVE_8];
/**
* units: y
2024-11-18 07:14:31 -08:00
* offset 4776
2024-03-08 16:39:54 -08:00
*/
float scriptCurve3[SCRIPT_CURVE_8];
/**
* units: x
2024-11-18 07:14:31 -08:00
* offset 4808
2024-03-08 16:39:54 -08:00
*/
float scriptCurve4Bins[SCRIPT_CURVE_8];
/**
* units: y
2024-11-18 07:14:31 -08:00
* offset 4840
2024-03-08 16:39:54 -08:00
*/
float scriptCurve4[SCRIPT_CURVE_8];
/**
* units: x
2024-11-18 07:14:31 -08:00
* offset 4872
2024-03-08 16:39:54 -08:00
*/
float scriptCurve5Bins[SCRIPT_CURVE_8];
/**
* units: y
2024-11-18 07:14:31 -08:00
* offset 4904
2024-03-08 16:39:54 -08:00
*/
float scriptCurve5[SCRIPT_CURVE_8];
/**
* units: x
2024-11-18 07:14:31 -08:00
* offset 4936
2024-03-08 16:39:54 -08:00
*/
float scriptCurve6Bins[SCRIPT_CURVE_8];
/**
* units: y
2024-11-18 07:14:31 -08:00
* offset 4968
2024-03-08 16:39:54 -08:00
*/
float scriptCurve6[SCRIPT_CURVE_8];
/**
* units: kPa
2024-11-18 07:14:31 -08:00
* offset 5000
2024-03-08 16:39:54 -08:00
*/
float baroCorrPressureBins[BARO_CORR_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5016
2024-03-08 16:39:54 -08:00
*/
float baroCorrRpmBins[BARO_CORR_SIZE];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 5032
2024-03-08 16:39:54 -08:00
*/
float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE];
/**
* Cranking fuel correction coefficient based on TPS
* units: Ratio
2024-11-18 07:14:31 -08:00
* offset 5096
2024-03-08 16:39:54 -08:00
*/
float crankingTpsCoef[CRANKING_CURVE_SIZE];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 5128
2024-03-08 16:39:54 -08:00
*/
float crankingTpsBins[CRANKING_CURVE_SIZE];
/**
* Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5160
2024-03-08 16:39:54 -08:00
*/
uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE];
/**
* Optional timing advance table for Cranking (see useSeparateAdvanceForCranking)
* units: deg
2024-11-18 07:14:31 -08:00
* offset 5168
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int16_t, 100, 1> crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE];
/**
* RPM-based idle position for coasting
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5176
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 100> iacCoastingRpmBins[CLT_CURVE_SIZE];
/**
* RPM-based idle position for coasting
* units: %
2024-11-18 07:14:31 -08:00
* offset 5192
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 2, 1> iacCoasting[CLT_CURVE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 5208
2024-03-08 16:39:54 -08:00
*/
warning_message_t warning_message;
/**
2024-11-18 07:14:31 -08:00
* offset 5328
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 2, 1> boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5392
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 100> boostRpmBins[BOOST_RPM_COUNT];
/**
2024-11-18 07:14:31 -08:00
* offset 5400
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 2> boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT];
/**
2024-11-18 07:14:31 -08:00
* offset 5464
2024-03-08 16:39:54 -08:00
*/
2024-08-22 08:46:06 -07:00
uint8_t boostLoadBins[BOOST_LOAD_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 5472
2024-03-08 16:39:54 -08:00
*/
uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 5536
2024-03-08 16:39:54 -08:00
*/
uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5544
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 100> pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE];
/**
* CLT-based cranking position multiplier for simple manual idle controller
* units: C
2024-11-18 07:14:31 -08:00
* offset 5552
2024-03-08 16:39:54 -08:00
*/
float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE];
/**
* CLT-based cranking position multiplier for simple manual idle controller
* units: %
2024-11-18 07:14:31 -08:00
* offset 5584
2024-03-08 16:39:54 -08:00
*/
float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE];
/**
* Optional timing advance table for Idle (see useSeparateAdvanceForIdle)
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5616
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 50> idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE];
/**
* Optional timing advance table for Idle (see useSeparateAdvanceForIdle)
* units: deg
2024-11-18 07:14:31 -08:00
* offset 5624
2024-03-08 16:39:54 -08:00
*/
float idleAdvance[IDLE_ADVANCE_CURVE_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 5656
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 10> idleVeRpmBins[IDLE_VE_SIZE];
/**
* units: load
2024-11-18 07:14:31 -08:00
* offset 5660
2024-03-08 16:39:54 -08:00
*/
uint8_t idleVeLoadBins[IDLE_VE_SIZE];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 5664
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 10, 1> idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 5696
2024-03-08 16:39:54 -08:00
*/
lua_script_t luaScript;
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 13696
2024-03-08 16:39:54 -08:00
*/
float cltFuelCorrBins[CLT_CURVE_SIZE];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 13760
2024-03-08 16:39:54 -08:00
*/
float cltFuelCorr[CLT_CURVE_SIZE];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 13824
2024-03-08 16:39:54 -08:00
*/
float iatFuelCorrBins[IAT_CURVE_SIZE];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 13888
2024-03-08 16:39:54 -08:00
*/
float iatFuelCorr[IAT_CURVE_SIZE];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 13952
2024-03-08 16:39:54 -08:00
*/
float crankingFuelCoef[CRANKING_CURVE_SIZE];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 13984
2024-03-08 16:39:54 -08:00
*/
float crankingFuelBins[CRANKING_CURVE_SIZE];
/**
* units: counter
2024-11-18 07:14:31 -08:00
* offset 14016
2024-03-08 16:39:54 -08:00
*/
float crankingCycleBins[CRANKING_CURVE_SIZE];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 14048
2024-03-08 16:39:54 -08:00
*/
2024-06-05 20:06:00 -07:00
int16_t crankingCycleFuelCltBins[CRANKING_CYCLE_CLT_SIZE];
/**
* units: mult
2024-11-18 07:14:31 -08:00
* offset 14056
2024-06-05 20:06:00 -07:00
*/
2024-06-07 16:46:32 -07:00
float crankingCycleFuelCoef[CRANKING_CYCLE_CLT_SIZE][CRANKING_CURVE_SIZE];
2024-06-05 20:06:00 -07:00
/**
* CLT-based idle position multiplier for simple manual idle controller
* units: C
2024-11-18 07:14:31 -08:00
* offset 14184
2024-06-05 20:06:00 -07:00
*/
2024-03-08 16:39:54 -08:00
float cltIdleCorrBins[CLT_CURVE_SIZE];
/**
* CLT-based idle position multiplier for simple manual idle controller
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 14248
2024-03-08 16:39:54 -08:00
*/
float cltIdleCorr[CLT_CURVE_SIZE];
/**
* Also known as MAF transfer function.
* kg/hour value.
* By the way 2.081989116 kg/h = 1 ft3/m
* units: kg/hour
2024-11-18 07:14:31 -08:00
* offset 14312
2024-03-08 16:39:54 -08:00
*/
float mafDecoding[MAF_DECODING_COUNT];
/**
* units: V
2024-11-18 07:14:31 -08:00
* offset 14440
2024-03-08 16:39:54 -08:00
*/
float mafDecodingBins[MAF_DECODING_COUNT];
/**
* units: deg
2024-11-18 07:14:31 -08:00
* offset 14568
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int8_t, 10, 1> ignitionIatCorrTable[8][8];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 14632
2024-03-08 16:39:54 -08:00
*/
int8_t ignitionIatCorrTempBins[8];
/**
* units: Load
2024-11-18 07:14:31 -08:00
* offset 14640
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 5> ignitionIatCorrLoadBins[8];
/**
* units: deg
2024-11-18 07:14:31 -08:00
* offset 14648
2024-03-08 16:39:54 -08:00
*/
int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT];
/**
* units: Load
2024-11-18 07:14:31 -08:00
* offset 15160
2024-03-08 16:39:54 -08:00
*/
uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 15192
2024-03-08 16:39:54 -08:00
*/
uint16_t injPhaseRpmBins[FUEL_RPM_COUNT];
/**
* units: onoff
2024-11-18 07:14:31 -08:00
* offset 15224
2024-03-08 16:39:54 -08:00
*/
uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT];
/**
* units: kPa
2024-11-18 07:14:31 -08:00
* offset 15284
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT];
/**
* units: % TPS
2024-11-18 07:14:31 -08:00
* offset 15796
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> mapEstimateTpsBins[FUEL_LOAD_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 15828
2024-03-08 16:39:54 -08:00
*/
uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT];
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 15860
2024-03-08 16:39:54 -08:00
*/
2024-09-18 09:29:57 -07:00
int8_t vvtTable1[VVT_TABLE_SIZE][VVT_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: L
2024-11-18 07:14:31 -08:00
* offset 15924
2024-03-08 16:39:54 -08:00
*/
2024-09-18 09:29:57 -07:00
uint16_t vvtTable1LoadBins[VVT_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 15940
2024-03-08 16:39:54 -08:00
*/
2024-09-18 09:29:57 -07:00
uint16_t vvtTable1RpmBins[VVT_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 15956
2024-03-08 16:39:54 -08:00
*/
2024-09-18 09:29:57 -07:00
int8_t vvtTable2[VVT_TABLE_SIZE][VVT_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: L
2024-11-18 07:14:31 -08:00
* offset 16020
2024-03-08 16:39:54 -08:00
*/
2024-09-18 09:29:57 -07:00
uint16_t vvtTable2LoadBins[VVT_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 16036
2024-03-08 16:39:54 -08:00
*/
2024-09-18 09:29:57 -07:00
uint16_t vvtTable2RpmBins[VVT_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: deg
2024-11-18 07:14:31 -08:00
* offset 16052
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int16_t, 10, 1> ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT];
/**
* units: Load
2024-11-18 07:14:31 -08:00
* offset 16564
2024-03-08 16:39:54 -08:00
*/
uint16_t ignitionLoadBins[IGN_LOAD_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 16596
2024-03-08 16:39:54 -08:00
*/
uint16_t ignitionRpmBins[IGN_RPM_COUNT];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 16628
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 10, 1> veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT];
/**
2024-05-09 13:36:52 -07:00
* units: {bitStringValue(fuelUnits, fuelAlgorithm) }
2024-11-18 07:14:31 -08:00
* offset 17140
2024-03-08 16:39:54 -08:00
*/
uint16_t veLoadBins[FUEL_LOAD_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 17172
2024-03-08 16:39:54 -08:00
*/
uint16_t veRpmBins[FUEL_RPM_COUNT];
/**
* units: lambda
2024-11-18 07:14:31 -08:00
* offset 17204
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 147, 1> lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT];
/**
2024-11-18 07:14:31 -08:00
* offset 17460
2024-03-08 16:39:54 -08:00
*/
uint16_t lambdaLoadBins[FUEL_LOAD_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 17492
2024-03-08 16:39:54 -08:00
*/
uint16_t lambdaRpmBins[FUEL_RPM_COUNT];
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 17524
2024-03-08 16:39:54 -08:00
*/
float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE];
/**
* units: from
2024-11-18 07:14:31 -08:00
* offset 17780
2024-03-08 16:39:54 -08:00
*/
float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE];
/**
* units: to
2024-11-18 07:14:31 -08:00
* offset 17812
2024-03-08 16:39:54 -08:00
*/
float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE];
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 17844
2024-03-08 16:39:54 -08:00
*/
float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
/**
* units: L
2024-11-18 07:14:31 -08:00
* offset 18100
2024-03-08 16:39:54 -08:00
*/
int16_t scriptTable1LoadBins[SCRIPT_TABLE_8];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 18116
2024-03-08 16:39:54 -08:00
*/
int16_t scriptTable1RpmBins[SCRIPT_TABLE_8];
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 18132
2024-03-08 16:39:54 -08:00
*/
2024-03-12 14:45:23 -07:00
float scriptTable2[TABLE_2_LOAD_SIZE][TABLE_2_RPM_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: L
2024-11-18 07:14:31 -08:00
* offset 18388
2024-03-08 16:39:54 -08:00
*/
2024-03-12 14:45:23 -07:00
int16_t scriptTable2LoadBins[TABLE_2_LOAD_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 18404
2024-03-08 16:39:54 -08:00
*/
2024-03-12 14:45:23 -07:00
int16_t scriptTable2RpmBins[TABLE_2_RPM_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 18420
2024-03-08 16:39:54 -08:00
*/
uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8];
/**
* units: L
2024-11-18 07:14:31 -08:00
* offset 18484
2024-03-08 16:39:54 -08:00
*/
int16_t scriptTable3LoadBins[SCRIPT_TABLE_8];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 18500
2024-03-08 16:39:54 -08:00
*/
int16_t scriptTable3RpmBins[SCRIPT_TABLE_8];
/**
* units: value
2024-11-18 07:14:31 -08:00
* offset 18516
2024-03-08 16:39:54 -08:00
*/
uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM];
/**
* units: L
2024-11-18 07:14:31 -08:00
* offset 18596
2024-03-08 16:39:54 -08:00
*/
int16_t scriptTable4LoadBins[SCRIPT_TABLE_8];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 18612
2024-03-08 16:39:54 -08:00
*/
int16_t scriptTable4RpmBins[TABLE_4_RPM];
/**
2024-11-18 07:14:31 -08:00
* offset 18632
2024-03-08 16:39:54 -08:00
*/
2024-04-18 13:31:43 -07:00
uint16_t ignTrimLoadBins[IGN_TRIM_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: rpm
2024-11-18 07:14:31 -08:00
* offset 18640
2024-03-08 16:39:54 -08:00
*/
2024-04-18 13:31:43 -07:00
uint16_t ignTrimRpmBins[IGN_TRIM_SIZE];
2024-03-08 16:39:54 -08:00
/**
2024-11-18 07:14:31 -08:00
* offset 18648
2024-03-08 16:39:54 -08:00
*/
2024-04-18 13:31:43 -07:00
ign_cyl_trim_s ignTrims[12];
2024-03-08 16:39:54 -08:00
/**
2024-11-18 07:14:31 -08:00
* offset 18840
2024-03-08 16:39:54 -08:00
*/
2024-04-18 13:31:43 -07:00
uint16_t fuelTrimLoadBins[FUEL_TRIM_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: rpm
2024-11-18 07:14:31 -08:00
* offset 18848
2024-03-08 16:39:54 -08:00
*/
2024-04-18 13:31:43 -07:00
uint16_t fuelTrimRpmBins[FUEL_TRIM_SIZE];
2024-03-08 16:39:54 -08:00
/**
2024-11-18 07:14:31 -08:00
* offset 18856
2024-03-08 16:39:54 -08:00
*/
2024-04-18 13:31:43 -07:00
fuel_cyl_trim_s fuelTrims[12];
2024-03-08 16:39:54 -08:00
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 19048
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 100, 1> crankingFuelCoefE100[CRANKING_CURVE_SIZE];
/**
* units: Airmass
2024-11-18 07:14:31 -08:00
* offset 19064
2024-03-08 16:39:54 -08:00
*/
2024-04-08 16:05:22 -07:00
scaled_channel<uint8_t, 1, 5> tcu_pcAirmassBins[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19072
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcValsR[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19080
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcValsN[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19088
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals1[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19096
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals2[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19104
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals3[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19112
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals4[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19120
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals12[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19128
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals23[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19136
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals34[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19144
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals21[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19152
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals32[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19160
2024-03-08 16:39:54 -08:00
*/
2024-04-08 06:07:15 -07:00
uint8_t tcu_pcVals43[TCU_TABLE_WIDTH];
2024-03-08 16:39:54 -08:00
/**
* units: TPS
2024-11-18 07:14:31 -08:00
* offset 19168
2024-03-08 16:39:54 -08:00
*/
uint8_t tcu_tccTpsBins[8];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 19176
2024-03-08 16:39:54 -08:00
*/
uint8_t tcu_tccLockSpeed[8];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 19184
2024-03-08 16:39:54 -08:00
*/
uint8_t tcu_tccUnlockSpeed[8];
/**
* units: KPH
2024-11-18 07:14:31 -08:00
* offset 19192
2024-03-08 16:39:54 -08:00
*/
uint8_t tcu_32SpeedBins[8];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19200
2024-03-08 16:39:54 -08:00
*/
uint8_t tcu_32Vals[8];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19208
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int8_t, 10, 1> throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19244
2024-03-08 16:39:54 -08:00
*/
uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 19250
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 1, 100> throttle2TrimRpmBins[ETB2_TRIM_SIZE];
/**
* units: deg
2024-11-18 07:14:31 -08:00
* offset 19256
2024-03-08 16:39:54 -08:00
*/
2024-05-03 18:03:50 -07:00
scaled_channel<uint8_t, 4, 1> maxKnockRetardTable[KNOCK_TABLE_SIZE][KNOCK_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 19292
2024-03-08 16:39:54 -08:00
*/
2024-05-03 18:03:50 -07:00
uint8_t maxKnockRetardLoadBins[KNOCK_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 19298
2024-03-08 16:39:54 -08:00
*/
2024-05-03 18:03:50 -07:00
scaled_channel<uint8_t, 1, 100> maxKnockRetardRpmBins[KNOCK_TABLE_SIZE];
2024-03-08 16:39:54 -08:00
/**
* units: deg
2024-11-18 07:14:31 -08:00
* offset 19304
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int16_t, 10, 1> ALSTimingRetardTable[4][4];
/**
* units: TPS
2024-11-18 07:14:31 -08:00
* offset 19336
2024-03-08 16:39:54 -08:00
*/
uint16_t alsIgnRetardLoadBins[4];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 19344
2024-03-08 16:39:54 -08:00
*/
uint16_t alsIgnRetardrpmBins[4];
/**
* units: percent
2024-11-18 07:14:31 -08:00
* offset 19352
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int16_t, 10, 1> ALSFuelAdjustment[4][4];
/**
* units: TPS
2024-11-18 07:14:31 -08:00
* offset 19384
2024-03-08 16:39:54 -08:00
*/
uint16_t alsFuelAdjustmentLoadBins[4];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 19392
2024-03-08 16:39:54 -08:00
*/
uint16_t alsFuelAdjustmentrpmBins[4];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 19400
2024-03-08 16:39:54 -08:00
*/
scaled_channel<int16_t, 1, 10> ALSIgnSkipTable[4][4];
/**
* units: TPS
2024-11-18 07:14:31 -08:00
* offset 19432
2024-03-08 16:39:54 -08:00
*/
uint16_t alsIgnSkipLoadBins[4];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 19440
2024-03-08 16:39:54 -08:00
*/
uint16_t alsIgnSkiprpmBins[4];
/**
2024-11-18 07:14:31 -08:00
* offset 19448
2024-03-08 16:39:54 -08:00
*/
blend_table_s ignBlends[IGN_BLEND_COUNT];
/**
2024-11-18 07:14:31 -08:00
* offset 20200
2024-03-08 16:39:54 -08:00
*/
blend_table_s veBlends[VE_BLEND_COUNT];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 20952
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 10, 1> throttleEstimateEffectiveAreaBins[12];
/**
* In units of g/s normalized to choked flow conditions
* units: g/s
2024-11-18 07:14:31 -08:00
* offset 20976
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint16_t, 10, 1> throttleEstimateEffectiveAreaValues[12];
/**
2024-11-18 07:14:31 -08:00
* offset 21000
2024-03-08 16:39:54 -08:00
*/
blend_table_s boostOpenLoopBlends[BOOST_BLEND_COUNT];
/**
2024-11-18 07:14:31 -08:00
* offset 21376
2024-03-08 16:39:54 -08:00
*/
blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT];
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21752
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeP[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21776
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeR[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21800
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeN[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21824
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeD[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21848
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeM[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21872
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeM3[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21896
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeM2[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21920
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeM1[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21944
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangePlus[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21968
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeMinus[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: level
2024-11-18 07:14:31 -08:00
* offset 21992
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_rangeLow[RANGE_INPUT_COUNT];
2024-03-08 16:39:54 -08:00
/**
* units: lambda
2024-11-18 07:14:31 -08:00
* offset 22016
2024-03-08 16:39:54 -08:00
*/
scaled_channel<uint8_t, 100, 1> lambdaMaxDeviationTable[4][4];
/**
2024-11-18 07:14:31 -08:00
* offset 22032
2024-03-08 16:39:54 -08:00
*/
uint16_t lambdaMaxDeviationLoadBins[4];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22040
2024-03-08 16:39:54 -08:00
*/
uint16_t lambdaMaxDeviationRpmBins[4];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 22048
2024-03-08 16:39:54 -08:00
*/
uint8_t injectorStagingTable[INJ_STAGING_COUNT][INJ_STAGING_COUNT];
/**
2024-11-18 07:14:31 -08:00
* offset 22084
2024-03-08 16:39:54 -08:00
*/
uint16_t injectorStagingLoadBins[INJ_STAGING_COUNT];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22096
2024-03-08 16:39:54 -08:00
*/
uint16_t injectorStagingRpmBins[INJ_STAGING_COUNT];
2024-03-20 14:09:51 -07:00
/**
* units: deg C
2024-11-18 07:14:31 -08:00
* offset 22108
2024-03-20 14:09:51 -07:00
*/
int8_t wwCltBins[WWAE_TABLE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 22116
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 100, 1> wwTauCltValues[WWAE_TABLE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 22124
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 100, 1> wwBetaCltValues[WWAE_TABLE_SIZE];
/**
* units: kPa
2024-11-18 07:14:31 -08:00
* offset 22132
2024-03-20 14:09:51 -07:00
*/
int8_t wwMapBins[WWAE_TABLE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 22140
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 100, 1> wwTauMapValues[WWAE_TABLE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 22148
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 100, 1> wwBetaMapValues[WWAE_TABLE_SIZE];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 22156
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 2, 1> hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE];
/**
* units: deg
2024-11-18 07:14:31 -08:00
* offset 22172
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 2, 1> hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE];
/**
* units: volts
2024-11-18 07:14:31 -08:00
* offset 22188
2024-03-20 14:09:51 -07:00
*/
uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE];
/**
* units: ms
2024-11-18 07:14:31 -08:00
* offset 22196
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpDeadtimeMS[HPFP_DEADTIME_SIZE];
/**
* units: kPa
2024-11-18 07:14:31 -08:00
* offset 22212
2024-03-20 14:09:51 -07:00
*/
uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE];
/**
* units: load
2024-11-18 07:14:31 -08:00
* offset 22412
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint16_t, 10, 1> hpfpTargetLoadBins[HPFP_TARGET_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22432
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 1, 50> hpfpTargetRpmBins[HPFP_TARGET_SIZE];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 22442
2024-03-20 14:09:51 -07:00
*/
int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE];
/**
* units: cc/lobe
2024-11-18 07:14:31 -08:00
* offset 22542
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint16_t, 1000, 1> hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22562
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 1, 50> hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22572
2024-03-20 14:09:51 -07:00
*/
uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE];
/**
* Knock sensor output knock detection threshold depending on current RPM.
* units: dB
2024-11-18 07:14:31 -08:00
* offset 22604
2024-03-20 14:09:51 -07:00
*/
scaled_channel<int8_t, 2, 1> knockBaseNoise[ENGINE_NOISE_CURVE_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22620
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 1, 50> tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE];
/**
* units: multiplier
2024-11-18 07:14:31 -08:00
* offset 22624
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 50, 1> tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 22628
2024-03-20 14:09:51 -07:00
*/
int8_t cltRevLimitRpmBins[CLT_LIMITER_CURVE_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22632
2024-03-20 14:09:51 -07:00
*/
uint16_t cltRevLimitRpm[CLT_LIMITER_CURVE_SIZE];
/**
* units: volt
2024-11-18 07:14:31 -08:00
* offset 22640
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint16_t, 1000, 1> fuelLevelBins[FUEL_LEVEL_TABLE_COUNT];
/**
* units: %
2024-11-18 07:14:31 -08:00
* offset 22656
2024-03-20 14:09:51 -07:00
*/
uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT];
/**
* units: volts
2024-11-18 07:14:31 -08:00
* offset 22664
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 10, 1> dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE];
/**
* units: multiplier
2024-11-18 07:14:31 -08:00
* offset 22672
2024-03-20 14:09:51 -07:00
*/
scaled_channel<uint8_t, 50, 1> dwellVoltageCorrValues[DWELL_CURVE_SIZE];
2024-03-08 16:39:54 -08:00
/**
2024-04-10 14:48:45 -07:00
* units: %
2024-11-18 07:14:31 -08:00
* offset 22680
2024-04-10 14:48:45 -07:00
*/
scaled_channel<uint8_t, 1, 1> tcu_shiftTpsBins[TCU_TABLE_WIDTH];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 22688
2024-04-10 14:48:45 -07:00
*/
uint8_t tcu_shiftSpeed12[TCU_TABLE_WIDTH];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 22696
2024-04-10 14:48:45 -07:00
*/
uint8_t tcu_shiftSpeed23[TCU_TABLE_WIDTH];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 22704
2024-04-10 14:48:45 -07:00
*/
uint8_t tcu_shiftSpeed34[TCU_TABLE_WIDTH];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 22712
2024-04-10 14:48:45 -07:00
*/
uint8_t tcu_shiftSpeed21[TCU_TABLE_WIDTH];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 22720
2024-04-10 14:48:45 -07:00
*/
uint8_t tcu_shiftSpeed32[TCU_TABLE_WIDTH];
/**
* units: MPH
2024-11-18 07:14:31 -08:00
* offset 22728
2024-04-10 14:48:45 -07:00
*/
uint8_t tcu_shiftSpeed43[TCU_TABLE_WIDTH];
/**
* units: ms
2024-11-18 07:14:31 -08:00
* offset 22736
2024-03-08 16:39:54 -08:00
*/
2024-04-10 14:48:45 -07:00
float tcu_shiftTime;
2024-06-20 08:46:43 -07:00
/**
* units: Volts
2024-11-18 07:14:31 -08:00
* offset 22740
2024-06-20 08:46:43 -07:00
*/
scaled_channel<int16_t, 10, 1> alternatorVoltageTargetTable[ALTERNATOR_VOLTAGE_TARGET_SIZE][ALTERNATOR_VOLTAGE_TARGET_SIZE];
/**
* units: Load
2024-11-18 07:14:31 -08:00
* offset 22772
2024-06-20 08:46:43 -07:00
*/
uint16_t alternatorVoltageTargetLoadBins[ALTERNATOR_VOLTAGE_TARGET_SIZE];
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22780
2024-06-20 08:46:43 -07:00
*/
uint16_t alternatorVoltageTargetRpmBins[ALTERNATOR_VOLTAGE_TARGET_SIZE];
2024-07-26 05:44:05 -07:00
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 22788
2024-07-26 05:44:05 -07:00
*/
float cltBoostCorrBins[BOOST_CURVE_SIZE];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 22808
2024-07-26 05:44:05 -07:00
*/
float cltBoostCorr[BOOST_CURVE_SIZE];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 22828
2024-07-26 05:44:05 -07:00
*/
float iatBoostCorrBins[BOOST_CURVE_SIZE];
/**
* units: ratio
2024-11-18 07:14:31 -08:00
* offset 22848
2024-07-26 05:44:05 -07:00
*/
float iatBoostCorr[BOOST_CURVE_SIZE];
2024-07-31 10:16:23 -07:00
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 22868
2024-07-31 10:16:23 -07:00
*/
float cltBoostAdderBins[BOOST_CURVE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 22888
2024-07-31 10:16:23 -07:00
*/
float cltBoostAdder[BOOST_CURVE_SIZE];
/**
* units: C
2024-11-18 07:14:31 -08:00
* offset 22908
2024-07-31 10:16:23 -07:00
*/
float iatBoostAdderBins[BOOST_CURVE_SIZE];
/**
2024-11-18 07:14:31 -08:00
* offset 22928
2024-07-31 10:16:23 -07:00
*/
float iatBoostAdder[BOOST_CURVE_SIZE];
2024-08-08 08:16:06 -07:00
/**
* units: RPM
2024-11-18 07:14:31 -08:00
* offset 22948
2024-08-08 08:16:06 -07:00
*/
scaled_channel<uint8_t, 1, 100> minimumOilPressureBins[8];
/**
* units: kPa
2024-11-18 07:14:31 -08:00
* offset 22956
2024-08-08 08:16:06 -07:00
*/
scaled_channel<uint8_t, 1, 10> minimumOilPressureValues[8];
2024-03-08 16:39:54 -08:00
};
2024-11-18 07:14:31 -08:00
static_assert(sizeof(persistent_config_s) == 22964);
2024-03-08 16:39:54 -08:00
// end
2024-09-04 19:29:18 -07:00
// this section was generated automatically by rusEFI tool config_definition-all.jar based on (unknown script) integration/rusefi_config.txt