diff --git a/firmware/config/boards/cypress/config/controllers/algo/engine_configuration_generated_structures_cypress.h b/firmware/config/boards/cypress/config/controllers/algo/engine_configuration_generated_structures_cypress.h index c205f2093a..25ab39e75c 100644 --- a/firmware/config/boards/cypress/config/controllers/algo/engine_configuration_generated_structures_cypress.h +++ b/firmware/config/boards/cypress/config/controllers/algo/engine_configuration_generated_structures_cypress.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:23 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:19 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:23 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:19 UTC 2024 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures_kin.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures_kin.h index 678572e670..02fa8d1afb 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures_kin.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures_kin.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:21 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:18 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15332 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15364 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15380 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15440 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 15696 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15728 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 15744 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 15808 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 15824 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 15840 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 15904 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 15920 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 15936 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16064 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16080 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 16096 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 16352 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16384 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 16400 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16560 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16576 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 16832 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 16864 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 16896 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 17152 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 17168 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 17184 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 17248 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 17264 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 17280 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 17344 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 17360 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 17376 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 17456 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 17472 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 17500 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 17708 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 17908 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 17924 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17932 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17940 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17948 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17956 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17964 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17972 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17980 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17988 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 17996 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18004 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18012 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18020 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 18028 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 18036 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 18044 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 18052 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 18060 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 18068 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 18104 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 18110 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 18116 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 18152 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 18158 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 18164 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 18196 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 18204 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 18212 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 18244 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 18252 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 18260 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 18292 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 18300 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 19812 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 19836 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 20612 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 20618 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 20624 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 20630 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 20636 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 20642 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 20648 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 20654 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 20660 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 20666 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 20672 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 20678 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 20702 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 20710 */ uint8_t alignmentFill_at_20710[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 20712); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:21 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:18 UTC 2024 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures_subaru_eg33_f7.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures_subaru_eg33_f7.h index 73c396cef4..4fb42767ee 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures_subaru_eg33_f7.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures_subaru_eg33_f7.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:24 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:20 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:24 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:20 UTC 2024 diff --git a/firmware/console/binary/output_channels_generated.h b/firmware/console/binary/output_channels_generated.h index bc9ca98b0d..7bd7426b6c 100644 --- a/firmware/console/binary/output_channels_generated.h +++ b/firmware/console/binary/output_channels_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) console/binary/output_channels.txt Wed Jan 03 03:26:04 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) console/binary/output_channels.txt Wed Jan 03 20:30:09 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -153,92 +153,92 @@ struct output_channels_s { bool unusedBit_28_31 : 1 {}; /** * @@GAUGE_NAME_RPM@@ - RPM + * units: RPM * offset 4 */ uint16_t RPMValue = (uint16_t)0; /** * dRPM - RPM acceleration + * units: RPM acceleration * offset 6 */ int16_t rpmAcceleration = (int16_t)0; /** * @@GAUGE_NAME_GEAR_RATIO@@ - value + * units: value * offset 8 */ scaled_channel speedToRpmRatio = (uint16_t)0; /** * @@GAUGE_NAME_VVS@@ - kph + * units: kph * offset 10 */ uint8_t unusedVehicleSpeedKph = (uint8_t)0; /** * @@GAUGE_NAME_CPU_TEMP@@ - deg C + * units: deg C * offset 11 */ int8_t internalMcuTemperature = (int8_t)0; /** * @@GAUGE_NAME_CLT@@ - deg C + * units: deg C * offset 12 */ scaled_channel coolant = (int16_t)0; /** * @@GAUGE_NAME_IAT@@ - deg C + * units: deg C * offset 14 */ scaled_channel intake = (int16_t)0; /** - deg C + * units: deg C * offset 16 */ scaled_channel auxTemp1 = (int16_t)0; /** - deg C + * units: deg C * offset 18 */ scaled_channel auxTemp2 = (int16_t)0; /** * @@GAUGE_NAME_TPS@@ - % + * units: % * offset 20 */ scaled_channel TPSValue = (int16_t)0; /** * @@GAUGE_NAME_THROTTLE_PEDAL@@ - % + * units: % * offset 22 */ scaled_channel throttlePedalPosition = (int16_t)0; /** - ADC + * units: ADC * offset 24 */ uint16_t tpsADC = (uint16_t)0; /** - V + * units: V * offset 26 */ scaled_channel rawMaf = (uint16_t)0; /** * @@GAUGE_NAME_AIR_FLOW_MEASURED@@ - kg/h + * units: kg/h * offset 28 */ scaled_channel mafMeasured = (uint16_t)0; /** * @@GAUGE_NAME_MAP@@ - kPa + * units: kPa * offset 30 */ scaled_channel MAPValue = (uint16_t)0; /** - kPa + * units: kPa * offset 32 */ scaled_channel baroPressure = (uint16_t)0; @@ -249,62 +249,62 @@ struct output_channels_s { scaled_channel lambdaValue = (uint16_t)0; /** * @@GAUGE_NAME_VBAT@@ - V + * units: V * offset 36 */ scaled_channel VBatt = (uint16_t)0; /** * @@GAUGE_NAME_OIL_PRESSURE@@ - kPa + * units: kPa * offset 38 */ scaled_channel oilPressure = (uint16_t)0; /** * @@GAUGE_NAME_VVT_B1I@@ - deg + * units: deg * offset 40 */ scaled_channel vvtPositionB1I = (int16_t)0; /** * @@GAUGE_NAME_FUEL_LAST_INJECTION@@ * Actual last injection time - including all compensation and injection mode - ms + * units: ms * offset 42 */ scaled_channel actualLastInjection = (uint16_t)0; /** * @@GAUGE_NAME_FUEL_INJ_DUTY@@ - % + * units: % * offset 44 */ scaled_channel injectorDutyCycle = (uint8_t)0; /** * @@GAUGE_NAME_FUEL_VE@@ - ratio + * units: ratio * offset 45 */ scaled_channel veValue = (uint8_t)0; /** * @@GAUGE_NAME_FUEL_INJECTION_TIMING@@ - deg + * units: deg * offset 46 */ int16_t injectionOffset = (int16_t)0; /** * @@GAUGE_NAME_ENGINE_CRC16@@ - crc16 + * units: crc16 * offset 48 */ uint16_t engineMakeCodeNameCrc16 = (uint16_t)0; /** * @@GAUGE_NAME_FUEL_WALL_AMOUNT@@ - mg + * units: mg * offset 50 */ scaled_channel wallFuelAmount = (uint16_t)0; /** * @@GAUGE_NAME_FUEL_WALL_CORRECTION@@ - mg + * units: mg * offset 52 */ scaled_channel wallFuelCorrectionValue = (int16_t)0; @@ -319,7 +319,7 @@ struct output_channels_s { uint16_t canReadCounter = (uint16_t)0; /** * @@GAUGE_NAME_FUEL_TPS_EXTRA@@ - ms + * units: ms * offset 58 */ scaled_channel tpsAccelFuel = (int16_t)0; @@ -335,95 +335,95 @@ struct output_channels_s { uint8_t currentInjectionMode = (uint8_t)0; /** * @@GAUGE_NAME_DWELL_DUTY@@ - % + * units: % * offset 62 */ scaled_channel coilDutyCycle = (uint16_t)0; /** * ETB Target - % + * units: % * offset 64 */ scaled_channel etbTarget = (int16_t)0; /** * @@GAUGE_NAME_ETB_DUTY@@ - % + * units: % * offset 66 */ scaled_channel etb1DutyCycle = (int16_t)0; /** * Fuel level - % + * units: % * offset 68 */ scaled_channel fuelTankLevel = (int16_t)0; /** * @@GAUGE_NAME_FUEL_CONSUMPTION@@ - grams + * units: grams * offset 70 */ uint16_t totalFuelConsumption = (uint16_t)0; /** * @@GAUGE_NAME_FUEL_FLOW@@ - gram/s + * units: gram/s * offset 72 */ scaled_channel fuelFlowRate = (uint16_t)0; /** * @@GAUGE_NAME_TPS2@@ - % + * units: % * offset 74 */ scaled_channel TPS2Value = (int16_t)0; /** * @@GAUGE_NAME_TUNE_CRC16@@ - crc16 + * units: crc16 * offset 76 */ uint16_t tuneCrc16 = (uint16_t)0; /** * need 4 byte alignment - units + * units: units * offset 78 */ uint8_t alignmentFill_at_78[2]; /** * @@GAUGE_NAME_UPTIME@@ - sec + * units: sec * offset 80 */ uint32_t seconds = (uint32_t)0; /** * Engine Mode - em + * units: em * offset 84 */ uint32_t engineMode = (uint32_t)0; /** * @@GAUGE_NAME_VERSION@@ - version_f + * units: version_f * offset 88 */ uint32_t firmwareVersion = (uint32_t)0; /** - V + * units: V * offset 92 */ scaled_channel rawIdlePositionSensor = (int16_t)0; /** - V + * units: V * offset 94 */ scaled_channel rawWastegatePosition = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_LAT@@ - G + * units: G * offset 96 */ scaled_channel accelerationLat = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_LON@@ - G + * units: G * offset 98 */ scaled_channel accelerationLon = (int16_t)0; @@ -437,48 +437,48 @@ struct output_channels_s { */ uint8_t maxTriggerReentrant = (uint8_t)0; /** - V + * units: V * offset 102 */ scaled_channel rawLowFuelPressure = (int16_t)0; /** - V + * units: V * offset 104 */ scaled_channel rawHighFuelPressure = (int16_t)0; /** * @@GAUGE_NAME_FUEL_PRESSURE_LOW@@ - kpa + * units: kpa * offset 106 */ scaled_channel lowFuelPressure = (int16_t)0; /** * @@GAUGE_NAME_DESIRED_GEAR@@ - gear + * units: gear * offset 108 */ int8_t tcuDesiredGear = (int8_t)0; /** * @@GAUGE_NAME_FLEX@@ - % + * units: % * offset 109 */ scaled_channel flexPercent = (uint8_t)0; /** * @@GAUGE_NAME_WG_POSITION@@ - % + * units: % * offset 110 */ scaled_channel wastegatePositionSensor = (int16_t)0; /** * @@GAUGE_NAME_FUEL_PRESSURE_HIGH@@ - bar + * units: bar * offset 112 */ scaled_channel highFuelPressure = (int16_t)0; /** * need 4 byte alignment - units + * units: units * offset 114 */ uint8_t alignmentFill_at_114[2]; @@ -497,7 +497,7 @@ struct output_channels_s { uint8_t idleStepperTargetPosition = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 122 */ uint8_t alignmentFill_at_122[2]; @@ -507,7 +507,7 @@ struct output_channels_s { uint32_t tsConfigVersion = (uint32_t)0; /** * @@GAUGE_NAME_TRG_ERR@@ - counter + * units: counter * offset 128 */ uint32_t totalTriggerErrorCounter = (uint32_t)0; @@ -517,109 +517,109 @@ struct output_channels_s { uint32_t orderingErrorCounter = (uint32_t)0; /** * @@GAUGE_NAME_WARNING_COUNTER@@ - count + * units: count * offset 136 */ uint16_t warningCounter = (uint16_t)0; /** * @@GAUGE_NAME_WARNING_LAST@@ - error + * units: error * offset 138 */ uint16_t lastErrorCode = (uint16_t)0; /** - error + * units: error * offset 140 */ uint16_t recentErrorCode[8]; /** - val + * units: val * offset 156 */ float debugFloatField1 = (float)0; /** - val + * units: val * offset 160 */ float debugFloatField2 = (float)0; /** - val + * units: val * offset 164 */ float debugFloatField3 = (float)0; /** - val + * units: val * offset 168 */ float debugFloatField4 = (float)0; /** - val + * units: val * offset 172 */ float debugFloatField5 = (float)0; /** - val + * units: val * offset 176 */ float debugFloatField6 = (float)0; /** - val + * units: val * offset 180 */ float debugFloatField7 = (float)0; /** - val + * units: val * offset 184 */ uint32_t debugIntField1 = (uint32_t)0; /** - val + * units: val * offset 188 */ uint32_t debugIntField2 = (uint32_t)0; /** - val + * units: val * offset 192 */ uint32_t debugIntField3 = (uint32_t)0; /** - val + * units: val * offset 196 */ int16_t debugIntField4 = (int16_t)0; /** - val + * units: val * offset 198 */ int16_t debugIntField5 = (int16_t)0; /** * EGT - deg C + * units: deg C * offset 200 */ uint16_t egt[EGT_CHANNEL_COUNT]; /** - V + * units: V * offset 216 */ scaled_channel rawTps1Primary = (int16_t)0; /** - V + * units: V * offset 218 */ scaled_channel rawPpsPrimary = (int16_t)0; /** - V + * units: V * offset 220 */ scaled_channel rawClt = (int16_t)0; /** - V + * units: V * offset 222 */ scaled_channel rawIat = (int16_t)0; /** - V + * units: V * offset 224 */ scaled_channel rawOilPressure = (int16_t)0; @@ -629,30 +629,30 @@ struct output_channels_s { uint8_t fuelClosedLoopBinIdx = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 227 */ uint8_t alignmentFill_at_227[1]; /** - V + * units: V * offset 228 */ scaled_channel rawPpsSecondary = (int16_t)0; /** * @@GAUGE_NAME_IDLE_POSITION@@ - % + * units: % * offset 230 */ scaled_channel idlePositionSensor = (int16_t)0; /** * @@GAUGE_NAME_AFR@@ - AFR + * units: AFR * offset 232 */ scaled_channel AFRValue = (uint16_t)0; /** * Vss Accel - m/s2 + * units: m/s2 * offset 234 */ scaled_channel VssAcceleration = (uint16_t)0; @@ -663,129 +663,129 @@ struct output_channels_s { scaled_channel lambdaValue2 = (uint16_t)0; /** * @@GAUGE_NAME_AFR2@@ - AFR + * units: AFR * offset 238 */ scaled_channel AFRValue2 = (uint16_t)0; /** * @@GAUGE_NAME_VVT_B1E@@ - deg + * units: deg * offset 240 */ scaled_channel vvtPositionB1E = (int16_t)0; /** * @@GAUGE_NAME_VVT_B2I@@ - deg + * units: deg * offset 242 */ scaled_channel vvtPositionB2I = (int16_t)0; /** * @@GAUGE_NAME_VVT_B2E@@ - deg + * units: deg * offset 244 */ scaled_channel vvtPositionB2E = (int16_t)0; /** * Fuel: Trim bank - % + * units: % * offset 246 */ scaled_channel fuelPidCorrection[2]; /** - V + * units: V * offset 250 */ scaled_channel rawTps1Secondary = (int16_t)0; /** - V + * units: V * offset 252 */ scaled_channel rawTps2Primary = (int16_t)0; /** - V + * units: V * offset 254 */ scaled_channel rawTps2Secondary = (int16_t)0; /** * @@GAUGE_NAME_ACCEL_VERT@@ - G + * units: G * offset 256 */ scaled_channel accelerationVert = (int16_t)0; /** * @@GAUGE_NAME_GYRO_YAW@@ - deg/sec + * units: deg/sec * offset 258 */ scaled_channel gyroYaw = (int16_t)0; /** - deg + * units: deg * offset 260 */ int8_t vvtTargets[4]; /** * @@GAUGE_NAME_TURBO_SPEED@@ - hz + * units: hz * offset 264 */ uint16_t turboSpeed = (uint16_t)0; /** * Ign: Timing Cyl - deg + * units: deg * offset 266 */ scaled_channel ignitionAdvanceCyl[MAX_CYLINDER_COUNT]; /** - % + * units: % * offset 290 */ scaled_channel tps1Split = (int16_t)0; /** - % + * units: % * offset 292 */ scaled_channel tps2Split = (int16_t)0; /** - % + * units: % * offset 294 */ scaled_channel tps12Split = (int16_t)0; /** - % + * units: % * offset 296 */ scaled_channel accPedalSplit = (int16_t)0; /** * Ign: Cut Code - code + * units: code * offset 298 */ int8_t sparkCutReason = (int8_t)0; /** * Fuel: Cut Code - code + * units: code * offset 299 */ int8_t fuelCutReason = (int8_t)0; /** * @@GAUGE_NAME_AIR_FLOW_ESTIMATE@@ - kg/h + * units: kg/h * offset 300 */ scaled_channel mafEstimate = (uint16_t)0; /** * sync: instant RPM - rpm + * units: rpm * offset 302 */ uint16_t instantRpm = (uint16_t)0; /** - V + * units: V * offset 304 */ scaled_channel rawMap = (uint16_t)0; /** - V + * units: V * offset 306 */ scaled_channel rawAfr = (uint16_t)0; @@ -795,13 +795,13 @@ struct output_channels_s { float calibrationValue2 = (float)0; /** * Lua: Tick counter - count + * units: count * offset 312 */ uint32_t luaInvocationCounter = (uint32_t)0; /** * Lua: Last tick duration - nt + * units: nt * offset 316 */ uint32_t luaLastCycleDuration = (uint32_t)0; @@ -824,18 +824,18 @@ struct output_channels_s { */ scaled_channel auxLinear2 = (int16_t)0; /** - kPa + * units: kPa * offset 332 */ scaled_channel fallbackMap = (uint16_t)0; /** * Instant MAP - kPa + * units: kPa * offset 334 */ scaled_channel instantMAPValue = (uint16_t)0; /** - us + * units: us * offset 336 */ uint16_t maxLockedDuration = (uint16_t)0; @@ -851,7 +851,7 @@ struct output_channels_s { uint16_t canWriteNotOk = (uint16_t)0; /** * need 4 byte alignment - units + * units: units * offset 342 */ uint8_t alignmentFill_at_342[2]; @@ -930,30 +930,30 @@ struct output_channels_s { pid_status_s vvtStatus[CAM_INPUTS_COUNT]; /** * Aux speed 1 - s + * units: s * offset 516 */ uint16_t auxSpeed1 = (uint16_t)0; /** * Aux speed 2 - s + * units: s * offset 518 */ uint16_t auxSpeed2 = (uint16_t)0; /** * @@GAUGE_NAME_ISS@@ - RPM + * units: RPM * offset 520 */ uint16_t ISSValue = (uint16_t)0; /** - V + * units: V * offset 522 */ scaled_channel rawAnalogInput[LUA_ANALOG_INPUT_COUNT]; /** * GPPWM Output - % + * units: % * offset 538 */ scaled_channel gppwmOutput[4]; @@ -966,7 +966,7 @@ struct output_channels_s { */ scaled_channel gppwmYAxis[4]; /** - V + * units: V * offset 558 */ scaled_channel rawBattery = (int16_t)0; @@ -975,12 +975,12 @@ struct output_channels_s { */ scaled_channel ignBlendParameter[IGN_BLEND_COUNT]; /** - % + * units: % * offset 568 */ scaled_channel ignBlendBias[IGN_BLEND_COUNT]; /** - deg + * units: deg * offset 572 */ scaled_channel ignBlendOutput[IGN_BLEND_COUNT]; @@ -989,12 +989,12 @@ struct output_channels_s { */ scaled_channel veBlendParameter[VE_BLEND_COUNT]; /** - % + * units: % * offset 588 */ scaled_channel veBlendBias[VE_BLEND_COUNT]; /** - % + * units: % * offset 592 */ scaled_channel veBlendOutput[VE_BLEND_COUNT]; @@ -1003,12 +1003,12 @@ struct output_channels_s { */ scaled_channel boostOpenLoopBlendParameter[BOOST_BLEND_COUNT]; /** - % + * units: % * offset 604 */ scaled_channel boostOpenLoopBlendBias[BOOST_BLEND_COUNT]; /** - % + * units: % * offset 606 */ scaled_channel boostOpenLoopBlendOutput[BOOST_BLEND_COUNT]; @@ -1017,18 +1017,18 @@ struct output_channels_s { */ scaled_channel boostClosedLoopBlendParameter[BOOST_BLEND_COUNT]; /** - % + * units: % * offset 612 */ scaled_channel boostClosedLoopBlendBias[BOOST_BLEND_COUNT]; /** - % + * units: % * offset 614 */ scaled_channel boostClosedLoopBlendOutput[BOOST_BLEND_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 618 */ uint8_t alignmentFill_at_618[2]; @@ -1142,91 +1142,91 @@ struct output_channels_s { float mapFast = (float)0; /** * Lua: Gauge - value + * units: value * offset 632 */ float luaGauges[LUA_GAUGE_COUNT]; /** - V + * units: V * offset 640 */ scaled_channel rawMaf2 = (uint16_t)0; /** * @@GAUGE_NAME_AIR_FLOW_MEASURED_2@@ - kg/h + * units: kg/h * offset 642 */ scaled_channel mafMeasured2 = (uint16_t)0; /** * @@GAUGE_NAME_VVS@@ - kph + * units: kph * offset 644 */ scaled_channel vehicleSpeedKph = (uint16_t)0; /** - % + * units: % * offset 646 */ scaled_channel Gego = (uint16_t)0; /** - count + * units: count * offset 648 */ uint16_t testBenchIter = (uint16_t)0; /** - deg C + * units: deg C * offset 650 */ scaled_channel oilTemp = (int16_t)0; /** - deg C + * units: deg C * offset 652 */ scaled_channel fuelTemp = (int16_t)0; /** - deg C + * units: deg C * offset 654 */ scaled_channel ambientTemp = (int16_t)0; /** - deg C + * units: deg C * offset 656 */ scaled_channel compressorDischargeTemp = (int16_t)0; /** - kPa + * units: kPa * offset 658 */ scaled_channel compressorDischargePressure = (uint16_t)0; /** - kPa + * units: kPa * offset 660 */ scaled_channel throttleInletPressure = (uint16_t)0; /** - sec + * units: sec * offset 662 */ uint16_t ignitionOnTime = (uint16_t)0; /** - sec + * units: sec * offset 664 */ uint16_t engineRunTime = (uint16_t)0; /** - km + * units: km * offset 666 */ scaled_channel distanceTraveled = (uint16_t)0; /** * @@GAUGE_NAME_AFR_GAS_SCALE@@ - AFR + * units: AFR * offset 668 */ scaled_channel afrGasolineScale = (uint16_t)0; /** * @@GAUGE_NAME_AFR2_GAS_SCALE@@ - AFR + * units: AFR * offset 670 */ scaled_channel afr2GasolineScale = (uint16_t)0; @@ -1242,4 +1242,4 @@ struct output_channels_s { static_assert(sizeof(output_channels_s) == 792); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) console/binary/output_channels.txt Wed Jan 03 03:26:04 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) console/binary/output_channels.txt Wed Jan 03 20:30:09 UTC 2024 diff --git a/firmware/controllers/actuators/ac_control_generated.h b/firmware/controllers/actuators/ac_control_generated.h index eb47b64c30..3512e8c687 100644 --- a/firmware/controllers/actuators/ac_control_generated.h +++ b/firmware/controllers/actuators/ac_control_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/ac_control.txt Tue Aug 22 18:19:47 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/ac_control.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -12,7 +12,7 @@ struct ac_control_s { int8_t acButtonState = (int8_t)0; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; @@ -133,4 +133,4 @@ struct ac_control_s { static_assert(sizeof(ac_control_s) == 16); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/ac_control.txt Tue Aug 22 18:19:47 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/ac_control.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/actuators/boost_control_generated.h b/firmware/controllers/actuators/boost_control_generated.h index 921ddbd49b..130623323e 100644 --- a/firmware/controllers/actuators/boost_control_generated.h +++ b/firmware/controllers/actuators/boost_control_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/boost_control.txt Fri Oct 20 00:44:15 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/boost_control.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -103,49 +103,49 @@ struct boost_control_s { bool unusedBit_10_31 : 1 {}; /** * "Boost: Lua target add" - v + * units: v * offset 4 */ scaled_channel luaTargetAdd = (int16_t)0; /** * @@GAUGE_NAME_BOOST_OUTPUT@@ - percent + * units: percent * offset 6 */ scaled_channel boostOutput = (int16_t)0; /** * "Boost: Lua target mult" - v + * units: v * offset 8 */ float luaTargetMult = (float)0; /** * @@GAUGE_NAME_BOOST_OPEN_LOOP@@ - v + * units: v * offset 12 */ float openLoopPart = (float)0; /** * "Boost: Lua open loop add" - v + * units: v * offset 16 */ float luaOpenLoopAdd = (float)0; /** * @@GAUGE_NAME_BOOST_CLOSED_LOOP@@ - % + * units: % * offset 20 */ scaled_channel boostControllerClosedLoopPart = (int8_t)0; /** * need 4 byte alignment - units + * units: units * offset 21 */ uint8_t alignmentFill_at_21[1]; /** * @@GAUGE_NAME_BOOST_TARGET@@ - kPa + * units: kPa * offset 22 */ scaled_channel boostControlTarget = (int16_t)0; @@ -153,4 +153,4 @@ struct boost_control_s { static_assert(sizeof(boost_control_s) == 24); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/boost_control.txt Fri Oct 20 00:44:15 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/boost_control.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/actuators/dc_motors_generated.h b/firmware/controllers/actuators/dc_motors_generated.h index b99c26a8a5..f2aae5b29a 100644 --- a/firmware/controllers/actuators/dc_motors_generated.h +++ b/firmware/controllers/actuators/dc_motors_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/dc_motors.txt Mon Feb 13 23:29:03 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/dc_motors.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,19 +7,19 @@ struct dc_motors_s { /** * "DC: output0" - per + * units: per * offset 0 */ float dcOutput0 = (float)0; /** * "DC: en0" - per + * units: per * offset 4 */ uint8_t isEnabled0_int = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 5 */ uint8_t alignmentFill_at_5[3]; @@ -123,4 +123,4 @@ struct dc_motors_s { static_assert(sizeof(dc_motors_s) == 12); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/actuators/dc_motors.txt Mon Feb 13 23:29:03 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/dc_motors.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/actuators/electronic_throttle_generated.h b/firmware/controllers/actuators/electronic_throttle_generated.h index 9ea85da8cc..5e04df4a01 100644 --- a/firmware/controllers/actuators/electronic_throttle_generated.h +++ b/firmware/controllers/actuators/electronic_throttle_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/electronic_throttle.txt Sun Dec 31 20:17:24 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/electronic_throttle.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,7 +7,7 @@ struct electronic_throttle_s { /** * "ETB: idlePosition" - per + * units: per * offset 0 */ float idlePosition = (float)0; @@ -18,13 +18,13 @@ struct electronic_throttle_s { float trim = (float)0; /** * "ETB: luaAdjustment" - per + * units: per * offset 8 */ float luaAdjustment = (float)0; /** * "DC: wastegatePosition" - per + * units: per * offset 12 */ float m_wastegatePosition = (float)0; @@ -37,12 +37,12 @@ struct electronic_throttle_s { */ float etbIntegralError = (float)0; /** - % + * units: % * offset 24 */ float etbCurrentTarget = (float)0; /** - % + * units: % * offset 28 */ float etbCurrentAdjustedTarget = (float)0; @@ -144,25 +144,25 @@ struct electronic_throttle_s { bool unusedBit_10_31 : 1 {}; /** * "ETB duty rate of change" - per + * units: per * offset 36 */ float etbDutyRateOfChange = (float)0; /** * "ETB average duty" - per + * units: per * offset 40 */ float etbDutyAverage = (float)0; /** * "ETB TPS error counter" - count + * units: count * offset 44 */ uint16_t etbTpsErrorCounter = (uint16_t)0; /** * "ETB pedal error counter" - count + * units: count * offset 46 */ uint16_t etbPpsErrorCounter = (uint16_t)0; @@ -176,7 +176,7 @@ struct electronic_throttle_s { int8_t tcEtbDrop = (int8_t)0; /** * ETB jam timer - sec + * units: sec * offset 50 */ scaled_channel jamTimer = (uint16_t)0; @@ -184,4 +184,4 @@ struct electronic_throttle_s { static_assert(sizeof(electronic_throttle_s) == 52); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/electronic_throttle.txt Sun Dec 31 20:17:24 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/electronic_throttle.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/actuators/idle_state_generated.h b/firmware/controllers/actuators/idle_state_generated.h index a395caff89..bb40a6ae17 100644 --- a/firmware/controllers/actuators/idle_state_generated.h +++ b/firmware/controllers/actuators/idle_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/idle_state.txt Sun Oct 22 22:35:39 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/idle_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -11,7 +11,7 @@ struct idle_state_s { idle_state_e idleState = (idle_state_e)0; /** * @@GAUGE_NAME_IAC@@ - % + * units: % * offset 4 */ percent_t currentIdlePosition = (percent_t)0; @@ -178,4 +178,4 @@ struct idle_state_s { static_assert(sizeof(idle_state_s) == 48); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/idle_state.txt Sun Oct 22 22:35:39 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/idle_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/actuators/vvt_generated.h b/firmware/controllers/actuators/vvt_generated.h index a263c6c1e2..a0797370b8 100644 --- a/firmware/controllers/actuators/vvt_generated.h +++ b/firmware/controllers/actuators/vvt_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/vvt.txt Mon Jul 03 17:39:43 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/vvt.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of vvt_s struct vvt_s { /** - deg + * units: deg * offset 0 */ scaled_channel vvtTarget = (uint16_t)0; /** - % + * units: % * offset 2 */ scaled_channel vvtOutput = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 3 */ uint8_t alignmentFill_at_3[1]; @@ -25,4 +25,4 @@ struct vvt_s { static_assert(sizeof(vvt_s) == 4); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/vvt.txt Mon Jul 03 17:39:43 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/actuators/vvt.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/algo/antilag_system_state_generated.h b/firmware/controllers/algo/antilag_system_state_generated.h index f047199645..129a6523a1 100644 --- a/firmware/controllers/algo/antilag_system_state_generated.h +++ b/firmware/controllers/algo/antilag_system_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/antilag_system_state.txt Sat Feb 25 03:30:19 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/antilag_system_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -106,12 +106,12 @@ struct antilag_system_state_s { */ float fuelALSCorrection = (float)0; /** - deg + * units: deg * offset 8 */ scaled_channel timingALSCorrection = (int16_t)0; /** - deg + * units: deg * offset 10 */ scaled_channel timingALSSkip = (int16_t)0; @@ -119,4 +119,4 @@ struct antilag_system_state_s { static_assert(sizeof(antilag_system_state_s) == 12); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/antilag_system_state.txt Sat Feb 25 03:30:19 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/antilag_system_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/algo/engine_state_generated.h b/firmware/controllers/algo/engine_state_generated.h index 0b66d05673..71da9dc1d5 100644 --- a/firmware/controllers/algo/engine_state_generated.h +++ b/firmware/controllers/algo/engine_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/engine_state.txt Tue Dec 26 22:46:57 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/engine_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,7 +7,7 @@ struct LuaAdjustments { /** * Lua: Fuel add - g + * units: g * offset 0 */ float fuelAdd = (float)0; @@ -119,13 +119,13 @@ static_assert(sizeof(LuaAdjustments) == 12); struct speed_density_s { /** * Air: Charge temperature estimate - deg C + * units: deg C * offset 0 */ scaled_channel tCharge = (int16_t)0; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; @@ -156,13 +156,13 @@ struct cranking_fuel_s { float durationCoefficient = (float)0; /** * Fuel: Cranking cycle mass - mg + * units: mg * offset 12 */ scaled_channel fuel = (uint16_t)0; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -190,7 +190,7 @@ struct engine_state_s { float baroCorrection = (float)0; /** * Detected Board ID - id + * units: id * offset 40 */ int16_t hellenBoardId = (int16_t)0; @@ -227,7 +227,7 @@ struct engine_state_s { int8_t smartChipAliveCounter = (int8_t)0; /** * need 4 byte alignment - units + * units: units * offset 49 */ uint8_t alignmentFill_at_49[3]; @@ -341,13 +341,13 @@ struct engine_state_s { float egtValue2 = (float)0; /** * User-defined RPM hard limit - rpm + * units: rpm * offset 68 */ int16_t desiredRpmLimit = (int16_t)0; /** * need 4 byte alignment - units + * units: units * offset 70 */ uint8_t alignmentFill_at_70[2]; @@ -372,13 +372,13 @@ struct engine_state_s { */ float ignitionLoad = (float)0; /** - % + * units: % * offset 88 */ scaled_channel veTableYAxis = (uint16_t)0; /** * need 4 byte alignment - units + * units: units * offset 90 */ uint8_t alignmentFill_at_90[2]; @@ -386,4 +386,4 @@ struct engine_state_s { static_assert(sizeof(engine_state_s) == 92); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/engine_state.txt Tue Dec 26 22:46:57 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/engine_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/algo/fuel/fuel_computer_generated.h b/firmware/controllers/algo/fuel/fuel_computer_generated.h index f73722f401..86f43e79d5 100644 --- a/firmware/controllers/algo/fuel/fuel_computer_generated.h +++ b/firmware/controllers/algo/fuel/fuel_computer_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/fuel_computer.txt Thu Nov 23 14:52:31 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/fuel_computer.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -21,21 +21,21 @@ struct running_fuel_s { */ float coolantTemperatureCoefficient = (float)0; /** - secs + * units: secs * offset 12 */ float timeSinceCrankingInSecs = (float)0; /** * @@GAUGE_NAME_FUEL_BASE@@ * This is the raw value we take from the fuel map or base fuel algorithm, before the corrections - mg + * units: mg * offset 16 */ scaled_channel baseFuel = (uint16_t)0; /** * @@GAUGE_NAME_FUEL_RUNNING@@ * Total fuel with CLT IAT and TPS acceleration without injector lag corrections per cycle, as pulse per cycle - mg + * units: mg * offset 18 */ scaled_channel fuel = (uint16_t)0; @@ -46,7 +46,7 @@ static_assert(sizeof(running_fuel_s) == 20); struct fuel_computer_s { /** * Fuel: Total correction - mult + * units: mult * offset 0 */ float totalFuelCorrection = (float)0; @@ -55,7 +55,7 @@ struct fuel_computer_s { */ running_fuel_s running; /** - % + * units: % * offset 24 */ scaled_channel afrTableYAxis = (uint16_t)0; @@ -66,13 +66,13 @@ struct fuel_computer_s { scaled_channel targetLambda = (uint16_t)0; /** * @@GAUGE_NAME_TARGET_AFR@@ - ratio + * units: ratio * offset 28 */ scaled_channel targetAFR = (uint16_t)0; /** * Fuel: Stoich ratio - ratio + * units: ratio * offset 30 */ scaled_channel stoichiometricRatio = (uint16_t)0; @@ -82,13 +82,13 @@ struct fuel_computer_s { float sdTcharge_coff = (float)0; /** * @@GAUGE_NAME_AIR_MASS@@ - g + * units: g * offset 36 */ float sdAirMassInOneCylinder = (float)0; /** * Air: Normalized cyl filling - % + * units: % * offset 40 */ float normalizedCylinderFilling = (float)0; @@ -98,7 +98,7 @@ struct fuel_computer_s { uint8_t brokenInjector = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 45 */ uint8_t alignmentFill_at_45[3]; @@ -202,4 +202,4 @@ struct fuel_computer_s { static_assert(sizeof(fuel_computer_s) == 52); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/fuel_computer.txt Thu Nov 23 14:52:31 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/fuel_computer.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/algo/fuel/injector_model_generated.h b/firmware/controllers/algo/fuel/injector_model_generated.h index 56faa5071e..4eeeaaba70 100644 --- a/firmware/controllers/algo/fuel/injector_model_generated.h +++ b/firmware/controllers/algo/fuel/injector_model_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/injector_model.txt Thu Dec 21 21:47:23 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/injector_model.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,13 +7,13 @@ struct injector_model_s { /** * @@GAUGE_NAME_INJECTOR_LAG@@ - ms + * units: ms * offset 0 */ float m_deadtime = (float)0; /** * Fuel: Injector pressure delta - kPa + * units: kPa * offset 4 */ float pressureDelta = (float)0; @@ -26,4 +26,4 @@ struct injector_model_s { static_assert(sizeof(injector_model_s) == 12); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/injector_model.txt Thu Dec 21 21:47:23 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/fuel/injector_model.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/algo/ignition_state_generated.h b/firmware/controllers/algo/ignition_state_generated.h index a6d520d5ce..f109d2407a 100644 --- a/firmware/controllers/algo/ignition_state_generated.h +++ b/firmware/controllers/algo/ignition_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/ignition_state.txt Wed May 31 21:17:03 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/ignition_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,13 +7,13 @@ struct ignition_state_s { /** * "Ignition: base dwell" - ms + * units: ms * offset 0 */ float baseDwell = (float)0; /** * @@GAUGE_COIL_DWELL_TIME@@ - ms + * units: ms * offset 4 */ floatms_t sparkDwell = (floatms_t)0; @@ -22,43 +22,43 @@ struct ignition_state_s { * as crankshaft angle * NAN if engine is stopped * See also sparkDwell - deg + * units: deg * offset 8 */ angle_t dwellAngle = (angle_t)0; /** * Ign: CLT correction - deg + * units: deg * offset 12 */ scaled_channel cltTimingCorrection = (int16_t)0; /** * Ign: IAT correction - deg + * units: deg * offset 14 */ scaled_channel timingIatCorrection = (int16_t)0; /** * Idle: Timing adjustment - deg + * units: deg * offset 16 */ scaled_channel timingPidCorrection = (int16_t)0; /** * @@GAUGE_NAME_TIMING_ADVANCE@@ - deg + * units: deg * offset 18 */ scaled_channel baseIgnitionAdvance = (int16_t)0; /** * @@GAUGE_NAME_ADJUSTED_TIMING@@ - deg + * units: deg * offset 20 */ scaled_channel correctedIgnitionAdvance = (int16_t)0; /** * need 4 byte alignment - units + * units: units * offset 22 */ uint8_t alignmentFill_at_22[2]; @@ -69,13 +69,13 @@ struct ignition_state_s { float dwellVoltageCorrection = (float)0; /** * Ign: Lua timing add - deg + * units: deg * offset 28 */ float luaTimingAdd = (float)0; /** * Ign: Lua timing mult - deg + * units: deg * offset 32 */ float luaTimingMult = (float)0; @@ -180,4 +180,4 @@ struct ignition_state_s { static_assert(sizeof(ignition_state_s) == 40); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/algo/ignition_state.txt Wed May 31 21:17:03 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/algo/ignition_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/engine_cycle/high_pressure_fuel_pump_generated.h b/firmware/controllers/engine_cycle/high_pressure_fuel_pump_generated.h index d127b664f9..598b61b5bc 100644 --- a/firmware/controllers/engine_cycle/high_pressure_fuel_pump_generated.h +++ b/firmware/controllers/engine_cycle/high_pressure_fuel_pump_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle/high_pressure_fuel_pump.txt Mon Mar 06 04:15:17 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/engine_cycle/high_pressure_fuel_pump.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -129,7 +129,7 @@ struct high_pressure_fuel_pump_s { angle_t nextLobe = (angle_t)0; /** * GDI: next start - v + * units: v * offset 24 */ float di_nextStart = (float)0; @@ -137,4 +137,4 @@ struct high_pressure_fuel_pump_s { static_assert(sizeof(high_pressure_fuel_pump_s) == 28); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/engine_cycle/high_pressure_fuel_pump.txt Mon Mar 06 04:15:17 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/engine_cycle/high_pressure_fuel_pump.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/engine_cycle/knock_controller_generated.h b/firmware/controllers/engine_cycle/knock_controller_generated.h index 3967a3ba09..b47d22aec8 100644 --- a/firmware/controllers/engine_cycle/knock_controller_generated.h +++ b/firmware/controllers/engine_cycle/knock_controller_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/engine_cycle/knock_controller.txt Tue Sep 26 02:21:02 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/engine_cycle/knock_controller.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,19 +7,19 @@ struct knock_controller_s { /** * @@GAUGE_NAME_KNOCK_LEVEL@@ - Volts + * units: Volts * offset 0 */ float m_knockLevel = (float)0; /** * Knock: Cyl - dBv + * units: dBv * offset 4 */ int8_t m_knockCyl[12]; /** * @@GAUGE_NAME_KNOCK_RETARD@@ - deg + * units: deg * offset 16 */ angle_t m_knockRetard = (angle_t)0; @@ -42,4 +42,4 @@ struct knock_controller_s { static_assert(sizeof(knock_controller_s) == 32); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/engine_cycle/knock_controller.txt Tue Sep 26 02:21:02 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/engine_cycle/knock_controller.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-2chan.h b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-2chan.h index c3c5c2159c..7033dd9d2e 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-2chan.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-2chan.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:27 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:23 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:27 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:23 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan.h b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan.h index 5dcb3cca58..b90a30a605 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:30 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:26 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:30 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:26 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan_f7.h b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan_f7.h index 177133def4..81d1a8a81f 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan_f7.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-4chan_f7.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:33 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:28 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:33 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:28 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan-revA.h b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan-revA.h index 1595de6caf..74cb08b7f5 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan-revA.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan-revA.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:41 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:36 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:41 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:36 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan.h b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan.h index fe47591d44..5e1c96f7dd 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:35 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:31 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1328 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1330 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1337 */ uint8_t alignmentFill_at_1337[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1341 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1343 */ uint8_t alignmentFill_at_1343[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1344 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1348 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1352 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1364 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1366 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1368 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1372 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1376 */ float idleStepperReactionTime; /** - count + * units: count * offset 1380 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1384 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1388 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1396 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1444 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1448 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1450 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1455 */ uint8_t alignmentFill_at_1455[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1458 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1459 */ uint8_t alignmentFill_at_1459[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1460 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1464 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1468 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1470 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1492 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1508 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1512 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1516 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1518 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1520 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1528 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1530 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1538 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1539 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1540 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1541 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1542 */ uint8_t alignmentFill_at_1542[2]; /** * 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. - roc + * units: roc * offset 1544 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1555 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1556 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1560 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1564 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1568 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1572 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1576 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1584 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1585 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1586 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1587 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1594 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1596 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1597 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1599 */ uint8_t alignmentFill_at_1599[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1611 */ uint8_t alignmentFill_at_1611[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1612 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1616 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1632 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1648 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1652 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1656 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1660 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1673 */ uint8_t alignmentFill_at_1673[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1676 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1698 */ 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 - deg BTDC + * units: deg BTDC * offset 1699 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1700 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1706 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1707 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1744 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1748 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1892 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1916 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 2004 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 2006 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2029 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2030 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2032 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2080 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2101 */ uint8_t alignmentFill_at_2101[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2176 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2205 */ uint8_t alignmentFill_at_2205[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2208 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2209 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2215 */ uint8_t alignmentFill_at_2215[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2218 */ uint8_t alignmentFill_at_2218[2]; /** - hz + * units: hz * offset 2220 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2224 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2228 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2229 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2236 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2238 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2240 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2242 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2660 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2676 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2684 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2685 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2686 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2687 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2688 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2700 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2710 */ uint8_t alignmentFill_at_2710[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3144 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3146 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3148 */ 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. - us + * units: us * offset 3150 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3152 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3154 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3156 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3158 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3160 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3171 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3187 */ uint8_t alignmentFill_at_3187[1]; /** - ratio + * units: ratio * offset 3188 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3260 */ 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. - rpm + * units: rpm * offset 3332 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3333 */ scaled_channel 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. - sec + * units: sec * offset 3334 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3335 */ uint8_t alignmentFill_at_3335[1]; /** - mg + * units: mg * offset 3336 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3338 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3342 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3343 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3346 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3347 */ uint8_t alignmentFill_at_3347[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3348 */ scaled_channel 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) - deg + * units: deg * offset 3350 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3352 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3354 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3356 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3358 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3374 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3390 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3398 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3414 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3614 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3634 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3644 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3744 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3764 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3782 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3802 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3804 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3828 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3852 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3888 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3900 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3914 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3963 */ uint8_t alignmentFill_at_3963[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3969 */ uint8_t alignmentFill_at_3969[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3975 */ uint8_t alignmentFill_at_3975[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3980 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 4003 */ uint8_t alignmentFill_at_4003[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4073 */ uint8_t alignmentFill_at_4073[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4090 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4094 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4096 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4098 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4100 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4101 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4104 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4108 */ int ALSIdleAdd; /** - % + * units: % * offset 4112 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4120 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4122 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4123 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4138 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4140 */ 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) - RPM + * units: RPM * offset 4142 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4143 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4144 */ scaled_channel 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 - RPM + * units: RPM * offset 4145 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4146 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4148 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4149 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4159 */ uint8_t alignmentFill_at_4159[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4164 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4165 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4184 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4186 */ uint8_t alignmentFill_at_4186[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4348 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4364 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4400 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4572 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4604 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4636 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4700 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4708 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4716 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4732 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4748 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4764 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4780 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4812 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4844 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4908 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4972 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5036 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5100 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5132 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5164 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5196 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5228 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5260 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5292 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5324 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5356 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5372 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5388 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5452 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5484 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5580 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5588 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5596 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5612 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5748 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5780 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5812 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5844 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5940 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 6012 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6020 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6084 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6092 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6100 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6132 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6164 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6172 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6204 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6208 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6212 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14244 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14308 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14372 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14436 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14500 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14532 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14564 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14596 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14628 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14692 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14756 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14884 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 15012 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15076 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15084 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15092 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15604 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15636 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15668 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15728 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16240 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16272 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16304 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16368 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16384 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16400 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16464 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16480 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16496 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 17008 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17040 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17072 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17584 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17616 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17648 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17936 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17968 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18224 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18256 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18288 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18544 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18560 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18576 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18640 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18656 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18672 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18736 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18752 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18768 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18848 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18864 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18892 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19100 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19300 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19316 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19404 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19412 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19420 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19428 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19436 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19444 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19452 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19460 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19496 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19502 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19508 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19544 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19550 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19556 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19588 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19596 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19604 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19636 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19644 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19652 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19684 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19692 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21204 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21228 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 22004 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 22010 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22016 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22022 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22028 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22034 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22040 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22046 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22052 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22058 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22064 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22070 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22094 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22102 */ uint8_t alignmentFill_at_22102[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22104); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:35 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:31 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan_f7.h b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan_f7.h index 1abf34cbba..02bef7a8cb 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan_f7.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_alphax-8chan_f7.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:38 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:34 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1328 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1330 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1337 */ uint8_t alignmentFill_at_1337[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1341 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1343 */ uint8_t alignmentFill_at_1343[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1344 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1348 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1352 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1364 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1366 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1368 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1372 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1376 */ float idleStepperReactionTime; /** - count + * units: count * offset 1380 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1384 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1388 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1396 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1444 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1448 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1450 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1455 */ uint8_t alignmentFill_at_1455[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1458 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1459 */ uint8_t alignmentFill_at_1459[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1460 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1464 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1468 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1470 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1492 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1508 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1512 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1516 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1518 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1520 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1528 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1530 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1538 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1539 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1540 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1541 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1542 */ uint8_t alignmentFill_at_1542[2]; /** * 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. - roc + * units: roc * offset 1544 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1555 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1556 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1560 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1564 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1568 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1572 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1576 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1584 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1585 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1586 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1587 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1594 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1596 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1597 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1599 */ uint8_t alignmentFill_at_1599[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1611 */ uint8_t alignmentFill_at_1611[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1612 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1616 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1632 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1648 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1652 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1656 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1660 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1673 */ uint8_t alignmentFill_at_1673[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1676 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1698 */ 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 - deg BTDC + * units: deg BTDC * offset 1699 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1700 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1706 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1707 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1744 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1748 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1892 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1916 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 2004 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 2006 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2029 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2030 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2032 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2080 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2101 */ uint8_t alignmentFill_at_2101[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2176 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2205 */ uint8_t alignmentFill_at_2205[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2208 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2209 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2215 */ uint8_t alignmentFill_at_2215[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2218 */ uint8_t alignmentFill_at_2218[2]; /** - hz + * units: hz * offset 2220 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2224 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2228 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2229 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2236 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2238 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2240 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2242 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2660 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2676 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2684 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2685 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2686 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2687 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2688 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2700 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2710 */ uint8_t alignmentFill_at_2710[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3144 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3146 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3148 */ 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. - us + * units: us * offset 3150 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3152 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3154 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3156 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3158 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3160 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3171 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3187 */ uint8_t alignmentFill_at_3187[1]; /** - ratio + * units: ratio * offset 3188 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3260 */ 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. - rpm + * units: rpm * offset 3332 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3333 */ scaled_channel 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. - sec + * units: sec * offset 3334 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3335 */ uint8_t alignmentFill_at_3335[1]; /** - mg + * units: mg * offset 3336 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3338 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3342 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3343 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3346 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3347 */ uint8_t alignmentFill_at_3347[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3348 */ scaled_channel 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) - deg + * units: deg * offset 3350 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3352 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3354 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3356 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3358 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3374 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3390 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3398 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3414 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3614 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3634 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3644 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3744 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3764 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3782 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3802 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3804 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3828 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3852 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3888 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3900 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3914 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3963 */ uint8_t alignmentFill_at_3963[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3969 */ uint8_t alignmentFill_at_3969[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3975 */ uint8_t alignmentFill_at_3975[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3980 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 4003 */ uint8_t alignmentFill_at_4003[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4073 */ uint8_t alignmentFill_at_4073[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4090 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4094 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4096 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4098 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4100 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4101 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4104 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4108 */ int ALSIdleAdd; /** - % + * units: % * offset 4112 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4120 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4122 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4123 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4138 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4140 */ 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) - RPM + * units: RPM * offset 4142 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4143 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4144 */ scaled_channel 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 - RPM + * units: RPM * offset 4145 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4146 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4148 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4149 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4159 */ uint8_t alignmentFill_at_4159[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4164 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4165 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4184 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4186 */ uint8_t alignmentFill_at_4186[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4348 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4364 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4400 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4572 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4604 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4636 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4700 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4708 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4716 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4732 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4748 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4764 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4780 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4812 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4844 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4908 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4972 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5036 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5100 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5132 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5164 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5196 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5228 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5260 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5292 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5324 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5356 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5372 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5388 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5452 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5484 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5580 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5588 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5596 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5612 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5748 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5780 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5812 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5844 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5940 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 6012 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6020 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6084 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6092 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6100 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6132 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6164 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6172 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6204 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6208 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6212 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14244 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14308 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14372 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14436 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14500 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14532 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14564 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14596 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14628 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14692 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14756 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14884 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 15012 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15076 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15084 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15092 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15604 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15636 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15668 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15728 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16240 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16272 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16304 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16368 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16384 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16400 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16464 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16480 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16496 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 17008 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17040 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17072 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17584 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17616 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17648 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17936 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17968 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18224 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18256 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18288 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18544 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18560 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18576 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18640 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18656 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18672 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18736 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18752 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18768 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18848 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18864 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18892 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19100 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19300 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19316 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19404 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19412 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19420 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19428 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19436 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19444 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19452 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19460 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19496 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19502 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19508 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19544 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19550 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19556 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19588 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19596 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19604 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19636 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19644 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19652 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19684 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19692 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21204 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21228 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 22004 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 22010 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22016 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22022 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22028 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22034 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22040 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22046 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22052 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22058 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22064 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22070 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22094 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22102 */ uint8_t alignmentFill_at_22102[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22104); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:38 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:34 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_at_start_f435.h b/firmware/controllers/generated/engine_configuration_generated_structures_at_start_f435.h index 3514ed210d..a156b73c37 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_at_start_f435.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_at_start_f435.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:17 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:32:06 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:17 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:32:06 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_atlas.h b/firmware/controllers/generated/engine_configuration_generated_structures_atlas.h index 2ed53d9681..9ad52c67c8 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_atlas.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_atlas.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:09 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:58 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 34 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 66 */ uint8_t alignmentFill_at_66[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 68); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 2968 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 2970 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 2972 */ 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. - us + * units: us * offset 2974 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 2976 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 2978 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 2980 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 2982 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 2984 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 2995 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3011 */ uint8_t alignmentFill_at_3011[1]; /** - ratio + * units: ratio * offset 3012 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3084 */ 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. - rpm + * units: rpm * offset 3156 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3157 */ scaled_channel 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. - sec + * units: sec * offset 3158 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3159 */ uint8_t alignmentFill_at_3159[1]; /** - mg + * units: mg * offset 3160 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3162 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3166 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3167 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3170 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3172 */ scaled_channel 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) - deg + * units: deg * offset 3174 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3176 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3178 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3180 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3182 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3198 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3214 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3222 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3238 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3438 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3458 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3468 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3568 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3588 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3606 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3626 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3628 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3652 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3676 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3712 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3724 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3738 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3783 */ uint8_t alignmentFill_at_3783[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3787 */ uint8_t alignmentFill_at_3787[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3793 */ uint8_t alignmentFill_at_3793[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3799 */ uint8_t alignmentFill_at_3799[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3804 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3827 */ uint8_t alignmentFill_at_3827[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 3897 */ uint8_t alignmentFill_at_3897[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 3914 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 3918 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 3920 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 3922 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 3924 */ int8_t ALSMinCLT; /** - C + * units: C * offset 3925 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 3928 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 3932 */ int ALSIdleAdd; /** - % + * units: % * offset 3936 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 3944 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 3946 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 3947 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 3962 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 3964 */ 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) - RPM + * units: RPM * offset 3966 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 3967 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 3968 */ scaled_channel 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 - RPM + * units: RPM * offset 3969 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 3970 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 3972 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 3973 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 3983 */ uint8_t alignmentFill_at_3983[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 3988 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 3989 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4008 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4010 */ uint8_t alignmentFill_at_4010[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4156 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4172 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4188 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4224 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4396 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4428 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4460 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4524 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4532 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4540 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4556 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4572 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4588 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4604 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4636 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4668 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4732 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4796 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4860 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4924 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 4956 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 4988 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5020 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5052 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5084 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5116 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5148 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5180 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5196 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5212 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5276 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5308 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5404 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5412 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5420 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5436 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5572 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5604 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5636 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5668 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5732 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5768 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 5776 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 5840 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 5848 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 5856 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 5888 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 5920 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 5928 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 5960 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 5964 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 5968 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14000 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14064 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14128 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14192 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14256 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14288 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14320 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14352 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14384 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14448 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14512 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14640 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14768 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 14832 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 14840 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 14848 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15360 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15392 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15424 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15484 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 15996 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16028 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16060 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16124 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16140 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16156 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16220 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16236 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16252 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16508 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16540 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 16556 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17068 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17100 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17132 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17420 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17452 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 17708 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 17740 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 17772 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18028 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18044 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18060 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18124 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18140 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18156 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18220 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18236 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18252 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18332 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18348 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18376 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18584 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 18784 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 18800 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18808 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18816 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18824 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18832 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18840 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18848 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18856 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18864 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18872 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18880 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18888 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 18896 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 18904 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 18912 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 18920 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 18928 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 18936 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 18944 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 18980 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 18986 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 18992 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19028 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19034 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19040 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19072 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19080 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19088 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19120 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19128 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19136 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19168 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19176 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 20688 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 20712 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21488 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21494 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 21500 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 21506 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 21512 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 21518 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 21524 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 21530 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 21536 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 21542 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 21548 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 21554 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 21578 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 21586 */ uint8_t alignmentFill_at_21586[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 21588); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:09 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:58 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_f407-discovery.h b/firmware/controllers/generated/engine_configuration_generated_structures_f407-discovery.h index e28ad61481..b05c6f246f 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_f407-discovery.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_f407-discovery.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:14 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:32:03 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:14 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:32:03 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_f429-discovery.h b/firmware/controllers/generated/engine_configuration_generated_structures_f429-discovery.h index 3b41e86c94..c3dfde7cfe 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_f429-discovery.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_f429-discovery.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:54 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:44 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:54 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:44 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_f469-discovery.h b/firmware/controllers/generated/engine_configuration_generated_structures_f469-discovery.h index 73bf91dbe4..84816cd37a 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_f469-discovery.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_f469-discovery.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:56 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:46 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:56 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:46 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_frankenso_na6.h b/firmware/controllers/generated/engine_configuration_generated_structures_frankenso_na6.h index 4711d49e86..e711a738e1 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_frankenso_na6.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_frankenso_na6.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:38 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:29 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:38 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:29 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-112-17.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-112-17.h index 9785d42b5f..4ef793faa7 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-112-17.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-112-17.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:03 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:57 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:03 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:57 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-gm-e67.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-gm-e67.h index 939cdaa920..806eb3601a 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-gm-e67.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-gm-e67.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:14 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:07 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:14 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:07 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-honda-k.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-honda-k.h index 1edf7a2f52..eee65dd00e 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-honda-k.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-honda-k.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:52 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:47 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 17632 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17680 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17728 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 18240 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 18272 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 18304 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 18592 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 18624 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18880 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18912 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18944 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 19200 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 19216 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 19232 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 19296 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 19312 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 19328 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 19392 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 19408 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 19424 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 19504 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 19520 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19548 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19756 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19956 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19972 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19980 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19988 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19996 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20004 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20012 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20020 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20028 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20036 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20044 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20052 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20060 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 20068 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 20076 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 20084 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 20092 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 20100 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 20108 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 20116 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 20152 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 20158 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 20164 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 20200 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 20206 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 20212 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 20244 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 20252 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 20260 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 20292 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 20300 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 20308 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 20340 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 20348 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21860 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21884 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 22660 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 22666 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22672 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22678 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22684 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22690 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22696 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22702 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22708 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22714 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22720 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22726 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22750 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22758 */ uint8_t alignmentFill_at_22758[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22760); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:52 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:47 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-nb1.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-nb1.h index e6cec9aaea..f2948f5352 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen-nb1.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen-nb1.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:11 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:04 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:11 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:04 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen121nissan.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen121nissan.h index 0b3c3860c2..9ebf2eefa6 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen121nissan.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen121nissan.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:49 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:44 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:49 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:44 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen121vag.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen121vag.h index a8d14269b4..58b83ab390 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen121vag.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen121vag.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:47 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:41 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:47 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:41 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen128.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen128.h index 4e97615cbb..fe15541885 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen128.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen128.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:44 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:39 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:44 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:39 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen154hyundai.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen154hyundai.h index 9c283b33f5..2964c9b663 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen154hyundai.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen154hyundai.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:55 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:49 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:55 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:49 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen72.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen72.h index fad5cb0774..baed7c0856 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen72.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen72.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:06 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:59 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:06 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:59 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen81.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen81.h index dfc2ec9001..5d47524f57 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen81.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen81.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:09 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:02 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:09 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:02 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellen88bmw.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellen88bmw.h index a12be6891c..3cd1181ba7 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellen88bmw.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellen88bmw.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:58 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:52 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:39:58 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:52 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA6.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA6.h index 93a531f1d6..ab576b9de6 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA6.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA6.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:17 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:09 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:17 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:09 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA8_96.h b/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA8_96.h index bbf392d160..a4ea9ecc6b 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA8_96.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_hellenNA8_96.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:19 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:12 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:19 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:12 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_m74_9.h b/firmware/controllers/generated/engine_configuration_generated_structures_m74_9.h index 9000c54f9a..361210fb97 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_m74_9.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_m74_9.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:30 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:22 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:30 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:22 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_mre_f4.h b/firmware/controllers/generated/engine_configuration_generated_structures_mre_f4.h index dfb20fd5b5..42c26da309 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_mre_f4.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_mre_f4.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:27 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:19 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:27 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:19 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_mre_f7.h b/firmware/controllers/generated/engine_configuration_generated_structures_mre_f7.h index 6c55ea1c3b..a86b9e8c4f 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_mre_f7.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_mre_f7.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:25 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:17 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:25 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:17 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_nucleo_h743.h b/firmware/controllers/generated/engine_configuration_generated_structures_nucleo_h743.h index eceb09ac92..a43abf6ae0 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_nucleo_h743.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_nucleo_h743.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:07 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:56 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:07 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:56 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_405.h b/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_405.h index e5553917f0..6d48e7be4c 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_405.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_405.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:43 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:34 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:43 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:34 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_469.h b/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_469.h index 105317e3a9..535d7e0e03 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_469.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_prometheus_469.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:41 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:32 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:41 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:32 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f4.h b/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f4.h index 83489967b8..5b3b8bc8b8 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f4.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f4.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:48 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:39 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 18228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 18356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 18516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 18580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 18612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 18676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 18740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 18868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 18996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 19060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 19068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 19076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 19588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 19620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 19652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 19712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 20224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 20256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 20288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 20352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 20368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 20384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 20448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 20464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 20480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 20992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 21056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 21568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 21632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 21952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 22208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 22240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 22272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 22832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 22876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 23084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 23284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 23300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 23404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 23412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 23420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 23428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 23436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 23444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 23480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 23486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 23492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 23528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 23534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 23540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 23572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 23580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 23588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 23620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 23628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 23636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 23668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 23676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 25188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 25212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 25988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 25994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 26000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 26006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 26012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 26018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 26024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 26030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 26036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 26042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 26048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 26054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 26078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 26086 */ uint8_t alignmentFill_at_26086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 26088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:48 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:39 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f7.h b/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f7.h index adbd338579..c4f40cdb66 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f7.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_proteus_f7.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:46 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:36 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 18228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 18356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 18516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 18580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 18612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 18676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 18740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 18868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 18996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 19060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 19068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 19076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 19588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 19620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 19652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 19712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 20224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 20256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 20288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 20352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 20368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 20384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 20448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 20464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 20480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 20992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 21056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 21568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 21632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 21952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 22208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 22240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 22272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 22832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 22876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 23084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 23284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 23300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 23404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 23412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 23420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 23428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 23436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 23444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 23480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 23486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 23492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 23528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 23534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 23540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 23572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 23580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 23588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 23620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 23628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 23636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 23668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 23676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 25188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 25212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 25988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 25994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 26000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 26006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 26012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 26018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 26024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 26030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 26036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 26042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 26048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 26054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 26078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 26086 */ uint8_t alignmentFill_at_26086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 26088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:46 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:36 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_proteus_h7.h b/firmware/controllers/generated/engine_configuration_generated_structures_proteus_h7.h index 9b97090f67..c4a31fcecc 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_proteus_h7.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_proteus_h7.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:51 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:41 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 18228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 18356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 18516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 18548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 18580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 18612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 18676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 18740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 18868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 18996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 19060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 19068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 19076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 19588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 19620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 19652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 19712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 20224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 20256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 20288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 20352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 20368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 20384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 20448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 20464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 20480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 20992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 21056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 21568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 21632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 21920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 21952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 22208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 22240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 22272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 22720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 22752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 22832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 22848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 22876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 23084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 23284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 23300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 23396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 23404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 23412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 23420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 23428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 23436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 23444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 23480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 23486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 23492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 23528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 23534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 23540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 23572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 23580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 23588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 23620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 23628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 23636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 23668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 23676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 25188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 25212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 25988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 25994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 26000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 26006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 26012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 26018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 26024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 26030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 26036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 26042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 26048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 26054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 26078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 26086 */ uint8_t alignmentFill_at_26086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 26088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:51 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:41 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_s105.h b/firmware/controllers/generated/engine_configuration_generated_structures_s105.h index 64e02205e8..9116323be6 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_s105.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_s105.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:33 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:24 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:33 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:24 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_small-can-board.h b/firmware/controllers/generated/engine_configuration_generated_structures_small-can-board.h index 580f619bad..a98db45221 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_small-can-board.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_small-can-board.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:22 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:14 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:22 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:14 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_stm32f413_nucleo.h b/firmware/controllers/generated/engine_configuration_generated_structures_stm32f413_nucleo.h index fdb07c2c90..36e9fa88b3 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_stm32f413_nucleo.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_stm32f413_nucleo.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:59 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:49 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:59 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:49 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_stm32f429_nucleo.h b/firmware/controllers/generated/engine_configuration_generated_structures_stm32f429_nucleo.h index 94dc2adbcc..640a7f1513 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_stm32f429_nucleo.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_stm32f429_nucleo.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:02 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:51 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:02 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:51 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_stm32f767_nucleo.h b/firmware/controllers/generated/engine_configuration_generated_structures_stm32f767_nucleo.h index 9399b67dd9..42b7d64d54 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_stm32f767_nucleo.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_stm32f767_nucleo.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:04 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:53 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:04 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:53 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_t-b-g.h b/firmware/controllers/generated/engine_configuration_generated_structures_t-b-g.h index 7dfcdfe3da..97aaa85b29 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_t-b-g.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_t-b-g.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:36 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:27 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:36 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:31:27 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_tdg-pdm8.h b/firmware/controllers/generated/engine_configuration_generated_structures_tdg-pdm8.h index 590485eb8e..27425d67c3 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_tdg-pdm8.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_tdg-pdm8.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:12 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:32:01 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:41:12 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:32:01 UTC 2024 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures_uaefi.h b/firmware/controllers/generated/engine_configuration_generated_structures_uaefi.h index 65e0635745..567f6996af 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures_uaefi.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures_uaefi.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:00 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:54 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -6,18 +6,18 @@ // start of stft_cell_cfg_s struct stft_cell_cfg_s { /** - % + * units: % * offset 0 */ int8_t maxAdd; /** - % + * 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. - sec + * units: sec * offset 2 */ scaled_channel timeConstant; @@ -28,49 +28,49 @@ static_assert(sizeof(stft_cell_cfg_s) == 4); struct stft_s { /** * Below this RPM, the idle region is active - RPM + * units: RPM * offset 0 */ scaled_channel maxIdleRegionRpm; /** * Below this engine load, the overrun region is active - load + * units: load * offset 1 */ uint8_t maxOverrunLoad; /** * Above this engine load, the power region is active - load + * units: load * offset 2 */ uint8_t minPowerLoad; /** * 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: % * offset 3 */ scaled_channel deadband; /** * Below this temperature, correction is disabled. - C + * units: C * offset 4 */ int8_t minClt; /** * Below this AFR, correction is paused - afr + * units: afr * offset 5 */ scaled_channel minAfr; /** * Above this AFR, correction is paused - afr + * units: afr * offset 6 */ scaled_channel maxAfr; /** * Delay after starting the engine before beginning closed loop correction. - seconds + * units: seconds * offset 7 */ uint8_t startupDelay; @@ -102,7 +102,7 @@ struct pid_s { int16_t offset; /** * PID dTime - ms + * units: ms * offset 14 */ int16_t periodMs; @@ -125,20 +125,20 @@ 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. - mg + * 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 - RPM + * units: RPM * offset 4 */ int16_t rpm; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -155,32 +155,32 @@ struct gppwm_channel { /** * 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: 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. - hz + * 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; @@ -195,23 +195,23 @@ struct gppwm_channel { */ gppwm_channel_e rpmAxis; /** - load + * units: load * offset 10 */ scaled_channel loadBins[GPPWM_LOAD_COUNT]; /** - RPM + * units: RPM * offset 26 */ int16_t rpmBins[GPPWM_RPM_COUNT]; /** - duty + * units: duty * offset 42 */ scaled_channel table[GPPWM_LOAD_COUNT][GPPWM_RPM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 106 */ uint8_t alignmentFill_at_106[2]; @@ -222,13 +222,13 @@ static_assert(sizeof(gppwm_channel) == 108); struct air_pressure_sensor_config_s { /** * kPa value at low volts - kpa + * units: kpa * offset 0 */ float lowValue; /** * kPa value at high volts - kpa + * units: kpa * offset 4 */ float highValue; @@ -242,7 +242,7 @@ struct air_pressure_sensor_config_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -257,7 +257,7 @@ struct MAP_sensor_config_s { float samplingAngleBins[MAP_ANGLE_SIZE]; /** * MAP averaging sampling start crank degree angle - deg + * units: deg * offset 32 */ float samplingAngle[MAP_ANGLE_SIZE]; @@ -267,7 +267,7 @@ struct MAP_sensor_config_s { float samplingWindowBins[MAP_WINDOW_SIZE]; /** * MAP averaging angle crank degree duration - deg + * units: deg * offset 96 */ float samplingWindow[MAP_WINDOW_SIZE]; @@ -286,38 +286,38 @@ static_assert(sizeof(MAP_sensor_config_s) == 140); struct thermistor_conf_s { /** * these values are in Celcius - *C + * units: *C * offset 0 */ float tempC_1; /** - *C + * units: *C * offset 4 */ float tempC_2; /** - *C + * units: *C * offset 8 */ float tempC_3; /** - Ohm + * units: Ohm * offset 12 */ float resistance_1; /** - Ohm + * units: Ohm * offset 16 */ float resistance_2; /** - Ohm + * units: Ohm * offset 20 */ float resistance_3; /** * Pull-up resistor value on your board - Ohm + * units: Ohm * offset 24 */ float bias_resistor; @@ -332,12 +332,12 @@ struct linear_sensor_s { adc_channel_e hwChannel; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; /** - volts + * units: volts * offset 4 */ float v1; @@ -346,7 +346,7 @@ struct linear_sensor_s { */ float value1; /** - volts + * units: volts * offset 12 */ float v2; @@ -369,7 +369,7 @@ struct ThermistorConf { adc_channel_e adcChannel; /** * need 4 byte alignment - units + * units: units * offset 29 */ uint8_t alignmentFill_at_29[3]; @@ -383,18 +383,18 @@ struct injector_s { * By the way, g/s = 0.125997881 * (lb/hr) * g/s = 0.125997881 * (cc/min)/10.5 * g/s = 0.0119997981 * cc/min - cm3/min + * units: cm3/min * offset 0 */ float flow; /** - volts + * units: volts * offset 4 */ float battLagCorrBins[VBAT_INJECTOR_CURVE_SIZE]; /** * ms delay between injector open and close dead times - ms + * units: ms * offset 36 */ float battLagCorr[VBAT_INJECTOR_CURVE_SIZE]; @@ -410,12 +410,12 @@ struct trigger_config_s { */ trigger_type_e type; /** - number + * units: number * offset 4 */ int customTotalToothCount; /** - number + * units: number * offset 8 */ int customSkippedToothCount; @@ -434,27 +434,27 @@ struct afr_sensor_s { adc_channel_e hwChannel2; /** * need 4 byte alignment - units + * units: units * offset 2 */ uint8_t alignmentFill_at_2[2]; /** - volts + * units: volts * offset 4 */ float v1; /** - AFR + * units: AFR * offset 8 */ float value1; /** - volts + * units: volts * offset 12 */ float v2; /** - AFR + * units: AFR * offset 16 */ float value2; @@ -464,7 +464,7 @@ static_assert(sizeof(afr_sensor_s) == 20); // start of idle_hardware_s struct idle_hardware_s { /** - Hz + * units: Hz * offset 0 */ int solenoidFrequency; @@ -486,7 +486,7 @@ struct idle_hardware_s { pin_output_mode_e solenoidPinMode; /** * need 4 byte alignment - units + * units: units * offset 11 */ uint8_t alignmentFill_at_11[1]; @@ -518,12 +518,12 @@ static_assert(sizeof(dc_io) == 8); // start of vr_threshold_s struct vr_threshold_s { /** - rpm + * units: rpm * offset 0 */ scaled_channel rpmBins[6]; /** - volts + * units: volts * offset 6 */ scaled_channel values[6]; @@ -533,7 +533,7 @@ struct vr_threshold_s { Gpio pin; /** * need 4 byte alignment - units + * units: units * offset 14 */ uint8_t alignmentFill_at_14[2]; @@ -554,73 +554,73 @@ struct engine_configuration_s { uint16_t startButtonSuppressOnStartUpMs; /** * Disable sensor sniffer above this rpm - RPM + * units: RPM * offset 4 */ uint16_t sensorSnifferRpmThreshold; /** * A secondary Rev limit engaged by the driver to help launch the vehicle faster - rpm + * units: rpm * offset 6 */ uint16_t launchRpm; /** * set rpm_hard_limit X - rpm + * units: rpm * offset 8 */ uint16_t rpmHardLimit; /** * Engine sniffer would be disabled above this rpm * set engineSnifferRpmThreshold X - RPM + * units: RPM * offset 10 */ uint16_t engineSnifferRpmThreshold; /** * Disable multispark above this engine speed. - rpm + * units: rpm * offset 12 */ scaled_channel multisparkMaxRpm; /** * Above this RPM, disable AC. Set to 0 to disable check. - rpm + * units: rpm * offset 13 */ scaled_channel 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. - deg C + * units: deg C * offset 15 */ uint8_t maxAcClt; /** - RPM + * units: RPM * offset 16 */ uint16_t knockNoiseRpmBins[ENGINE_NOISE_CURVE_SIZE]; /** * This parameter sets the latest that the last multispark can occur after the main ignition event. For example, if the ignition timing is 30 degrees BTDC, and this parameter is set to 45, no multispark will ever be fired after 15 degrees ATDC. - deg + * units: deg * offset 48 */ uint8_t multisparkMaxSparkingAngle; /** * Configures the maximum number of extra sparks to fire (does not include main spark) - count + * units: count * offset 49 */ uint8_t multisparkMaxExtraSparkCount; /** * need 4 byte alignment - units + * units: units * offset 50 */ uint8_t alignmentFill_at_50[2]; @@ -749,7 +749,7 @@ struct engine_configuration_s { * Closed throttle, 1 volt = 200 units. * See also tps1_1AdcChannel * set tps_min X - ADC + * units: ADC * offset 124 */ int16_t tpsMin; @@ -757,21 +757,21 @@ struct engine_configuration_s { * Full throttle. * See also tps1_1AdcChannel * set tps_max X - ADC + * units: ADC * offset 126 */ int16_t tpsMax; /** * TPS error detection: what throttle % is unrealistically low? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 128 */ int16_t tpsErrorDetectionTooLow; /** * TPS error detection: what throttle % is unrealistically high? * Also used for accelerator pedal error detection if so equiped. - % + * units: % * offset 130 */ int16_t tpsErrorDetectionTooHigh; @@ -781,19 +781,19 @@ struct engine_configuration_s { cranking_parameters_s cranking; /** * Dwell duration while cranking - ms + * units: ms * offset 140 */ float ignitionDwellForCrankingMs; /** * Once engine speed passes this value, start reducing ETB angle. - rpm + * units: rpm * offset 144 */ 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. - rpm + * units: rpm * offset 146 */ uint16_t etbRevLimitRange; @@ -812,7 +812,7 @@ struct engine_configuration_s { */ ThermistorConf iat; /** - deg + * units: deg * offset 352 */ int launchTimingRetard; @@ -820,7 +820,7 @@ struct engine_configuration_s { * value '6' for 8MHz hw osc * read hip9011 datasheet for details * todo split into two bit fields - integer + * units: integer * offset 356 */ int hip9011PrescalerAndSDO; @@ -828,18 +828,18 @@ struct engine_configuration_s { * We calculate knock band based of cylinderBore * Use this to override - kHz knock band override * Requires power cycling to effect - kHz + * units: kHz * offset 360 */ float knockBandCustom; /** * Engine displacement in litres - L + * units: L * offset 364 */ scaled_channel displacement; /** - RPM + * units: RPM * offset 366 */ uint16_t triggerSimulatorRpm; @@ -854,13 +854,13 @@ struct engine_configuration_s { firing_order_e firingOrder; /** * need 4 byte alignment - units + * units: units * offset 373 */ uint8_t alignmentFill_at_373[3]; /** * Cylinder diameter in mm. - mm + * units: mm * offset 376 */ float cylinderBore; @@ -873,7 +873,7 @@ struct engine_configuration_s { */ engine_load_mode_e fuelAlgorithm; /** - % + * units: % * offset 381 */ uint8_t ALSMaxTPS; @@ -906,7 +906,7 @@ struct engine_configuration_s { * 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 - deg + * units: deg * offset 388 */ angle_t crankingTimingAngle; @@ -921,25 +921,25 @@ struct engine_configuration_s { ignition_mode_e ignitionMode; /** * How many consecutive gap rations have to match expected ranges for sync to happen - count + * units: count * offset 393 */ int8_t gapTrackingLengthOverride; /** * Above this speed, disable closed loop idle control. Set to 0 to disable (allow closed loop idle at any speed). - kph + * units: kph * offset 394 */ uint8_t maxIdleVss; /** * need 4 byte alignment - units + * units: units * offset 395 */ uint8_t alignmentFill_at_395[1]; /** * Expected oil pressure after starting the engine. If oil pressure does not reach this level within 5 seconds of engine start, fuel will be cut. Set to 0 to disable and always allow starting. - kPa + * units: kPa * offset 396 */ uint16_t minOilPressureAfterStart; @@ -950,14 +950,14 @@ struct engine_configuration_s { timing_mode_e timingMode; /** * need 4 byte alignment - units + * units: units * offset 399 */ uint8_t alignmentFill_at_399[1]; /** * This value is the ignition timing used when in 'fixed timing' mode, i.e. constant timing * This mode is useful when adjusting distributor location. - RPM + * units: RPM * offset 400 */ angle_t fixedModeTiming; @@ -966,31 +966,31 @@ struct engine_configuration_s { * Positive value in case of synchnization point before TDC and negative in case of synchnization point after TDC * .Knowing this angle allows us to control timing and other angles in reference to TDC. * set global_trigger_offset_angle X - deg btdc + * units: deg btdc * offset 404 */ 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. - coef + * units: coef * offset 408 */ 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. - coef + * units: coef * offset 412 */ float vbattDividerCoeff; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 416 */ float fanOnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 420 */ float fanOffTemperature; @@ -1000,13 +1000,13 @@ struct engine_configuration_s { output_pin_e acrPin; /** * need 4 byte alignment - units + * units: units * offset 426 */ uint8_t alignmentFill_at_426[2]; /** * Number of revolutions per kilometer for the wheels your vehicle speed sensor is connected to. Use an online calculator to determine this based on your tire size. - revs/km + * units: revs/km * offset 428 */ float driveWheelRevPerKm; @@ -1017,13 +1017,13 @@ struct engine_configuration_s { can_nbc_e canNbcType; /** * need 4 byte alignment - units + * units: units * offset 433 */ uint8_t alignmentFill_at_433[3]; /** * CANbus thread period in ms - ms + * units: ms * offset 436 */ int canSleepPeriodMs; @@ -1033,12 +1033,12 @@ struct engine_configuration_s { uint8_t camDecoder2jzPrecision; /** * need 4 byte alignment - units + * units: units * offset 441 */ uint8_t alignmentFill_at_441[3]; /** - index + * units: index * offset 444 */ int byFirmwareVersion; @@ -1065,13 +1065,13 @@ struct engine_configuration_s { adc_channel_e tps2_1AdcChannel; /** * 0.1 is a good default value - x + * units: x * offset 452 */ float idle_derivativeFilterLoss; /** * just a temporary solution - angle + * units: angle * offset 456 */ int trailingSparkAngle; @@ -1081,7 +1081,7 @@ struct engine_configuration_s { trigger_config_s trigger; /** * Extra air taper amount - % + * units: % * offset 472 */ float airByRpmTaper; @@ -1091,7 +1091,7 @@ struct engine_configuration_s { 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: % * offset 477 */ uint8_t boostControlSafeDutyCycle; @@ -1104,17 +1104,17 @@ struct engine_configuration_s { */ uint8_t acrRevolutions; /** - coef + * units: coef * offset 480 */ float globalFuelCorrection; /** - volts + * units: volts * offset 484 */ float adcVcc; /** - Deg + * units: Deg * offset 488 */ float mapCamDetectionAnglePosition; @@ -1138,7 +1138,7 @@ struct engine_configuration_s { adc_channel_e throttlePedalPositionAdcChannel; /** * TPS/PPS error threshold - % + * units: % * offset 521 */ scaled_channel etbSplit; @@ -1170,19 +1170,19 @@ struct engine_configuration_s { idle_hardware_s idle; /** * Value between 0 and 100 used in Manual mode - % + * units: % * offset 552 */ float manIdlePosition; /** * Ignition timing to remove when a knock event occurs. - % + * units: % * offset 556 */ scaled_channel knockRetardAggression; /** * After a knock event, reapply timing at this rate. - deg/s + * units: deg/s * offset 557 */ scaled_channel knockRetardReapplyRate; @@ -1198,13 +1198,13 @@ struct engine_configuration_s { uint8_t vssFilterReciprocal; /** * Number of turns of your vehicle speed sensor per turn of the wheels. For example if your sensor is on the transmission output, enter your axle/differential ratio. If you are using a hub-mounted sensor, enter a value of 1.0. - ratio + * units: ratio * offset 560 */ scaled_channel vssGearRatio; /** * Number of pulses output per revolution of the shaft where your VSS is mounted. For example, GM applications of the T56 output 17 pulses per revolution of the transmission output shaft. - count + * units: count * offset 562 */ uint8_t vssToothCount; @@ -1244,7 +1244,7 @@ struct engine_configuration_s { pin_output_mode_e fuelPumpPinMode; /** * How many consecutive VVT gap rations have to match expected ranges for sync to happen - count + * units: count * offset 619 */ int8_t gapVvtTrackingLengthOverride; @@ -1305,7 +1305,7 @@ struct engine_configuration_s { spi_device_e digitalPotentiometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 645 */ uint8_t alignmentFill_at_645[1]; @@ -1341,7 +1341,7 @@ struct engine_configuration_s { */ adc_channel_e throttlePedalPositionSecondAdcChannel; /** - % + * units: % * offset 653 */ uint8_t fuelLevelValues[FUEL_LEVEL_TABLE_COUNT]; @@ -1356,7 +1356,7 @@ struct engine_configuration_s { Gpio mc33810_cs[C_MC33810_COUNT]; /** * 0.1 is a good default value - x + * units: x * offset 664 */ float idle_antiwindupFreq; @@ -1366,7 +1366,7 @@ struct engine_configuration_s { 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. - us + * units: us * offset 672 */ uint16_t mc33_t_min_boost; @@ -1376,7 +1376,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011CsPinMode; /** * need 4 byte alignment - units + * units: units * offset 675 */ uint8_t alignmentFill_at_675[1]; @@ -1390,7 +1390,7 @@ struct engine_configuration_s { pin_output_mode_e tachOutputPinMode; /** * need 4 byte alignment - units + * units: units * offset 679 */ uint8_t alignmentFill_at_679[1]; @@ -1418,13 +1418,13 @@ struct engine_configuration_s { pin_input_mode_e throttlePedalUpPinMode; /** * Additional idle % while A/C is active - % + * units: % * offset 689 */ uint8_t acIdleExtraOffset; /** * Ratio between the wheels and your transmission output. - ratio + * units: ratio * offset 690 */ scaled_channel finalGearRatio; @@ -1438,14 +1438,14 @@ struct engine_configuration_s { uint8_t tcuInputSpeedSensorTeeth; /** * need 4 byte alignment - units + * units: units * offset 695 */ uint8_t alignmentFill_at_695[1]; /** * Voltage when the wastegate is closed. * You probably don't have one of these! - mv + * units: mv * offset 696 */ uint16_t wastegatePositionMin; @@ -1453,14 +1453,14 @@ struct engine_configuration_s { * Voltage when the wastegate is fully open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 698 */ uint16_t wastegatePositionMax; /** * Voltage when the idle valve is closed. * You probably don't have one of these! - mv + * units: mv * offset 700 */ uint16_t idlePositionMin; @@ -1468,19 +1468,19 @@ struct engine_configuration_s { * Voltage when the idle valve is open. * You probably don't have one of these! * 1 volt = 1000 units - mv + * units: mv * offset 702 */ uint16_t idlePositionMax; /** * Secondary TTL channel baud rate - BPs + * units: BPs * offset 704 */ uint32_t tunerStudioSerialSpeed; /** * Just for reference really, not taken into account by any logic at this point - CR + * units: CR * offset 708 */ float compressionRatio; @@ -1491,7 +1491,7 @@ struct engine_configuration_s { */ Gpio triggerSimulatorPins[TRIGGER_SIMULATOR_PIN_COUNT]; /** - g/s + * units: g/s * offset 716 */ scaled_channel fordInjectorSmallPulseSlope; @@ -1505,7 +1505,7 @@ struct engine_configuration_s { adc_channel_e maf2AdcChannel; /** * need 4 byte alignment - units + * units: units * offset 721 */ uint8_t alignmentFill_at_721[1]; @@ -1519,18 +1519,18 @@ struct engine_configuration_s { */ pin_output_mode_e o2heaterPinModeTodO; /** - RPM + * units: RPM * offset 725 */ scaled_channel lambdaProtectionMinRpm; /** - % + * units: % * offset 726 */ scaled_channel lambdaProtectionMinLoad; /** * need 4 byte alignment - units + * units: units * offset 727 */ uint8_t alignmentFill_at_727[1]; @@ -1653,7 +1653,7 @@ struct engine_configuration_s { pin_output_mode_e mainRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 741 */ uint8_t alignmentFill_at_741[1]; @@ -1671,7 +1671,7 @@ struct engine_configuration_s { pin_output_mode_e hip9011IntHoldPinMode; /** * need 4 byte alignment - units + * units: units * offset 747 */ uint8_t alignmentFill_at_747[1]; @@ -1681,13 +1681,13 @@ struct engine_configuration_s { uint32_t verboseCanBaseAddress; /** * Boost Voltage - v + * units: v * offset 752 */ uint8_t mc33_hvolt; /** * Minimum MAP before closed loop boost is enabled. Use to prevent misbehavior upon entering boost. - kPa + * units: kPa * offset 753 */ uint8_t minimumBoostClosedLoopMap; @@ -1705,7 +1705,7 @@ struct engine_configuration_s { */ spi_device_e l9779spiDevice; /** - volts + * units: volts * offset 758 */ scaled_channel dwellVoltageCorrVoltBins[DWELL_CURVE_SIZE]; @@ -1714,31 +1714,31 @@ struct engine_configuration_s { */ imu_type_e imuType; /** - multiplier + * units: multiplier * offset 767 */ scaled_channel dwellVoltageCorrValues[DWELL_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 775 */ uint8_t alignmentFill_at_775[1]; /** - kg + * units: kg * offset 776 */ 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. - RPM + * units: RPM * offset 778 */ int16_t idlePidRpmUpperLimit; /** * Apply nonlinearity correction below a pulse of this duration. Pulses longer than this duration will receive no adjustment. - ms + * units: ms * offset 780 */ scaled_channel applyNonlinearBelowPulse; @@ -1790,19 +1790,19 @@ struct engine_configuration_s { spi_device_e mc33972spiDevice; /** * Stoichiometric ratio for your secondary fuel. This value is used when the Flex Fuel sensor indicates E100, typically 9.0 - :1 + * units: :1 * offset 814 */ scaled_channel stoichRatioSecondary; /** * Maximum allowed ETB position. Some throttles go past fully open, so this allows you to limit it to fully open. - % + * units: % * offset 815 */ uint8_t etbMaximumPosition; /** * Rate the ECU will log to the SD card, in hz (log lines per second). - hz + * units: hz * offset 816 */ uint16_t sdCardLogFrequency; @@ -1812,7 +1812,7 @@ struct engine_configuration_s { adc_channel_e idlePositionChannel; /** * need 4 byte alignment - units + * units: units * offset 819 */ uint8_t alignmentFill_at_819[1]; @@ -1831,7 +1831,7 @@ struct engine_configuration_s { pin_output_mode_e starterRelayDisablePinMode; /** * need 4 byte alignment - units + * units: units * offset 825 */ uint8_t alignmentFill_at_825[1]; @@ -1847,45 +1847,45 @@ struct engine_configuration_s { switch_input_pin_e startStopButtonPin; /** * need 4 byte alignment - units + * units: units * offset 830 */ uint8_t alignmentFill_at_830[2]; /** * 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. - count + * units: count * offset 832 */ 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: % * offset 836 */ int16_t idlePidDeactivationTpsThreshold; /** - % + * units: % * offset 838 */ int16_t stepperParkingExtraSteps; /** - ADC + * units: ADC * offset 840 */ uint16_t tps1SecondaryMin; /** - ADC + * units: ADC * offset 842 */ uint16_t tps1SecondaryMax; /** - rpm + * units: rpm * offset 844 */ int16_t antiLagRpmTreshold; /** * Maximum time to crank starter when start/stop button is pressed - Seconds + * units: Seconds * offset 846 */ uint16_t startCrankingDuration; @@ -1900,7 +1900,7 @@ struct engine_configuration_s { pin_output_mode_e triggerErrorPinMode; /** * need 4 byte alignment - units + * units: units * offset 851 */ uint8_t alignmentFill_at_851[1]; @@ -1909,18 +1909,18 @@ struct engine_configuration_s { */ output_pin_e acRelayPin; /** - % + * units: % * offset 854 */ 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 - s + * units: s * offset 855 */ scaled_channel lambdaProtectionTimeout; /** - RPM + * units: RPM * offset 856 */ scaled_channel lambdaProtectionRestoreRpm; @@ -1930,7 +1930,7 @@ struct engine_configuration_s { pin_output_mode_e acRelayPinMode; /** * need 4 byte alignment - units + * units: units * offset 858 */ uint8_t alignmentFill_at_858[2]; @@ -1995,7 +1995,7 @@ struct engine_configuration_s { maf_sensor_type_e mafSensorType; /** * need 4 byte alignment - units + * units: units * offset 915 */ uint8_t alignmentFill_at_915[1]; @@ -2120,7 +2120,7 @@ struct engine_configuration_s { pin_output_mode_e boostControlPinMode; /** * need 4 byte alignment - units + * units: units * offset 939 */ uint8_t alignmentFill_at_939[1]; @@ -2149,7 +2149,7 @@ struct engine_configuration_s { */ Gpio ignitionKeyDigitalPin; /** - Hz + * units: Hz * offset 968 */ int boostPwmFrequency; @@ -2163,37 +2163,37 @@ struct engine_configuration_s { antiLagActivationMode_e antiLagActivationMode; /** * need 4 byte alignment - units + * units: units * offset 974 */ uint8_t alignmentFill_at_974[2]; /** * Launch disabled above this speed if setting is above zero - Kph + * units: Kph * offset 976 */ int launchSpeedThreshold; /** * Range from Launch RPM for Timing Retard to activate - RPM + * units: RPM * offset 980 */ int launchTimingRpmRange; /** * Extra Fuel Added - % + * units: % * offset 984 */ int launchFuelAdded; /** * Duty Cycle for the Boost Solenoid - % + * units: % * offset 988 */ int launchBoostDuty; /** * Range from Launch RPM to activate Hard Cut - RPM + * units: RPM * offset 992 */ int hardCutRpmRange; @@ -2250,7 +2250,7 @@ struct engine_configuration_s { spi_device_e drv8860spiDevice; /** * need 4 byte alignment - units + * units: units * offset 1159 */ uint8_t alignmentFill_at_1159[1]; @@ -2264,7 +2264,7 @@ struct engine_configuration_s { pin_output_mode_e drv8860_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 1163 */ uint8_t alignmentFill_at_1163[1]; @@ -2273,7 +2273,7 @@ struct engine_configuration_s { */ Gpio drv8860_miso; /** - volt + * units: volt * offset 1166 */ scaled_channel fuelLevelBins[FUEL_LEVEL_TABLE_COUNT]; @@ -2283,14 +2283,14 @@ struct engine_configuration_s { output_pin_e luaOutputPins[LUA_PWM_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 1198 */ uint8_t alignmentFill_at_1198[2]; /** * Angle between cam sensor and VVT zero position * set vvt_offset X - value + * units: value * offset 1200 */ float vvtOffsets[CAM_INPUTS_COUNT]; @@ -2303,12 +2303,12 @@ struct engine_configuration_s { */ gppwm_note_t gpPwmNote[GPPWM_CHANNELS]; /** - ADC + * units: ADC * offset 1312 */ uint16_t tps2SecondaryMin; /** - ADC + * units: ADC * offset 1314 */ uint16_t tps2SecondaryMax; @@ -2429,7 +2429,7 @@ struct engine_configuration_s { adc_channel_e hipOutputChannel; /** * need 4 byte alignment - units + * units: units * offset 1321 */ uint8_t alignmentFill_at_1321[1]; @@ -2444,7 +2444,7 @@ struct engine_configuration_s { adc_channel_e vRefAdcChannel; /** * Expected neutral position - % + * units: % * offset 1325 */ uint8_t etbNeutralPosition; @@ -2455,7 +2455,7 @@ struct engine_configuration_s { idle_mode_e idleMode; /** * need 4 byte alignment - units + * units: units * offset 1327 */ uint8_t alignmentFill_at_1327[1]; @@ -2582,12 +2582,12 @@ struct engine_configuration_s { offset 1328 bit 31 */ bool watchOutForLinearTime : 1 {}; /** - count + * units: count * offset 1332 */ uint32_t engineChartSize; /** - mult + * units: mult * offset 1336 */ float turboSpeedSensorMultiplier; @@ -2597,45 +2597,45 @@ struct engine_configuration_s { 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. - RPM + * units: RPM * offset 1348 */ int16_t acIdleRpmTarget; /** * set warningPeriod X - seconds + * units: seconds * offset 1350 */ int16_t warningPeriod; /** - angle + * units: angle * offset 1352 */ float knockDetectionWindowStart; /** - angle + * units: angle * offset 1356 */ float knockDetectionWindowEnd; /** - ms + * units: ms * offset 1360 */ float idleStepperReactionTime; /** - count + * units: count * offset 1364 */ int idleStepperTotalSteps; /** * TODO: finish this #413 - sec + * units: sec * offset 1368 */ float noAccelAfterHardLimitPeriodSecs; /** * At what trigger index should some MAP-related math be executed? This is a performance trick to reduce load on synchronization trigger callback. - index + * units: index * offset 1372 */ int mapAveragingSchedulingAtIndex; @@ -2646,7 +2646,7 @@ struct engine_configuration_s { float tachPulseDuractionMs; /** * Length of time the deposited wall fuel takes to dissipate after the start of acceleration. - Seconds + * units: Seconds * offset 1380 */ float wwaeTau; @@ -2664,7 +2664,7 @@ struct engine_configuration_s { Gpio triggerInputDebugPins[TRIGGER_INPUT_PIN_COUNT]; /** * RPM range above upper limit for extra air taper - RPM + * units: RPM * offset 1428 */ int16_t airTaperRpmRange; @@ -2676,7 +2676,7 @@ struct engine_configuration_s { * Closed throttle#2. todo: extract these two fields into a structure * See also tps2_1AdcChannel * set tps2_min X - ADC + * units: ADC * offset 1432 */ int16_t tps2Min; @@ -2684,7 +2684,7 @@ struct engine_configuration_s { * Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage! * See also tps1_1AdcChannel * set tps2_max X - ADC + * units: ADC * offset 1434 */ int16_t tps2Max; @@ -2699,7 +2699,7 @@ struct engine_configuration_s { pin_input_mode_e startStopButtonMode; /** * need 4 byte alignment - units + * units: units * offset 1439 */ uint8_t alignmentFill_at_1439[1]; @@ -2708,37 +2708,37 @@ struct engine_configuration_s { */ Gpio mc33816_flag0; /** - Pulse + * units: Pulse * offset 1442 */ uint8_t tachPulsePerRev; /** * need 4 byte alignment - units + * units: units * offset 1443 */ uint8_t alignmentFill_at_1443[1]; /** * kPa value which is too low to be true - kPa + * units: kPa * offset 1444 */ float mapErrorDetectionTooLow; /** * kPa value which is too high to be true - kPa + * units: kPa * offset 1448 */ float mapErrorDetectionTooHigh; /** * How long to wait for the spark to fire before recharging the coil for another spark. - ms + * units: ms * offset 1452 */ scaled_channel multisparkSparkDuration; /** * This sets the dwell time for subsequent sparks. The main spark's dwell is set by the dwell table. - ms + * units: ms * offset 1454 */ scaled_channel multisparkDwell; @@ -2749,7 +2749,7 @@ struct engine_configuration_s { 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. - Fraction + * units: Fraction * offset 1476 */ float wwaeBeta; @@ -2775,31 +2775,31 @@ struct engine_configuration_s { */ switch_input_pin_e tcuDownshiftButtonPin; /** - voltage + * units: voltage * offset 1492 */ float throttlePedalUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1496 */ float throttlePedalWOTVoltage; /** * on IGN voltage detection turn fuel pump on to build fuel pressure - seconds + * units: seconds * offset 1500 */ int16_t startUpFuelPumpDuration; /** * If the RPM closer to target than this value, disable closed loop idle correction to prevent oscillation - RPM + * units: RPM * offset 1502 */ int16_t idlePidRpmDeadZone; /** * This is the target battery voltage the alternator PID control will attempt to maintain - Volts + * units: Volts * offset 1504 */ float targetVBatt; @@ -2902,13 +2902,13 @@ struct engine_configuration_s { bool unusedBit_494_31 : 1 {}; /** * 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. - cycles + * units: cycles * offset 1512 */ int16_t afterCrankingIACtaperDuration; /** * IAC Value added when coasting and transitioning into idle. - percent + * units: percent * offset 1514 */ int16_t iacByTpsTaper; @@ -2928,37 +2928,37 @@ struct engine_configuration_s { Gpio accelerometerCsPin; /** * How long to look back for TPS-based acceleration enrichment. Increasing this time will trigger enrichment for longer when a throttle position change occurs. - sec + * units: sec * offset 1522 */ scaled_channel tpsAccelLookback; /** * Below this speed, disable DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1523 */ uint8_t coastingFuelCutVssLow; /** * Above this speed, allow DFCO. Use this to prevent jerkiness from fuel enable/disable in low gears. - kph + * units: kph * offset 1524 */ uint8_t coastingFuelCutVssHigh; /** * Pause closed loop fueling after deceleration fuel cut occurs. Set this to a little longer than however long is required for normal fueling behavior to resume after fuel cut. - sec + * units: sec * offset 1525 */ scaled_channel noFuelTrimAfterDfcoTime; /** * need 4 byte alignment - units + * units: units * offset 1526 */ uint8_t alignmentFill_at_1526[2]; /** * 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. - roc + * units: roc * offset 1528 */ float tpsAccelEnrichmentThreshold; @@ -2982,41 +2982,41 @@ struct engine_configuration_s { debug_mode_e debugMode; /** * Additional idle % when fan #1 is active - % + * units: % * offset 1539 */ uint8_t fan1ExtraIdle; /** * Band rate for primary TTL - BPs + * units: BPs * offset 1540 */ uint32_t uartConsoleSerialSpeed; /** * For decel we simply multiply delta of TPS and tFor decel we do not use table?! - roc + * units: roc * offset 1544 */ float tpsDecelEnleanmentThreshold; /** * Magic multiplier, we multiply delta of TPS and get fuel squirt duration - coeff + * units: coeff * offset 1548 */ float tpsDecelEnleanmentMultiplier; /** - BPs + * units: BPs * offset 1552 */ uint32_t auxSerialSpeed; /** - voltage + * units: voltage * offset 1556 */ float throttlePedalSecondaryUpVoltage; /** * Pedal in the floor - voltage + * units: voltage * offset 1560 */ float throttlePedalSecondaryWOTVoltage; @@ -3042,24 +3042,24 @@ struct engine_configuration_s { */ load_override_e afrOverrideMode; /** - A + * units: A * offset 1568 */ scaled_channel mc33_hpfp_i_peak; /** - A + * units: A * offset 1569 */ scaled_channel mc33_hpfp_i_hold; /** * How long to deactivate power when hold current is reached before applying power again - us + * units: us * offset 1570 */ uint8_t mc33_hpfp_i_hold_off; /** * Maximum amount of time the solenoid can be active before assuming a programming error - ms + * units: ms * offset 1571 */ uint8_t mc33_hpfp_max_hold; @@ -3174,17 +3174,17 @@ struct engine_configuration_s { uint8_t mc33810maxDwellTimer; /** * Duration of each test pulse - ms + * units: ms * offset 1578 */ scaled_channel benchTestOnTime; /** - % + * units: % * offset 1580 */ uint8_t lambdaProtectionRestoreTps; /** - % + * units: % * offset 1581 */ scaled_channel lambdaProtectionRestoreLoad; @@ -3194,7 +3194,7 @@ struct engine_configuration_s { pin_input_mode_e launchActivatePinMode; /** * need 4 byte alignment - units + * units: units * offset 1583 */ uint8_t alignmentFill_at_1583[1]; @@ -3237,48 +3237,48 @@ struct engine_configuration_s { pin_output_mode_e hpfpValvePinMode; /** * need 4 byte alignment - units + * units: units * offset 1595 */ uint8_t alignmentFill_at_1595[1]; /** * MAP value above which fuel is cut in case of overboost. * Set to 0 to disable overboost cut. - kPa (absolute) + * units: kPa (absolute) * offset 1596 */ float boostCutPressure; /** - kg/h + * units: kg/h * offset 1600 */ scaled_channel tchargeBins[16]; /** - ratio + * units: ratio * offset 1616 */ scaled_channel tchargeValues[16]; /** * Fixed timing, useful for TDC testing - deg + * units: deg * offset 1632 */ float fixedTiming; /** * MAP voltage for low point - v + * units: v * offset 1636 */ float mapLowValueVoltage; /** * MAP voltage for low point - v + * units: v * offset 1640 */ float mapHighValueVoltage; /** * EGO value correction - value + * units: value * offset 1644 */ float egoValueShift; @@ -3293,13 +3293,13 @@ struct engine_configuration_s { pin_output_mode_e sdCardCsPinMode; /** * need 4 byte alignment - units + * units: units * offset 1657 */ uint8_t alignmentFill_at_1657[3]; /** * This is the IAC position during cranking, some engines start better if given more air during cranking to improve cylinder filling. - percent + * units: percent * offset 1660 */ int crankingIACposition; @@ -3325,18 +3325,18 @@ struct engine_configuration_s { 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. - deg BTDC + * units: deg BTDC * offset 1682 */ 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 - deg BTDC + * units: deg BTDC * offset 1683 */ int8_t maximumIgnitionTiming; /** - Hz + * units: Hz * offset 1684 */ int alternatorPwmFrequency; @@ -3347,13 +3347,13 @@ struct engine_configuration_s { vvt_mode_e vvtMode[CAMS_PER_BANK]; /** * Additional idle % when fan #2 is active - % + * units: % * offset 1690 */ uint8_t fan2ExtraIdle; /** * Delay to allow fuel pressure to build before firing the priming pulse. - sec + * units: sec * offset 1691 */ scaled_channel primingDelay; @@ -3387,22 +3387,22 @@ struct engine_configuration_s { /** * 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. - kPa + * units: kPa * offset 1728 */ float fuelReferencePressure; /** - mult + * units: mult * offset 1732 */ float postCrankingFactor[CRANKING_ENRICH_COUNT][CRANKING_ENRICH_COUNT]; /** - count + * units: count * offset 1876 */ float postCrankingDurationBins[CRANKING_ENRICH_COUNT]; /** - C + * units: C * offset 1900 */ float postCrankingCLTBins[CRANKING_ENRICH_COUNT]; @@ -3415,12 +3415,12 @@ struct engine_configuration_s { */ ThermistorConf auxTempSensor2; /** - Deg + * units: Deg * offset 1988 */ int16_t knockSamplingDuration; /** - Hz + * units: Hz * offset 1990 */ int16_t etbFreq; @@ -3435,13 +3435,13 @@ struct engine_configuration_s { stepper_num_micro_steps_e stepperNumMicroSteps; /** * Use to limit the current when the stepper motor is idle, not moving (100% = no limit) - % + * units: % * offset 2013 */ uint8_t stepperMinDutyCycle; /** * Use to limit the max.current through the stepper motor (100% = no limit) - % + * units: % * offset 2014 */ uint8_t stepperMaxDutyCycle; @@ -3451,12 +3451,12 @@ struct engine_configuration_s { spi_device_e sdCardSpiDevice; /** * per-cylinder timing correction - deg + * units: deg * offset 2016 */ angle_t timing_offset_cylinder[MAX_CYLINDER_COUNT]; /** - seconds + * units: seconds * offset 2064 */ float idlePidActivationTime; @@ -3521,7 +3521,7 @@ struct engine_configuration_s { pin_input_mode_e brakePedalPinMode; /** * need 4 byte alignment - units + * units: units * offset 2085 */ uint8_t alignmentFill_at_2085[3]; @@ -3536,7 +3536,7 @@ struct engine_configuration_s { */ float injectorCorrectionPolynomial[8]; /** - C + * units: C * offset 2160 */ int8_t primeBins[PRIME_CURVE_COUNT]; @@ -3550,7 +3550,7 @@ struct engine_configuration_s { spi_device_e accelerometerSpiDevice; /** * need 4 byte alignment - units + * units: units * offset 2189 */ uint8_t alignmentFill_at_2189[1]; @@ -3560,13 +3560,13 @@ struct engine_configuration_s { output_pin_e fan2Pin; /** * Cooling fan turn-on temperature threshold, in Celsius - deg C + * units: deg C * offset 2192 */ uint8_t fan2OnTemperature; /** * Cooling fan turn-off temperature threshold, in Celsius - deg C + * units: deg C * offset 2193 */ uint8_t fan2OffTemperature; @@ -3584,7 +3584,7 @@ struct engine_configuration_s { pin_output_mode_e tle8888_csPinMode; /** * need 4 byte alignment - units + * units: units * offset 2199 */ uint8_t alignmentFill_at_2199[1]; @@ -3594,17 +3594,17 @@ struct engine_configuration_s { Gpio mc33816_cs; /** * need 4 byte alignment - units + * units: units * offset 2202 */ uint8_t alignmentFill_at_2202[2]; /** - hz + * units: hz * offset 2204 */ float auxFrequencyFilter; /** - RPM + * units: RPM * offset 2208 */ int16_t vvtControlMinRpm; @@ -3613,13 +3613,13 @@ struct engine_configuration_s { */ sent_input_pin_e sentInputPins[SENT_INPUT_COUNT]; /** - % + * units: % * offset 2212 */ int8_t launchFuelAdderPercent; /** * Time required to detect a stuck throttle. - sec + * units: sec * offset 2213 */ scaled_channel etbJamTimeout; @@ -3634,37 +3634,37 @@ struct engine_configuration_s { float etbDutyThreshold; /** * This sets the RPM above which fuel cut is active. - rpm + * units: rpm * offset 2220 */ int16_t coastingFuelCutRpmHigh; /** * This sets the RPM below which fuel cut is deactivated, this prevents jerking or issues transitioning to idle - rpm + * units: rpm * offset 2222 */ int16_t coastingFuelCutRpmLow; /** * Throttle position below which fuel cut is active. With an electronic throttle enabled, this checks against pedal position. - % + * units: % * offset 2224 */ int16_t coastingFuelCutTps; /** * Fuel cutoff is disabled when the engine is cold. - C + * units: C * offset 2226 */ int16_t coastingFuelCutClt; /** * Increases PID reaction for RPM stoichRatioPrimary; @@ -3816,7 +3816,7 @@ struct engine_configuration_s { 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: % * offset 2644 */ float etbIdleThrottleRange; @@ -3826,41 +3826,41 @@ struct engine_configuration_s { */ uint8_t cylinderBankSelect[MAX_CYLINDER_COUNT]; /** - mg + * units: mg * offset 2660 */ scaled_channel primeValues[PRIME_CURVE_COUNT]; /** * Trigger comparator center point voltage - V + * units: V * offset 2668 */ scaled_channel triggerCompCenterVolt; /** * Trigger comparator hysteresis voltage (Min) - V + * units: V * offset 2669 */ scaled_channel triggerCompHystMin; /** * Trigger comparator hysteresis voltage (Max) - V + * units: V * offset 2670 */ scaled_channel triggerCompHystMax; /** * VR-sensor saturation RPM - RPM + * units: RPM * offset 2671 */ scaled_channel triggerCompSensorSatRpm; /** - ratio + * units: ratio * offset 2672 */ scaled_channel tractionControlSlipBins[TRACTION_CONTROL_ETB_DROP_SIZE]; /** - RPM + * units: RPM * offset 2684 */ uint8_t tractionControlSpeedBins[TRACTION_CONTROL_ETB_DROP_SIZE]; @@ -3874,7 +3874,7 @@ struct engine_configuration_s { can_vss_nbc_e canVssNbcType; /** * need 4 byte alignment - units + * units: units * offset 2694 */ uint8_t alignmentFill_at_2694[2]; @@ -3884,52 +3884,52 @@ struct engine_configuration_s { gppwm_channel gppwm[GPPWM_CHANNELS]; /** * Boost Current - mA + * units: mA * offset 3128 */ uint16_t mc33_i_boost; /** * Peak Current - mA + * units: mA * offset 3130 */ uint16_t mc33_i_peak; /** * Hold Current - mA + * units: mA * offset 3132 */ 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. - us + * units: us * offset 3134 */ uint16_t mc33_t_max_boost; /** - us + * units: us * offset 3136 */ uint16_t mc33_t_peak_off; /** * Peak phase duration - us + * units: us * offset 3138 */ uint16_t mc33_t_peak_tot; /** - us + * units: us * offset 3140 */ uint16_t mc33_t_bypass; /** - us + * units: us * offset 3142 */ uint16_t mc33_t_hold_off; /** * Hold phase duration - us + * units: us * offset 3144 */ uint16_t mc33_t_hold_tot; @@ -3951,67 +3951,67 @@ struct engine_configuration_s { pin_output_mode_e tcu_solenoid_mode[TCU_SOLENOID_COUNT]; /** * Knock sensor output knock detection threshold depending on current RPM. - dB + * units: dB * offset 3155 */ scaled_channel knockBaseNoise[ENGINE_NOISE_CURVE_SIZE]; /** * need 4 byte alignment - units + * units: units * offset 3171 */ uint8_t alignmentFill_at_3171[1]; /** - ratio + * units: ratio * offset 3172 */ float triggerGapOverrideFrom[GAP_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 3244 */ 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. - rpm + * units: rpm * offset 3316 */ scaled_channel maxCamPhaseResolveRpm; /** * Delay before cutting fuel. Set to 0 to cut immediately with no delay. May cause rumbles and pops out of your exhaust... - sec + * units: sec * offset 3317 */ scaled_channel 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. - sec + * units: sec * offset 3318 */ scaled_channel acDelay; /** * need 4 byte alignment - units + * units: units * offset 3319 */ uint8_t alignmentFill_at_3319[1]; /** - mg + * units: mg * offset 3320 */ scaled_channel fordInjectorSmallPulseBreakPoint; /** - multiplier + * units: multiplier * offset 3322 */ scaled_channel tpsTspCorrValues[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - % + * units: % * offset 3326 */ uint8_t etbJamIntegratorLimit; /** - lobes/cam + * units: lobes/cam * offset 3327 */ uint8_t hpfpCamLobes; @@ -4025,25 +4025,25 @@ struct engine_configuration_s { uint8_t auxiliarySetting1; /** * If the requested activation time is below this angle, don't bother running the pump - deg + * units: deg * offset 3330 */ uint8_t hpfpMinAngle; /** * need 4 byte alignment - units + * units: units * offset 3331 */ uint8_t alignmentFill_at_3331[1]; /** * Size of the pump chamber in cc. Typical Bosch HDP5 has a 9.0mm diameter, typical BMW N* stroke is 4.4mm. - cc + * units: cc * offset 3332 */ scaled_channel 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) - deg + * units: deg * offset 3334 */ uint8_t hpfpActivationAngle; @@ -4052,68 +4052,68 @@ struct engine_configuration_s { */ uint8_t issFilterReciprocal; /** - %/kPa + * units: %/kPa * offset 3336 */ scaled_channel hpfpPidP; /** - %/kPa/lobe + * units: %/kPa/lobe * offset 3338 */ scaled_channel 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. - kPa/s + * units: kPa/s * offset 3340 */ uint16_t hpfpTargetDecay; /** - % + * units: % * offset 3342 */ scaled_channel hpfpLobeProfileQuantityBins[HPFP_LOBE_PROFILE_SIZE]; /** - deg + * units: deg * offset 3358 */ scaled_channel hpfpLobeProfileAngle[HPFP_LOBE_PROFILE_SIZE]; /** - volts + * units: volts * offset 3374 */ uint8_t hpfpDeadtimeVoltsBins[HPFP_DEADTIME_SIZE]; /** - ms + * units: ms * offset 3382 */ scaled_channel hpfpDeadtimeMS[HPFP_DEADTIME_SIZE]; /** - kPa + * units: kPa * offset 3398 */ uint16_t hpfpTarget[HPFP_TARGET_SIZE][HPFP_TARGET_SIZE]; /** - load + * units: load * offset 3598 */ scaled_channel hpfpTargetLoadBins[HPFP_TARGET_SIZE]; /** - RPM + * units: RPM * offset 3618 */ scaled_channel hpfpTargetRpmBins[HPFP_TARGET_SIZE]; /** - % + * units: % * offset 3628 */ int8_t hpfpCompensation[HPFP_COMPENSATION_SIZE][HPFP_COMPENSATION_SIZE]; /** - cc/lobe + * units: cc/lobe * offset 3728 */ scaled_channel hpfpCompensationLoadBins[HPFP_COMPENSATION_SIZE]; /** - RPM + * units: RPM * offset 3748 */ scaled_channel hpfpCompensationRpmBins[HPFP_COMPENSATION_SIZE]; @@ -4122,18 +4122,18 @@ struct engine_configuration_s { */ output_pin_e stepper_raw_output[4]; /** - ratio + * units: ratio * offset 3766 */ scaled_channel gearRatio[TCU_GEAR_COUNT]; /** * We need to give engine time to build oil pressure without diverting it to VVT - ms + * units: ms * offset 3786 */ uint16_t vvtActivationDelayMs; /** - deg C + * units: deg C * offset 3788 */ int8_t wwCltBins[WWAE_TABLE_SIZE]; @@ -4146,7 +4146,7 @@ struct engine_configuration_s { */ scaled_channel wwBetaCltValues[WWAE_TABLE_SIZE]; /** - kPa + * units: kPa * offset 3812 */ int8_t wwMapBins[WWAE_TABLE_SIZE]; @@ -4159,17 +4159,17 @@ struct engine_configuration_s { */ scaled_channel wwBetaMapValues[WWAE_TABLE_SIZE]; /** - Nm + * units: Nm * offset 3836 */ scaled_channel torqueTable[TORQUE_CURVE_SIZE][TORQUE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 3872 */ uint16_t torqueRpmBins[TORQUE_CURVE_SIZE]; /** - Load + * units: Load * offset 3884 */ uint16_t torqueLoadBins[TORQUE_CURVE_SIZE]; @@ -4182,7 +4182,7 @@ struct engine_configuration_s { */ TransmissionControllerMode transmissionControllerMode; /** - deg + * units: deg * offset 3898 */ uint16_t acrDisablePhase; @@ -4204,7 +4204,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_onoff_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3943 */ uint8_t alignmentFill_at_3943[1]; @@ -4218,7 +4218,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_tcc_pwm_solenoid_mode; /** * need 4 byte alignment - units + * units: units * offset 3947 */ uint8_t alignmentFill_at_3947[1]; @@ -4236,7 +4236,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_pc_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3953 */ uint8_t alignmentFill_at_3953[1]; @@ -4254,7 +4254,7 @@ struct engine_configuration_s { pin_output_mode_e tcu_32_solenoid_pin_mode; /** * need 4 byte alignment - units + * units: units * offset 3959 */ uint8_t alignmentFill_at_3959[1]; @@ -4267,7 +4267,7 @@ struct engine_configuration_s { */ output_pin_e acrPin2; /** - % + * units: % * offset 3964 */ float etbMinimumPosition; @@ -4281,7 +4281,7 @@ struct engine_configuration_s { vin_number_t vinNumber; /** * need 4 byte alignment - units + * units: units * offset 3987 */ uint8_t alignmentFill_at_3987[1]; @@ -4299,7 +4299,7 @@ struct engine_configuration_s { fuel_pressure_sensor_mode_e fuelPressureSensorMode; /** * need 4 byte alignment - units + * units: units * offset 4057 */ uint8_t alignmentFill_at_4057[1]; @@ -4308,32 +4308,32 @@ struct engine_configuration_s { */ switch_input_pin_e luaDigitalInputPins[LUA_DIGITAL_INPUT_COUNT]; /** - RPM + * units: RPM * offset 4074 */ scaled_channel tpsTspCorrValuesBins[TPS_TPS_ACCEL_CLT_CORR_TABLE]; /** - rpm + * units: rpm * offset 4078 */ int16_t ALSMinRPM; /** - rpm + * units: rpm * offset 4080 */ int16_t ALSMaxRPM; /** - sec + * units: sec * offset 4082 */ int16_t ALSMaxDuration; /** - C + * units: C * offset 4084 */ int8_t ALSMinCLT; /** - C + * units: C * offset 4085 */ int8_t ALSMaxCLT; @@ -4346,7 +4346,7 @@ struct engine_configuration_s { */ uint8_t alsEtbPosition; /** - % + * units: % * offset 4088 */ uint8_t acRelayAlternatorDutyAdder; @@ -4359,12 +4359,12 @@ struct engine_configuration_s { */ uint16_t customSentTpsMin; /** - % + * units: % * offset 4092 */ int ALSIdleAdd; /** - % + * units: % * offset 4096 */ int ALSEtbAdd; @@ -4373,7 +4373,7 @@ struct engine_configuration_s { */ float ALSSkipRatio; /** - % + * units: % * offset 4104 */ uint8_t ALSMaxDriverThrottleIntent; @@ -4383,13 +4383,13 @@ struct engine_configuration_s { pin_input_mode_e ALSActivatePinMode; /** * For Ford TPS, use 53%. For Toyota ETCS-i, use ~65% - % + * units: % * offset 4106 */ scaled_channel tpsSecondaryMaximum; /** * For Toyota ETCS-i, use ~69% - % + * units: % * offset 4107 */ scaled_channel ppsSecondaryMaximum; @@ -4415,60 +4415,60 @@ struct engine_configuration_s { UiMode uiMode; /** * Crank angle ATDC of first lobe peak - deg + * units: deg * offset 4122 */ int16_t hpfpPeakPos; /** - us + * units: us * offset 4124 */ 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) - RPM + * units: RPM * offset 4126 */ scaled_channel rpmSoftLimitWindowSize; /** * Degrees of timing REMOVED from actual timing during soft RPM limit window - deg + * units: deg * offset 4127 */ scaled_channel rpmSoftLimitTimingRetard; /** * % of fuel ADDED during window - % + * units: % * offset 4128 */ scaled_channel 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 - RPM + * units: RPM * offset 4129 */ scaled_channel rpmHardLimitHyst; /** * Time between bench test pulses - ms + * units: ms * offset 4130 */ scaled_channel 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 - kPa (absolute) + * units: kPa (absolute) * offset 4132 */ scaled_channel boostCutPressureHyst; /** * Boost duty cycle added by gear - % + * units: % * offset 4133 */ scaled_channel gearBasedOpenLoopBoostAdder[TCU_GEAR_COUNT]; /** * need 4 byte alignment - units + * units: units * offset 4143 */ uint8_t alignmentFill_at_4143[1]; @@ -4479,13 +4479,13 @@ struct engine_configuration_s { uint32_t benchTestCount; /** * How long initial IAC adder is held before starting to decay. - seconds + * units: seconds * offset 4148 */ scaled_channel iacByTpsHoldTime; /** * How long it takes to remove initial IAC adder to return to normal idle. - seconds + * units: seconds * offset 4149 */ scaled_channel iacByTpsDecayTime; @@ -4499,13 +4499,13 @@ struct engine_configuration_s { 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. - ratio + * units: ratio * offset 4168 */ scaled_channel canVssScaling; /** * need 4 byte alignment - units + * units: units * offset 4170 */ uint8_t alignmentFill_at_4170[2]; @@ -4561,22 +4561,22 @@ struct engine_configuration_s { */ uint8_t unusedExplicitFilling2; /** - ratio + * units: ratio * offset 4316 */ float triggerVVTGapOverrideFrom[VVT_TRACKING_LENGTH]; /** - ratio + * units: ratio * offset 4332 */ float triggerVVTGapOverrideTo[VVT_TRACKING_LENGTH]; /** - % + * units: % * offset 4348 */ int8_t tractionControlEtbDrop[TRACTION_CONTROL_ETB_DROP_SIZE][TRACTION_CONTROL_ETB_DROP_SIZE]; /** - units + * units: units * offset 4384 */ uint8_t mainUnusedEnd[172]; @@ -4599,12 +4599,12 @@ struct blend_table_s { */ scaled_channel table[8][8]; /** - Load + * units: Load * offset 128 */ uint16_t loadBins[8]; /** - RPM + * units: RPM * offset 144 */ uint16_t rpmBins[8]; @@ -4614,7 +4614,7 @@ struct blend_table_s { gppwm_channel_e blendParameter; /** * need 4 byte alignment - units + * units: units * offset 161 */ uint8_t alignmentFill_at_161[1]; @@ -4623,13 +4623,13 @@ struct blend_table_s { */ scaled_channel blendBins[8]; /** - % + * units: % * offset 178 */ scaled_channel blendValues[8]; /** * need 4 byte alignment - units + * units: units * offset 186 */ uint8_t alignmentFill_at_186[2]; @@ -4645,148 +4645,148 @@ struct persistent_config_s { /** * target TPS value, 0 to 100% * TODO: use int8 data date once we template interpolation method - target TPS position + * units: target TPS position * offset 4556 */ float etbBiasBins[ETB_BIAS_CURVE_LENGTH]; /** * PWM bias, 0 to 100% - ETB duty cycle bias + * units: ETB duty cycle bias * offset 4588 */ float etbBiasValues[ETB_BIAS_CURVE_LENGTH]; /** - % + * units: % * offset 4620 */ scaled_channel iacPidMultTable[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE]; /** - Load + * units: Load * offset 4684 */ uint8_t iacPidMultLoadBins[IAC_PID_MULT_SIZE]; /** - RPM + * units: RPM * offset 4692 */ scaled_channel iacPidMultRpmBins[IAC_PID_MULT_SIZE]; /** * On Single Coil or Wasted Spark setups you have to lower dwell at high RPM - RPM + * units: RPM * offset 4700 */ uint16_t sparkDwellRpmBins[DWELL_CURVE_SIZE]; /** - ms + * units: ms * offset 4716 */ scaled_channel sparkDwellValues[DWELL_CURVE_SIZE]; /** * CLT-based target RPM for automatic idle controller - C + * units: C * offset 4732 */ scaled_channel cltIdleRpmBins[CLT_CURVE_SIZE]; /** * See idleRpmPid - RPM + * units: RPM * offset 4748 */ scaled_channel cltIdleRpm[CLT_CURVE_SIZE]; /** * CLT-based timing correction - C + * units: C * offset 4764 */ float cltTimingBins[CLT_TIMING_CURVE_SIZE]; /** - degree + * units: degree * offset 4796 */ float cltTimingExtra[CLT_TIMING_CURVE_SIZE]; /** - x + * units: x * offset 4828 */ float scriptCurve1Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 4892 */ float scriptCurve1[SCRIPT_CURVE_16]; /** - x + * units: x * offset 4956 */ float scriptCurve2Bins[SCRIPT_CURVE_16]; /** - y + * units: y * offset 5020 */ float scriptCurve2[SCRIPT_CURVE_16]; /** - x + * units: x * offset 5084 */ float scriptCurve3Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5116 */ float scriptCurve3[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5148 */ float scriptCurve4Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5180 */ float scriptCurve4[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5212 */ float scriptCurve5Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5244 */ float scriptCurve5[SCRIPT_CURVE_8]; /** - x + * units: x * offset 5276 */ float scriptCurve6Bins[SCRIPT_CURVE_8]; /** - y + * units: y * offset 5308 */ float scriptCurve6[SCRIPT_CURVE_8]; /** - kPa + * units: kPa * offset 5340 */ float baroCorrPressureBins[BARO_CORR_SIZE]; /** - RPM + * units: RPM * offset 5356 */ float baroCorrRpmBins[BARO_CORR_SIZE]; /** - ratio + * units: ratio * offset 5372 */ float baroCorrTable[BARO_CORR_SIZE][BARO_CORR_SIZE]; /** * Cranking fuel correction coefficient based on TPS - Ratio + * units: Ratio * offset 5436 */ float crankingTpsCoef[CRANKING_CURVE_SIZE]; /** - % + * units: % * offset 5468 */ float crankingTpsBins[CRANKING_CURVE_SIZE]; @@ -4796,25 +4796,25 @@ struct persistent_config_s { float unusedSpaceHere[16]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - RPM + * units: RPM * offset 5564 */ uint16_t crankingAdvanceBins[CRANKING_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Cranking (see useSeparateAdvanceForCranking) - deg + * units: deg * offset 5572 */ scaled_channel crankingAdvance[CRANKING_ADVANCE_CURVE_SIZE]; /** * RPM-based idle position for coasting - RPM + * units: RPM * offset 5580 */ scaled_channel iacCoastingRpmBins[CLT_CURVE_SIZE]; /** * RPM-based idle position for coasting - % + * units: % * offset 5596 */ scaled_channel iacCoasting[CLT_CURVE_SIZE]; @@ -4823,22 +4823,22 @@ struct persistent_config_s { */ warning_message_t warning_message; /** - C + * units: C * offset 5732 */ float afterstartCoolantBins[AFTERSTART_HOLD_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5764 */ float afterstartHoldTime[AFTERSTART_HOLD_CURVE_SIZE]; /** - % + * units: % * offset 5796 */ float afterstartEnrich[AFTERSTART_ENRICH_CURVE_SIZE]; /** - Seconds + * units: Seconds * offset 5828 */ float afterstartDecayTime[AFTERSTART_DECAY_CURVE_SIZE]; @@ -4847,7 +4847,7 @@ struct persistent_config_s { */ scaled_channel boostTableOpenLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - RPM + * units: RPM * offset 5924 */ scaled_channel boostRpmBins[BOOST_RPM_COUNT]; @@ -4856,61 +4856,61 @@ struct persistent_config_s { */ scaled_channel boostTableClosedLoop[BOOST_LOAD_COUNT][BOOST_RPM_COUNT]; /** - % + * units: % * offset 5996 */ uint8_t boostTpsBins[BOOST_LOAD_COUNT]; /** - % + * units: % * offset 6004 */ uint8_t pedalToTpsTable[PEDAL_TO_TPS_SIZE][PEDAL_TO_TPS_SIZE]; /** - % + * units: % * offset 6068 */ uint8_t pedalToTpsPedalBins[PEDAL_TO_TPS_SIZE]; /** - RPM + * units: RPM * offset 6076 */ scaled_channel pedalToTpsRpmBins[PEDAL_TO_TPS_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - C + * units: C * offset 6084 */ float cltCrankingCorrBins[CLT_CRANKING_CURVE_SIZE]; /** * CLT-based cranking position multiplier for simple manual idle controller - % + * units: % * offset 6116 */ float cltCrankingCorr[CLT_CRANKING_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - RPM + * units: RPM * offset 6148 */ scaled_channel idleAdvanceBins[IDLE_ADVANCE_CURVE_SIZE]; /** * Optional timing advance table for Idle (see useSeparateAdvanceForIdle) - deg + * units: deg * offset 6156 */ float idleAdvance[IDLE_ADVANCE_CURVE_SIZE]; /** - RPM + * units: RPM * offset 6188 */ scaled_channel idleVeRpmBins[IDLE_VE_SIZE]; /** - load + * units: load * offset 6192 */ uint8_t idleVeLoadBins[IDLE_VE_SIZE]; /** - % + * units: % * offset 6196 */ scaled_channel idleVeTable[IDLE_VE_SIZE][IDLE_VE_SIZE]; @@ -4919,54 +4919,54 @@ struct persistent_config_s { */ lua_script_t luaScript; /** - C + * units: C * offset 14228 */ float cltFuelCorrBins[CLT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14292 */ float cltFuelCorr[CLT_CURVE_SIZE]; /** - C + * units: C * offset 14356 */ float iatFuelCorrBins[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14420 */ float iatFuelCorr[IAT_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14484 */ float crankingFuelCoef[CRANKING_CURVE_SIZE]; /** - C + * units: C * offset 14516 */ float crankingFuelBins[CRANKING_CURVE_SIZE]; /** - ratio + * units: ratio * offset 14548 */ float crankingCycleCoef[CRANKING_CURVE_SIZE]; /** - counter + * units: counter * offset 14580 */ float crankingCycleBins[CRANKING_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - C + * units: C * offset 14612 */ float cltIdleCorrBins[CLT_CURVE_SIZE]; /** * CLT-based idle position multiplier for simple manual idle controller - ratio + * units: ratio * offset 14676 */ float cltIdleCorr[CLT_CURVE_SIZE]; @@ -4974,127 +4974,127 @@ struct persistent_config_s { * Also known as MAF transfer function. * kg/hour value. * By the way 2.081989116 kg/h = 1 ft3/m - kg/hour + * units: kg/hour * offset 14740 */ float mafDecoding[MAF_DECODING_COUNT]; /** - V + * units: V * offset 14868 */ float mafDecodingBins[MAF_DECODING_COUNT]; /** - deg + * units: deg * offset 14996 */ scaled_channel ignitionIatCorrTable[8][8]; /** - C + * units: C * offset 15060 */ int8_t ignitionIatCorrTempBins[8]; /** - Load + * units: Load * offset 15068 */ scaled_channel ignitionIatCorrLoadBins[8]; /** - deg + * units: deg * offset 15076 */ int16_t injectionPhase[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - Load + * units: Load * offset 15588 */ uint16_t injPhaseLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 15620 */ uint16_t injPhaseRpmBins[FUEL_RPM_COUNT]; /** - onoff + * units: onoff * offset 15652 */ uint8_t tcuSolenoidTable[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT]; /** - kPa + * units: kPa * offset 15712 */ scaled_channel mapEstimateTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - % TPS + * units: % TPS * offset 16224 */ scaled_channel mapEstimateTpsBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 16256 */ uint16_t mapEstimateRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 16288 */ int8_t vvtTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16352 */ uint16_t vvtTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16368 */ uint16_t vvtTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 16384 */ int8_t vvtTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 16448 */ uint16_t vvtTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 16464 */ uint16_t vvtTable2RpmBins[SCRIPT_TABLE_8]; /** - deg + * units: deg * offset 16480 */ scaled_channel ignitionTable[IGN_LOAD_COUNT][IGN_RPM_COUNT]; /** - Load + * units: Load * offset 16992 */ uint16_t ignitionLoadBins[IGN_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17024 */ uint16_t ignitionRpmBins[IGN_RPM_COUNT]; /** - % + * units: % * offset 17056 */ scaled_channel veTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; /** - kPa + * units: kPa * offset 17568 */ uint16_t veLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17600 */ uint16_t veRpmBins[FUEL_RPM_COUNT]; /** - lambda + * units: lambda * offset 17632 */ scaled_channel lambdaTable[FUEL_LOAD_COUNT][FUEL_RPM_COUNT]; @@ -5103,82 +5103,82 @@ struct persistent_config_s { */ uint16_t lambdaLoadBins[FUEL_LOAD_COUNT]; /** - RPM + * units: RPM * offset 17920 */ uint16_t lambdaRpmBins[FUEL_RPM_COUNT]; /** - value + * units: value * offset 17952 */ float tpsTpsAccelTable[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; /** - from + * units: from * offset 18208 */ float tpsTpsAccelFromRpmBins[TPS_TPS_ACCEL_TABLE]; /** - to + * units: to * offset 18240 */ float tpsTpsAccelToRpmBins[TPS_TPS_ACCEL_TABLE]; /** - value + * units: value * offset 18272 */ float scriptTable1[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18528 */ int16_t scriptTable1LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18544 */ int16_t scriptTable1RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18560 */ uint8_t scriptTable2[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18624 */ int16_t scriptTable2LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18640 */ int16_t scriptTable2RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18656 */ uint8_t scriptTable3[SCRIPT_TABLE_8][SCRIPT_TABLE_8]; /** - L + * units: L * offset 18720 */ int16_t scriptTable3LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18736 */ int16_t scriptTable3RpmBins[SCRIPT_TABLE_8]; /** - value + * units: value * offset 18752 */ uint8_t scriptTable4[SCRIPT_TABLE_8][TABLE_4_RPM]; /** - L + * units: L * offset 18832 */ int16_t scriptTable4LoadBins[SCRIPT_TABLE_8]; /** - RPM + * units: RPM * offset 18848 */ int16_t scriptTable4RpmBins[TABLE_4_RPM]; @@ -5187,7 +5187,7 @@ struct persistent_config_s { */ uint16_t ignTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 18876 */ uint16_t ignTrimRpmBins[TRIM_SIZE]; @@ -5200,7 +5200,7 @@ struct persistent_config_s { */ uint16_t fuelTrimLoadBins[TRIM_SIZE]; /** - rpm + * units: rpm * offset 19084 */ uint16_t fuelTrimRpmBins[TRIM_SIZE]; @@ -5209,172 +5209,172 @@ struct persistent_config_s { */ cyl_trim_s fuelTrims[12]; /** - ratio + * units: ratio * offset 19284 */ scaled_channel crankingFuelCoefE100[CRANKING_CURVE_SIZE]; /** - Airmass + * units: Airmass * offset 19300 */ scaled_channel tcu_pcAirmassBins[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19308 */ uint8_t tcu_pcValsR[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19316 */ uint8_t tcu_pcValsN[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19324 */ uint8_t tcu_pcVals1[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19332 */ uint8_t tcu_pcVals2[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19340 */ uint8_t tcu_pcVals3[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19348 */ uint8_t tcu_pcVals4[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19356 */ uint8_t tcu_pcVals12[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19364 */ uint8_t tcu_pcVals23[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19372 */ uint8_t tcu_pcVals34[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19380 */ uint8_t tcu_pcVals21[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19388 */ uint8_t tcu_pcVals32[TCU_MAGIC_SIZE]; /** - % + * units: % * offset 19396 */ uint8_t tcu_pcVals43[TCU_MAGIC_SIZE]; /** - TPS + * units: TPS * offset 19404 */ uint8_t tcu_tccTpsBins[8]; /** - MPH + * units: MPH * offset 19412 */ uint8_t tcu_tccLockSpeed[8]; /** - MPH + * units: MPH * offset 19420 */ uint8_t tcu_tccUnlockSpeed[8]; /** - KPH + * units: KPH * offset 19428 */ uint8_t tcu_32SpeedBins[8]; /** - % + * units: % * offset 19436 */ uint8_t tcu_32Vals[8]; /** - % + * units: % * offset 19444 */ scaled_channel throttle2TrimTable[ETB2_TRIM_SIZE][ETB2_TRIM_SIZE]; /** - % + * units: % * offset 19480 */ uint8_t throttle2TrimTpsBins[ETB2_TRIM_SIZE]; /** - RPM + * units: RPM * offset 19486 */ scaled_channel throttle2TrimRpmBins[ETB2_TRIM_SIZE]; /** - deg + * units: deg * offset 19492 */ scaled_channel maxKnockRetardTable[6][6]; /** - % + * units: % * offset 19528 */ uint8_t maxKnockRetardLoadBins[6]; /** - RPM + * units: RPM * offset 19534 */ scaled_channel maxKnockRetardRpmBins[6]; /** - deg + * units: deg * offset 19540 */ scaled_channel ALSTimingRetardTable[4][4]; /** - TPS + * units: TPS * offset 19572 */ uint16_t alsIgnRetardLoadBins[4]; /** - RPM + * units: RPM * offset 19580 */ uint16_t alsIgnRetardrpmBins[4]; /** - percent + * units: percent * offset 19588 */ scaled_channel ALSFuelAdjustment[4][4]; /** - TPS + * units: TPS * offset 19620 */ uint16_t alsFuelAdjustmentLoadBins[4]; /** - RPM + * units: RPM * offset 19628 */ uint16_t alsFuelAdjustmentrpmBins[4]; /** - ratio + * units: ratio * offset 19636 */ scaled_channel ALSIgnSkipTable[4][4]; /** - TPS + * units: TPS * offset 19668 */ uint16_t alsIgnSkipLoadBins[4]; /** - RPM + * units: RPM * offset 19676 */ uint16_t alsIgnSkiprpmBins[4]; @@ -5387,13 +5387,13 @@ struct persistent_config_s { */ blend_table_s veBlends[VE_BLEND_COUNT]; /** - % + * units: % * offset 21188 */ scaled_channel throttleEstimateEffectiveAreaBins[12]; /** * In units of g/s normalized to choked flow conditions - g/s + * units: g/s * offset 21212 */ scaled_channel throttleEstimateEffectiveAreaValues[12]; @@ -5406,62 +5406,62 @@ struct persistent_config_s { */ blend_table_s boostClosedLoopBlends[BOOST_BLEND_COUNT]; /** - level + * units: level * offset 21988 */ uint8_t tcu_rangeP[6]; /** - level + * units: level * offset 21994 */ uint8_t tcu_rangeR[6]; /** - level + * units: level * offset 22000 */ uint8_t tcu_rangeN[6]; /** - level + * units: level * offset 22006 */ uint8_t tcu_rangeD[6]; /** - level + * units: level * offset 22012 */ uint8_t tcu_rangeM[6]; /** - level + * units: level * offset 22018 */ uint8_t tcu_rangeM3[6]; /** - level + * units: level * offset 22024 */ uint8_t tcu_rangeM2[6]; /** - level + * units: level * offset 22030 */ uint8_t tcu_rangeM1[6]; /** - level + * units: level * offset 22036 */ uint8_t tcu_rangePlus[6]; /** - level + * units: level * offset 22042 */ uint8_t tcu_rangeMinus[6]; /** - level + * units: level * offset 22048 */ uint8_t tcu_rangeLow[6]; /** - lambda + * units: lambda * offset 22054 */ scaled_channel lambdaMaxDeviationTable[4][4]; @@ -5470,13 +5470,13 @@ struct persistent_config_s { */ uint16_t lambdaMaxDeviationLoadBins[4]; /** - RPM + * units: RPM * offset 22078 */ uint16_t lambdaMaxDeviationRpmBins[4]; /** * need 4 byte alignment - units + * units: units * offset 22086 */ uint8_t alignmentFill_at_22086[2]; @@ -5484,4 +5484,4 @@ struct persistent_config_s { static_assert(sizeof(persistent_config_s) == 22088); // end -// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 16:40:00 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition.jar based on (unknown script) integration/rusefi_config.txt Wed Jan 03 20:30:54 UTC 2024 diff --git a/firmware/controllers/math/lambda_monitor_generated.h b/firmware/controllers/math/lambda_monitor_generated.h index 962532ee95..3d5343434c 100644 --- a/firmware/controllers/math/lambda_monitor_generated.h +++ b/firmware/controllers/math/lambda_monitor_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/math/lambda_monitor.txt Wed Jul 26 13:01:56 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/math/lambda_monitor.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -102,13 +102,13 @@ struct lambda_monitor_s { offset 0 bit 31 */ bool unusedBit_2_31 : 1 {}; /** - sec + * units: sec * offset 4 */ scaled_channel lambdaTimeSinceGood = (uint16_t)0; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; @@ -116,4 +116,4 @@ struct lambda_monitor_s { static_assert(sizeof(lambda_monitor_s) == 8); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/math/lambda_monitor.txt Wed Jul 26 13:01:56 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/math/lambda_monitor.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/math/throttle_model_generated.h b/firmware/controllers/math/throttle_model_generated.h index 9eaefd3b43..da8794f729 100644 --- a/firmware/controllers/math/throttle_model_generated.h +++ b/firmware/controllers/math/throttle_model_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/math/throttle_model.txt Fri May 05 16:36:44 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/math/throttle_model.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -104,19 +104,19 @@ struct throttle_model_s { bool unusedBit_1_31 : 1 {}; /** * Air: Throttle crossover pos - % + * units: % * offset 4 */ scaled_channel throttleModelCrossoverAngle = (int16_t)0; /** * need 4 byte alignment - units + * units: units * offset 6 */ uint8_t alignmentFill_at_6[2]; /** * Air: Throttle flow estimate - g/s + * units: g/s * offset 8 */ float throttleEstimatedFlow = (float)0; @@ -124,4 +124,4 @@ struct throttle_model_s { static_assert(sizeof(throttle_model_s) == 12); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/math/throttle_model.txt Fri May 05 16:36:44 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/math/throttle_model.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/sensors/sent_state_generated.h b/firmware/controllers/sensors/sent_state_generated.h index 31c8a06cec..c6cd05ac5c 100644 --- a/firmware/controllers/sensors/sent_state_generated.h +++ b/firmware/controllers/sensors/sent_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/sensors//sent_state.txt Mon Feb 20 16:39:15 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/sensors/sent_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,19 +7,19 @@ struct sent_state_s { /** * "ETB: SENT value0" - value + * units: value * offset 0 */ uint16_t value0 = (uint16_t)0; /** * "ETB: SENT value1" - value + * units: value * offset 2 */ uint16_t value1 = (uint16_t)0; /** * "ETB: SENT error rate" - ratio + * units: ratio * offset 4 */ float errorRate = (float)0; @@ -27,4 +27,4 @@ struct sent_state_s { static_assert(sizeof(sent_state_s) == 8); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/sensors//sent_state.txt Mon Feb 20 16:39:15 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/sensors/sent_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/sensors/wideband_state_generated.h b/firmware/controllers/sensors/wideband_state_generated.h index af5a32aff0..8a3c31a084 100644 --- a/firmware/controllers/sensors/wideband_state_generated.h +++ b/firmware/controllers/sensors/wideband_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/sensors//wideband_state.txt Fri May 05 19:02:07 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/sensors//wideband_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -12,43 +12,43 @@ struct wideband_state_s { uint8_t faultCode = (uint8_t)0; /** * WBO: Heater duty - % + * units: % * offset 1 */ uint8_t heaterDuty = (uint8_t)0; /** * WBO: Pump duty - % + * units: % * offset 2 */ uint8_t pumpDuty = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 3 */ uint8_t alignmentFill_at_3[1]; /** * WBO: Temperature - C + * units: C * offset 4 */ uint16_t tempC = (uint16_t)0; /** * WBO: Nernst Voltage - V + * units: V * offset 6 */ scaled_channel nernstVoltage = (uint16_t)0; /** * WBO: ESR - ohm + * units: ohm * offset 8 */ uint16_t esr = (uint16_t)0; /** * need 4 byte alignment - units + * units: units * offset 10 */ uint8_t alignmentFill_at_10[2]; @@ -56,4 +56,4 @@ struct wideband_state_s { static_assert(sizeof(wideband_state_s) == 12); // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on (unknown script) controllers/sensors//wideband_state.txt Fri May 05 19:02:07 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/sensors//wideband_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/tcu/tcu_controller_generated.h b/firmware/controllers/tcu/tcu_controller_generated.h index 11729854d9..5ec35a485e 100644 --- a/firmware/controllers/tcu/tcu_controller_generated.h +++ b/firmware/controllers/tcu/tcu_controller_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/tcu/tcu_controller.txt Wed Jan 03 03:40:23 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/tcu/tcu_controller.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -7,19 +7,19 @@ struct tcu_controller_s { /** * @@GAUGE_NAME_CURRENT_GEAR@@ - gear + * units: gear * offset 0 */ int8_t tcuCurrentGear = (int8_t)0; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[1]; /** * @@GAUGE_NAME_TC_RATIO@@ - value + * units: value * offset 2 */ scaled_channel tcRatio = (uint16_t)0; @@ -34,7 +34,7 @@ struct tcu_controller_s { uint8_t tcu_currentRange = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 9 */ uint8_t alignmentFill_at_9[3]; @@ -42,4 +42,4 @@ struct tcu_controller_s { static_assert(sizeof(tcu_controller_s) == 12); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/tcu/tcu_controller.txt Wed Jan 03 03:40:23 UTC 2024 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/tcu/tcu_controller.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/trigger/trigger_central_generated.h b/firmware/controllers/trigger/trigger_central_generated.h index 354c4929f8..340121a04c 100644 --- a/firmware/controllers/trigger/trigger_central_generated.h +++ b/firmware/controllers/trigger/trigger_central_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_central.txt Wed Aug 09 09:38:59 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_central.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -34,19 +34,19 @@ struct trigger_central_s { uint8_t mapVvt_map_peak = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 38 */ uint8_t alignmentFill_at_38[2]; /** * Sync: Engine Phase - deg + * units: deg * offset 40 */ float currentEngineDecodedPhase = (float)0; /** * Sync: trigger angle error - deg + * units: deg * offset 44 */ float triggerToothAngleError = (float)0; @@ -56,13 +56,13 @@ struct trigger_central_s { uint8_t triggerIgnoredToothCount = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 49 */ uint8_t alignmentFill_at_49[3]; /** * Sync: MAP: prev angle - deg + * units: deg * offset 52 */ angle_t mapCamPrevToothAngle = (angle_t)0; @@ -166,4 +166,4 @@ struct trigger_central_s { static_assert(sizeof(trigger_central_s) == 60); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_central.txt Wed Aug 09 09:38:59 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_central.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/trigger/trigger_state_generated.h b/firmware/controllers/trigger/trigger_state_generated.h index 6bbd65e899..cff3ff9649 100644 --- a/firmware/controllers/trigger/trigger_state_generated.h +++ b/firmware/controllers/trigger/trigger_state_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state.txt Wed Dec 06 19:47:30 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -16,17 +16,17 @@ struct trigger_state_s { */ float vvtSyncGapRatio = (float)0; /** - us + * units: us * offset 8 */ uint32_t vvtToothDurations0 = (uint32_t)0; /** - sync: Primary Cam Position + * units: sync: Primary Cam Position * offset 12 */ float vvtCurrentPosition = (float)0; /** - sync: Cam Tooth Position + * units: sync: Cam Tooth Position * offset 16 */ float vvtToothPosition[4]; @@ -45,7 +45,7 @@ struct trigger_state_s { uint8_t vvtStateIndex = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 38 */ uint8_t alignmentFill_at_38[2]; @@ -53,4 +53,4 @@ struct trigger_state_s { static_assert(sizeof(trigger_state_s) == 40); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state.txt Wed Dec 06 19:47:30 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state.txt Wed Jan 03 20:30:10 UTC 2024 diff --git a/firmware/controllers/trigger/trigger_state_primary_generated.h b/firmware/controllers/trigger/trigger_state_primary_generated.h index ab6569bf32..d64ddb81bc 100644 --- a/firmware/controllers/trigger/trigger_state_primary_generated.h +++ b/firmware/controllers/trigger/trigger_state_primary_generated.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state_primary.txt Wed Dec 06 19:47:30 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state_primary.txt Wed Jan 03 20:30:10 UTC 2024 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -12,7 +12,7 @@ struct trigger_state_primary_s { uint8_t camResyncCounter = (uint8_t)0; /** * need 4 byte alignment - units + * units: units * offset 1 */ uint8_t alignmentFill_at_1[3]; @@ -117,4 +117,4 @@ struct trigger_state_primary_s { static_assert(sizeof(trigger_state_primary_s) == 8); // end -// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state_primary.txt Wed Dec 06 19:47:30 UTC 2023 +// this section was generated automatically by rusEFI tool config_definition_base.jar based on (unknown script) controllers/trigger/trigger_state_primary.txt Wed Jan 03 20:30:10 UTC 2024