fome-fw/firmware/rusefi_config.ini

494 lines
22 KiB
INI
Raw Normal View History

2015-01-12 13:03:38 -08:00
! this file defines the format of rusEfi persistent configuration structure
! this file is processed by ../java_tools/config_definition.jar tool
2015-01-23 14:04:11 -08:00
! comments start with '!'
2015-01-12 13:03:38 -08:00
!
! each field is declared as
2015-01-21 16:03:58 -08:00
! type name;comment
2015-01-12 11:03:37 -08:00
2015-01-15 14:03:57 -08:00
2015-01-22 12:06:00 -08:00
! all the sub-structures are going to be nested withint the primary structure, that's
! needed to get a proper TunerStudio file
struct engine_configuration_s
2015-01-30 09:06:45 -08:00
#define MAP_ANGLE_SIZE 8
#define MAP_WINDOW_SIZE 8
#define CLT_CURVE_SIZE 16
#define IAT_CURVE_SIZE 16
#define VBAT_INJECTOR_CURVE_SIZE 8
#define DWELL_COUNT 8
#define CRANKING_CURVE_SIZE 8
#define IGN_LOAD_COUNT 16
#define IGN_RPM_COUNT 16
#define INJECTION_PIN_COUNT 12
#define IGNITION_PIN_COUNT 12
#define MAX31855_CS_COUNT 8
#define JOYSTICK_PIN_COUNT 5
2015-01-30 13:04:02 -08:00
#define DIGIPOT_COUNT 4
#define HW_MAX_ADC_INDEX 16
#define TRIGGER_SIMULATOR_PIN_COUNT 3
#define LOGIC_ANALYZER_CHANNEL_COUNT 4
#define LE_COMMAND_COUNT 16
#define FUEL_RPM_COUNT 16
#define FUEL_LOAD_COUNT 16
#define IGN_LOAD_COUNT 16
#define IGN_RPM_COUNT 16
! please note that 1024 here is 4 * FUEL_RPM_COUNT * FUEL_LOAD_COUNT
custom fuel_table_t 1024 array, F32, @OFFSET@, [16x16],"ms", 1, 0, 0.0, 300.0, 2
custom ve_table_t 1024 array, F32, @OFFSET@, [16x16],"deg", 1, 0, 0, 100.0, 2
custom afr_table_t 1024 array, F32, @OFFSET@, [16x16],"deg", 1, 0, 0, 25.0, 2
! please note that 1024 here is 4 * IGN_LOAD_COUNT * IGN_RPM_COUNT
custom ignition_table_t 1024 array, F32, @OFFSET@, [16x16],"deg", 1, 0, -360, 360, 2
2015-01-22 12:06:00 -08:00
2015-01-15 14:03:57 -08:00
struct cranking_parameters_s
2015-01-22 18:04:47 -08:00
float baseFuel;;"ms", 1, 0, 0, 200, 1
int16_t rpm;This value controls what RPM values we consider 'cranking' (any RPM below 'crankingRpm')\nAnything above 'crankingRpm' would be 'running';"RPM", 1, 0, 0, 3000, 0
2015-01-21 14:04:08 -08:00
end_struct
2015-01-31 18:10:22 -08:00
custom brain_input_pin_e 4 bits, U32, @OFFSET@, [0:6], "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOA_5", "INVALID", "INVALID", "GPIOA_8", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOC_6", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "GPIOE_5", "INVALID", "GPIOE_7", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2015-01-28 21:04:05 -08:00
custom brain_pin_e 4 bits, U32, @OFFSET@, [0:6], "GPIOA_0", "GPIOA_1", "GPIOA_2", "GPIOA_3", "GPIOA_4", "GPIOA_5", "GPIOA_6", "GPIOA_7", "GPIOA_8", "GPIOA_9", "GPIOA_10", "GPIOA_11", "GPIOA_12", "GPIOA_13", "GPIOA_14", "GPIOA_15", "GPIOB_0", "GPIOB_1", "GPIOB_2", "GPIOB_3", "GPIOB_4", "GPIOB_5", "GPIOB_6", "GPIOB_7", "GPIOB_8", "GPIOB_9", "GPIOB_10", "GPIOB_11", "GPIOB_12", "GPIOB_13", "GPIOB_14", "GPIOB_15", "GPIOC_0", "GPIOC_1", "GPIOC_2", "GPIOC_3", "GPIOC_4", "GPIOC_5", "GPIOC_6", "GPIOC_7", "GPIOC_8", "GPIOC_9", "GPIOC_10", "GPIOC_11", "GPIOC_12", "GPIOC_13", "GPIOC_14", "GPIOC_15", "GPIOD_0", "GPIOD_1", "GPIOD_2", "GPIOD_3", "GPIOD_4", "GPIOD_5", "GPIOD_6", "GPIOD_7", "GPIOD_8", "GPIOD_9", "GPIOD_10", "GPIOD_11", "GPIOD_12", "GPIOD_13", "GPIOD_14", "GPIOD_15", "GPIOE_0", "GPIOE_1", "GPIOE_2", "GPIOE_3", "GPIOE_4", "GPIOE_5", "GPIOE_6", "GPIOE_7", "GPIOE_8", "GPIOE_9", "GPIOE_10", "GPIOE_11", "GPIOE_12", "GPIOE_13", "GPIOE_14", "GPIOE_15", "NONE", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
custom pin_output_mode_e 4 bits, U32, @OFFSET@, [0:1], "default", "default inverted", "open", "open inverted"
2015-01-23 13:05:07 -08:00
custom air_pressure_sensor_type_e 4 bits, U32, @OFFSET@, [0:1] "Custom", "DENSO183", "MPX4250", "INVALID"
custom adc_channel_e 4 bits, U32, @OFFSET@, [0:3] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5"
2015-01-15 14:03:57 -08:00
2015-01-21 14:04:08 -08:00
struct air_pressure_sensor_config_s
2015-01-22 18:04:47 -08:00
float valueAt0;kPa value at zero volts;"kpa", 1, 0, 0, 450, 2
float valueAt5;kPa value at 5 volts;"kpa", 1, 0, 0, 450, 2
air_pressure_sensor_type_e type;
2015-01-21 16:03:58 -08:00
adc_channel_e hwChannel;
2015-01-15 14:03:57 -08:00
end_struct
2015-01-21 16:03:58 -08:00
struct MAP_sensor_config_s @brief MAP averaging configuration
2015-01-22 18:04:47 -08:00
float[MAP_ANGLE_SIZE] samplingAngleBins;;"RPM", 1, 0, 0.0, 18000, 2
float[MAP_ANGLE_SIZE] samplingAngle;@brief MAP averaging sampling start angle, by RPM;"deg", 1, 0, 0.0, 90, 2
float[MAP_WINDOW_SIZE] samplingWindowBins;;"RPM", 1, 0, 0.0, 18000, 2
float[MAP_WINDOW_SIZE] samplingWindow;@brief MAP averaging angle duration, by RPM;"deg", 1, 0, 0.0, 90, 2
2015-01-21 16:03:58 -08:00
air_pressure_sensor_config_s sensor
2015-01-21 14:04:08 -08:00
end_struct
struct ThermistorConf @brief Thermistor curve parameters
2015-01-22 18:04:47 -08:00
float tempC_1;these values are in Celcuus;"*C", 1, 0, -40, 200, 1
float tempC_2;;"*C", 1, 0, -40, 200, 1
float tempC_3;;"*C", 1, 0, -40, 200, 1
float resistance_1;;"Ohm", 1, 0, 0, 200000, 1
float resistance_2;;"Ohm", 1, 0, 0, 200000, 1
float resistance_3;;"Ohm", 1, 0, 0, 200000, 1
2015-01-21 14:04:08 -08:00
2015-01-22 18:04:47 -08:00
float bias_resistor;;"Ohm", 1, 0, 0, 200000, 1
2015-01-21 14:04:08 -08:00
2015-01-21 16:03:58 -08:00
float s_h_a;
float s_h_b;
float s_h_c;
2015-01-15 14:03:57 -08:00
2015-01-21 14:04:08 -08:00
end_struct
2015-01-23 13:05:07 -08:00
custom engine_type_e 4 bits, S32, @OFFSET@, [0:2], "AUDI_AAN", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD", "FORD_INLINE_6_1995", "GY6_139QMB"
2015-01-21 16:03:58 -08:00
engine_type_e engineType;http://rusefi.com/wiki/index.php?title=Manual:Engine_Type
2015-01-12 11:03:37 -08:00
2015-01-21 16:03:58 -08:00
int headerMagicValue;this magic number is used to make sure that what we read from Flash is in fact some configuration
2015-01-12 13:03:38 -08:00
2015-02-02 09:05:12 -08:00
struct injector_s
float flow;cc/min, cubic centimeter per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min;"cm3/min", 1, 0, 0, 1000, 2
float lag;;"msec", 1, 0, -10, 25.50, 2
2015-02-02 11:04:09 -08:00
float[VBAT_INJECTOR_CURVE_SIZE] battLagCorrBins;;"V", 1, 0, 0.0, 20.0, 2
float[VBAT_INJECTOR_CURVE_SIZE] battLagCorr;;"ms/V", 1, 0, 0.0, 50.0, 2
2015-02-02 09:05:12 -08:00
end_struct
injector_s injector
2015-01-21 21:04:03 -08:00
float[CLT_CURVE_SIZE] cltFuelCorrBins;;"C", 1, 0, -100.0, 250.0, 2
float[CLT_CURVE_SIZE] cltFuelCorr;;"%", 100, 0, 0.0, 500.0, 2
2015-01-12 13:03:38 -08:00
2015-01-21 21:04:03 -08:00
float[IAT_CURVE_SIZE] iatFuelCorrBins;;"C", 1, 0, -100.0, 250.0, 2
float[IAT_CURVE_SIZE] iatFuelCorr;;"%", 100, 0, 0.0, 500.0, 2
2015-01-12 13:03:38 -08:00
2015-01-21 16:03:58 -08:00
int16_t directSelfStimulation;Should the trigger emulator push data right into trigger input, eliminating the need for physical jumper wires?\nPS: Funny name, right? :)\ntodo: make this a bit on some bit field
2015-01-12 13:03:38 -08:00
2015-01-21 21:04:03 -08:00
int16_t tpsMin;todo: extract these two fields into a structure\ntodo: we need two sets of TPS parameters - modern ETBs have to sensors;"ADC", 1, 0, 0, 1023, 0
int16_t tpsMax;tpsMax value as 10 bit ADC value. Not Voltage!;"ADC", 1, 0, 0, 1023, 0
2015-01-15 14:03:57 -08:00
2015-01-22 12:06:00 -08:00
uint16_t unused334;
2015-01-12 13:03:38 -08:00
2015-01-22 16:04:13 -08:00
int16_t tpsErrorLowValue;todo: finish implementation. These values are used for TPS disconnect detection;"*C", 1, 0, -40, 200, 1
int16_t tpsErrorHighValue;;"*C", 1, 0, -40, 200, 1
2015-01-12 13:03:38 -08:00
2015-01-22 16:04:13 -08:00
float primingSquirtDurationMs;;"*C", 1, 0, -40, 200, 1
int engineCycle;360 for two-stroke\n720 for four-stroke;"engine cycle", 1, 0, 0, 1000, 0
2015-01-21 14:04:08 -08:00
2015-01-22 18:04:47 -08:00
cranking_parameters_s cranking
2015-01-21 16:03:58 -08:00
MAP_sensor_config_s map;@see hasMapSensor\n@see isMapAveragingEnabled
2015-01-21 14:04:08 -08:00
2015-01-22 18:04:47 -08:00
ThermistorConf clt;todo: merge with channel settings, use full-scale Thermistor here!
ThermistorConf iat;
2015-01-21 16:03:58 -08:00
2015-01-22 18:04:47 -08:00
float[DWELL_COUNT] sparkDwellBins;;"RPM", 1, 0.0, 0.0, 18000, 2
float[DWELL_COUNT] sparkDwell;;"ms", 1, 0.0, 0.0, 30.0, 2
2015-01-21 16:03:58 -08:00
2015-01-22 18:04:47 -08:00
float[IGN_LOAD_COUNT] ignitionLoadBins;;"Load", 1, 0.0, 0, 300.0, 2
float[IGN_RPM_COUNT] ignitionRpmBins;;"RPM", 1, 0.0, 0, 18000.0, 2
2015-01-21 16:03:58 -08:00
2015-01-22 18:04:47 -08:00
float ignitionBaseAngle;this value could be used to offset the whole ignition timing table by a constant;"RPM", 1, 0, 0, 3000.0, 0
2015-01-21 16:03:58 -08:00
2015-01-22 18:04:47 -08:00
float crankingChargeAngle;While cranking (which causes battery voltage to drop) we can calculate dwell time in shaft\ndegrees, not in absolute time as in running mode.;"deg", 1, 0, 0, 3000.0, 0
2015-01-21 16:03:58 -08:00
2015-01-23 13:05:07 -08:00
custom timing_mode_e 4 bits, U32, @OFFSET@ [0:0], "dynamic", "fixed"
2015-01-21 16:03:58 -08:00
2015-01-22 18:04:47 -08:00
timing_mode_e timingMode;
2015-01-22 12:06:00 -08:00
2015-01-22 18:04:47 -08:00
float fixedModeTiming;This value is used in 'fixed timing' mode, i.e. constant timing\nThis mode is useful for instance while adjusting distributor location;"RPM", 1, 0, 0, 3000.0, 0
2015-01-22 12:06:00 -08:00
2015-01-22 18:04:47 -08:00
float[FUEL_LOAD_COUNT] fuelLoadBins;;"V", 1, 0, 0.0, 300.0, 2
float[FUEL_RPM_COUNT] fuelRpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0.0, 25500.0, 2
2015-01-22 12:06:00 -08:00
2015-02-02 09:05:12 -08:00
struct_no_prefix specs_s
2015-01-22 18:04:47 -08:00
float displacement;Engine displacement, in liters\nsee also cylindersCount;"L", 1, 0, 0, 1000.0, 2
2015-02-02 09:05:12 -08:00
end_struct
specs_s specs
custom cylinders_count_t 4 bits, U32, @OFFSET@, [0:3], "INVALID", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "INVALID", "INVALID", "INVALID"
cylinders_count_t cylindersCount;
custom firing_order_e 4 bits, U32, @OFFSET@, [0:2], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "INVALID", "INVALID"
firing_order_e firingOrder;
2015-01-22 18:04:47 -08:00
int rpmHardLimit;;"rpm", 1, 0, 0, 10000.0, 2
2015-01-22 12:06:00 -08:00
2015-01-22 18:04:47 -08:00
injection_mode_e crankingInjectionMode;
injection_mode_e injectionMode;
2015-01-22 12:06:00 -08:00
2015-01-23 07:04:00 -08:00
float globalTriggerAngleOffset;This field is the angle between Top Dead Center (TDC) and the first trigger event.\nKnowing this angle allows us to control timing and other angles in reference to TDC.;"deg", 1, 0, 0, 720, 0
float analogInputDividerCoefficient;This parameter holds the coefficient of input voltage dividers;"coef", 1, 0, 0.01, 10.0, 2
2015-01-22 12:06:00 -08:00
2015-01-23 13:05:07 -08:00
custom engine_load_mode_e 4 bits, U32, @OFFSET@, [0:1], "MAF", "Alpha-N", "MAP", "SPEED DENSITY"
2015-01-23 07:04:00 -08:00
engine_load_mode_e algorithm;This setting controls which algorithm is used for ENGINE LOAD
float vbattDividerCoeff;;"coef", 1, 0, 0.01, 20.0, 2
float fanOnTemperature;Cooling fan turn-on temperature threshold, in Celsuis;"*C", 1, 0, 0, 1000.0, 2
float fanOffTemperature;Cooling fan turn-off temperature threshold, in Celsuis;"*C", 1, 0, 0, 1000.0, 2
2015-01-23 09:04:28 -08:00
brain_pin_e vehicleSpeedSensorInputPin;
float vehicleSpeedCoef;This coefficient translates vehicle speed input frequency (in Hz) into vehicle speed, km/h
2015-01-28 17:06:25 -08:00
custom can_nbc_e 4 bits, U32, @OFFSET@, [0:1], "BMW", "FIAT", "VAG" , "INVALID"
2015-01-23 09:04:28 -08:00
can_nbc_e canNbcType;
2015-01-24 15:04:20 -08:00
int canSleepPeriod;;"ms", 1, 0, 0, 1000.0, 2
2015-01-28 17:06:25 -08:00
custom ignition_mode_e 4 bits, U32, @OFFSET@, [0:1], "One coil", "Individual Coils", "Wasted", "INVALID"
2015-01-23 09:04:28 -08:00
ignition_mode_e ignitionMode;
2015-01-24 15:04:20 -08:00
2015-01-23 09:04:28 -08:00
float rpmMultiplier;todo: refactor this, see operation_mode_e
2015-01-24 15:04:20 -08:00
2015-01-28 17:06:25 -08:00
custom display_mode_e 4 bits, U32, @OFFSET@, [0:1], "none", "hd44780", "hd44780 over pcf8574", "INVALID"
2015-01-23 09:04:28 -08:00
display_mode_e displayMode;
2015-01-28 17:06:25 -08:00
custom log_format_e 4 bits, U32, @OFFSET@, [0:0], "native", "Mega Log Viewer"
2015-01-23 09:04:28 -08:00
log_format_e logFormat;
2015-01-27 16:05:24 -08:00
int firmwareVersion;;"index", 1, 0, 0, 300, 0
int HD44780width;;"index", 1, 0, 0, 300, 0
int HD44780height;;"index", 1, 0, 0, 300, 0
2015-01-24 15:04:20 -08:00
2015-01-23 09:04:28 -08:00
adc_channel_e tpsAdcChannel;
int overrideCrankingIgnition;
2015-01-28 17:06:25 -08:00
int analogChartFrequency;;"index", 1, 0, 0, 300, 0 ; size 4
2015-01-23 09:04:28 -08:00
struct trigger_config_s @brief Trigger wheel(s) configuration
2015-01-24 15:04:20 -08:00
2015-01-28 17:06:25 -08:00
custom bool32_t 4 bits, U32, @OFFSET@, [0:0], "false", "true"
2015-02-06 09:06:14 -08:00
custom trigger_type_e 4 bits, U32, @OFFSET@, [0:4], "custom toothed wheel", "ford aspire", "dodge neon", "Miata NA", "Miata NB", "GM_7X", "Cooper", "Mazda SOHC 4", "60/2", "36/1", "Accord CD", "MITSU", "ACCORD 2", "ACCORD DIP", "Neon 2003", "MAZDA D 1+4", "1+1", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
2015-01-23 10:06:12 -08:00
trigger_type_e type;
2015-02-02 20:07:37 -08:00
bit customIsSynchronizationNeeded;
2015-02-02 21:04:02 -08:00
bit customNeedSecondTriggerInput;
2015-01-23 10:06:12 -08:00
2015-01-24 15:04:20 -08:00
int customTotalToothCount;;"number", 1, 0.0, 0, 1000.0, 2
int customSkippedToothCount;;"number", 1, 0.0, 0, 1000.0, 2
2015-01-23 10:06:12 -08:00
2015-01-24 15:04:20 -08:00
float customSyncRatioFrom;;"number", 1, 0.0, 0, 1000.0, 2
float customSyncRatioTo;;"number", 1, 0.0, 0, 1000.0, 2
2015-01-23 10:06:12 -08:00
2015-01-28 17:06:25 -08:00
bool32_t customUseRiseEdge;
2015-01-23 09:04:28 -08:00
end_struct
2015-01-23 07:04:00 -08:00
2015-01-23 10:06:12 -08:00
trigger_config_s trigger;
2015-01-28 17:06:25 -08:00
custom spi_device_e 4 bits,U32, @OFFSET@, [0:1], "Off", "SPI1", "SPI2", "SPI3"
2015-01-23 10:06:12 -08:00
spi_device_e hip9011SpiDevice;
adc_channel_e vbattAdcChannel;
2015-01-28 17:06:25 -08:00
float globalFuelCorrection;;"coef", 1, 0.0, 0, 1000.0, 2
2015-01-23 10:06:12 -08:00
adc_channel_e cltAdcChannel;todo: merge with channel settings, use full-scale Thermistor!
adc_channel_e iatAdcChannel;
adc_channel_e mafAdcChannel;
2015-01-23 11:07:33 -08:00
struct afr_sensor_s
2015-01-28 17:06:25 -08:00
adc_channel_e hwChannel;
float v1;; "volts", 1, 0.0, 0, 10.0, 2
float value1;; "AFR", 1, 0.0, 0, 1000.0, 2
float v2;; "volts", 1, 0.0, 0, 10.0, 2
float value2;; "AFR", 1, 0.0, 0, 1000.0, 2
2015-01-23 11:07:33 -08:00
end_struct
2015-01-28 17:06:25 -08:00
afr_sensor_s afr;@see hasAfrSensor
float injectionAngle;this is about deciding when the injector starts it's squirt;"deg", 1, 0.0, 0, 1000.0, 2
float crankingTimingAngle;; "deg", 1, 0.0, -360, 360, 2
2015-01-23 11:07:33 -08:00
float diffLoadEnrichmentCoef;
air_pressure_sensor_config_s baroSensor;@see hasBaroSensor
2015-02-02 05:06:40 -08:00
float[FUEL_LOAD_COUNT] veLoadBins;;"%", 1, 0.0, 0, 300.0, 2
2015-01-28 17:06:25 -08:00
float[FUEL_RPM_COUNT] veRpmBins;;"RPM", 1, 0.0, 0, 18000.0, 2
2015-02-02 05:06:40 -08:00
float[FUEL_LOAD_COUNT] afrLoadBins;;"%", 1, 0.0, 0, 300.0, 2
2015-01-28 17:06:25 -08:00
float[FUEL_RPM_COUNT] afrRpmBins;;"RPM", 1, 0.0, 0, 18000.0, 2
2015-01-23 11:07:33 -08:00
2015-01-23 13:05:07 -08:00
fuel_table_t fuelTable;
ignition_table_t ignitionTable;
2015-01-28 21:04:05 -08:00
ve_table_t veTable;
afr_table_t afrTable;
2015-01-23 13:05:07 -08:00
2015-01-28 21:04:05 -08:00
struct_no_prefix board_configuration_s
2015-01-23 13:05:07 -08:00
brain_pin_e idleValvePin;
pin_output_mode_e idleValvePinMode;
brain_pin_e fuelPumpPin;
pin_output_mode_e fuelPumpPinMode;
2015-01-29 14:06:51 -08:00
brain_pin_e[INJECTION_PIN_COUNT iterate] injectionPins;
2015-01-23 13:05:07 -08:00
pin_output_mode_e injectionPinMode;
2015-01-29 14:06:51 -08:00
brain_pin_e[IGNITION_PIN_COUNT iterate] ignitionPins;
2015-01-23 13:05:07 -08:00
pin_output_mode_e ignitionPinMode;
brain_pin_e malfunctionIndicatorPin;
pin_output_mode_e malfunctionIndicatorPinMode;
brain_pin_e fanPin;
pin_output_mode_e fanPinMode;
brain_pin_e electronicThrottlePin1;
pin_output_mode_e electronicThrottlePin1Mode;
brain_pin_e clutchDownPin;some cars have a switch to indicate that clutch pedal is all the way down
pin_input_mode_e clutchDownPinMode;
brain_pin_e alternatorControlPin;
pin_output_mode_e alternatorControlPinMode;
brain_pin_e HD44780_rs;
brain_pin_e HD44780_e;
brain_pin_e HD44780_db4;
brain_pin_e HD44780_db5;
brain_pin_e HD44780_db6;
brain_pin_e HD44780_db7;
brain_pin_e gps_rx_pin;
brain_pin_e gps_tx_pin;
2015-01-29 15:03:54 -08:00
int idleSolenoidFrequency;;"Hz", 1, 0, 0, 3000, 0
2015-01-23 13:05:07 -08:00
2015-01-29 15:03:54 -08:00
int triggerSimulatorFrequency;;"Rpm", 1, 0, 0,30000, 0
2015-01-23 13:05:07 -08:00
spi_device_e digitalPotentiometerSpiDevice;Digital Potentiometer is used by stock ECU stimulation code
2015-01-29 15:03:54 -08:00
brain_pin_e[DIGIPOT_COUNT iterate] digitalPotentiometerChipSelect;
custom adc_channel_mode_e 4 bits, U32, @OFFSET@, [0:1], "Off", "Slow", "Fast", "INVALID"
adc_channel_mode_e[HW_MAX_ADC_INDEX iterate] adcHwChannelEnabled;
2015-01-23 13:05:07 -08:00
2015-01-31 18:10:22 -08:00
brain_input_pin_e[3 iterate] triggerInputPins;
2015-01-23 13:05:07 -08:00
brain_pin_e mainRelayPin;
int idleThreadPeriod;
int consoleLoopPeriod;
int lcdThreadPeriod;
int tunerStudioThreadPeriod;
int generalPeriodicThreadPeriod;
2015-01-29 15:03:54 -08:00
uint32_t tunerStudioSerialSpeed;;"BPs", 1, 0, 0,1000000, 0
2015-01-23 13:05:07 -08:00
brain_pin_e boardTestModeJumperPin;
can_device_mode_e canDeviceMode;
brain_pin_e canTxPin;
brain_pin_e canRxPin;
2015-01-30 09:06:45 -08:00
brain_pin_e[TRIGGER_SIMULATOR_PIN_COUNT iterate] triggerSimulatorPins;
pin_output_mode_e[TRIGGER_SIMULATOR_PIN_COUNT iterate] triggerSimulatorPinModes;
2015-01-23 14:04:11 -08:00
brain_pin_e o2heaterPin;
pin_output_mode_e o2heaterPinModeTodO;
bit is_enabled_spi_1
bit is_enabled_spi_2
bit is_enabled_spi_3
bit isSdCardEnabled
bit isFastAdcEnabled
bit isEngineControlEnabled
bit isHip9011Enabled
2015-01-31 18:10:22 -08:00
brain_input_pin_e[LOGIC_ANALYZER_CHANNEL_COUNT iterate] logicAnalyzerPins;
2015-01-23 14:04:11 -08:00
uint8_t[LOGIC_ANALYZER_CHANNEL_COUNT] logicAnalyzerMode;default or inverted input
int unrealisticRpmThreashold;
pin_output_mode_e mainRelayPinMode;
2015-02-02 08:10:08 -08:00
brain_pin_e[MAX31855_CS_COUNT iterate] max31855_cs;
2015-01-23 14:04:11 -08:00
spi_device_e max31855spiDevice;
2015-01-30 09:06:45 -08:00
brain_pin_e[LE_COMMAND_COUNT iterate] fsioPins;
pin_output_mode_e[LE_COMMAND_COUNT iterate] gpioPinModes;
2015-01-23 14:04:11 -08:00
2015-01-30 09:06:45 -08:00
brain_pin_e[JOYSTICK_PIN_COUNT iterate] joystickPins;
2015-01-23 14:04:11 -08:00
2015-01-24 15:04:20 -08:00
brain_pin_e triggerErrorPin;This pin is used for debugging - snap a logic analyzer on it and see if it's ever high
pin_output_mode_e triggerErrorPinMode;
float idleSolenoidPwm;value between 0 and 1
brain_pin_e acRelayPin;
pin_output_mode_e acRelayPinMode;
2015-01-30 13:04:02 -08:00
custom fsio_pwm_freq_t 2 scalar, U16, @OFFSET@, "Hz", 1, 0, 0, 3000, 0
fsio_pwm_freq_t[LE_COMMAND_COUNT iterate] fsioFrequency;
2015-01-24 15:04:20 -08:00
brain_pin_e hip9011CsPin;
brain_pin_e hip9011IntHoldPin;
brain_pin_e hip9011OutPin;
2015-01-30 13:04:02 -08:00
custom fsio_setting_t 4 scalar, F32, @OFFSET@, "Val", 1, 0, 0, 18000, 0
fsio_setting_t[LE_COMMAND_COUNT iterate] fsio_setting;
2015-01-24 15:04:20 -08:00
brain_pin_e spi1mosiPin;
brain_pin_e spi1misoPin;
brain_pin_e spi1sckPin;
brain_pin_e spi2mosiPin;
brain_pin_e spi2misoPin;
brain_pin_e spi2sckPin;
brain_pin_e spi3mosiPin;
brain_pin_e spi3misoPin;
brain_pin_e spi3sckPin;
float hip9011Gain;
brain_pin_e joystickCenterPin;
brain_pin_e joystickAPin;
brain_pin_e joystickBPin;
brain_pin_e joystickCPin;
brain_pin_e joystickDPin;
custom analog_chart_e 4 bits, S32, @OFFSET@, [0:1], "none", "trigger", "MAP", "INVALID"
analog_chart_e analogChartMode;
int[6] unusedbs;
2015-01-30 21:04:11 -08:00
custom le_formula_t 200 array, U08, @OFFSET@, [200],"char", 1, 0, 0.0, 3.0, 2
le_formula_t[LE_COMMAND_COUNT iterate] le_formulas;
2015-01-23 13:05:07 -08:00
end_struct
2015-01-24 15:04:20 -08:00
board_configuration_s bc;
2015-01-27 16:05:24 -08:00
bit hasMapSensor;@see isMapAveragingEnabled
2015-01-27 08:06:12 -08:00
bit hasIatSensor
bit hasBaroSensor
bit hasAfrSensor
bit useConstantDwellDuringCranking
bit isDigitalChartEnabled
bit isCanEnabled
bit hasCltSensor
bit canReadEnabled
bit canWriteEnabled
bit hasVehicleSpeedSensor
bit isJoystickEnabled
bit isGpsEnabled
bit hasMafSensor
bit hasTpsSensor
2015-01-24 15:04:20 -08:00
adc_channel_e hipOutputChannel;
idle_mode_e idleMode;
bit isInjectionEnabled
2015-01-27 08:06:12 -08:00
bit isIgnitionEnabled
bit isCylinderCleanupEnabled
bit secondTriggerChannelEnabled
2015-02-02 21:04:02 -08:00
bit needSecondTriggerInputDeprecated
2015-01-27 08:06:12 -08:00
bit isMapAveragingEnabled
bit isMilEnabled
bit isFuelPumpEnabled
bit isTunerStudioEnabled
bit isWaveAnalyzerEnabled
bit isIdleThreadEnabled
bit isPrintTriggerSynchDetails
2015-01-27 16:05:24 -08:00
bit isManualSpinningMode;Usually if we have no trigger events that means engine is stopped\nUnless we are troubleshooting and spinning the engine by hand - this case a longer\ndelay is needed
2015-01-31 05:07:08 -08:00
bit twoWireBatch
2015-01-24 15:04:20 -08:00
2015-01-30 21:04:11 -08:00
uint32_t digitalChartSize;;"count", 1, 0, 0, 300, 0
2015-01-24 15:04:20 -08:00
2015-01-30 21:04:11 -08:00
float[CRANKING_CURVE_SIZE] crankingFuelCoef;;"%", 100, 0, 0.0, 700.0, 2
float[CRANKING_CURVE_SIZE] crankingFuelBins;;"C", 1, 0, -80.0, 170.0, 2
2015-01-24 15:04:20 -08:00
2015-01-30 21:04:11 -08:00
float[CRANKING_CURVE_SIZE] crankingCycleCoef;;"%", 100, 0, 0.0, 500.0, 2
float[CRANKING_CURVE_SIZE] crankingCycleBins;;"C", 1, 0, -80.0, 170.0, 2
2015-01-24 15:04:20 -08:00
2015-01-30 21:04:11 -08:00
float ignitionDwellForCrankingMs;;"ms", 1, 0, 0, 200, 1
2015-01-24 15:04:20 -08:00
int targetIdleRpm;
adc_channel_e acSwitchAdc;A/C button input handled as analog input
int ignMathCalculateAtIndex;
int16_t acCutoffLowRpm;
int16_t acCutoffHighRpm;
int16_t acIdleRpmBump;
int16_t unusedShort;
adc_channel_e vRefAdcChannel;
float knockDetectionWindowStart;
float knockDetectionWindowEnd;
float cylinderBore;Cylinder diameter, in mm.
brain_pin_e clutchUpPin;Some vehicles have a switch to indicate that clutch pedal is all the way up
pin_input_mode_e clutchUpPinMode;
float hipThreshold;
2015-01-30 21:04:11 -08:00
brain_pin_e[LE_COMMAND_COUNT iterate] fsioInputs;
custom pin_input_mode_e 4 scalar, F32, @OFFSET@, "ms", 1, 0, 0, 200, 1
pin_input_mode_e[LE_COMMAND_COUNT iterate] fsioInputModes;
2015-01-24 15:04:20 -08:00
int[149] unused3;
le_formula_t timingMultiplier;
le_formula_t timingAdditive;
fuel_table_t injectionPhase;
2015-01-23 10:06:12 -08:00
2015-01-22 12:06:00 -08:00
2015-01-21 14:04:08 -08:00
end_struct