Merge remote-tracking branch 'origin/master' into master

This commit is contained in:
rusefi 2020-09-15 14:49:01 -04:00
commit 0e370f87aa
20 changed files with 96 additions and 42 deletions

View File

@ -22,7 +22,7 @@ else
endif endif
# Override DEFAULT_ENGINE_TYPE # Override DEFAULT_ENGINE_TYPE
DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DLED_CRITICAL_ERROR_BRAIN_PIN=GPIOE_3 -DFIRMWARE_ID=\"proteus\" -DDEFAULT_ENGINE_TYPE=PROTEUS -DSTM32_ADC_USE_ADC3=TRUE -DEFI_INCLUDE_ENGINE_PRESETS=FALSE -DEFI_ICU_INPUTS=FALSE -DHAL_TRIGGER_USE_PAL=TRUE -DEFI_VEHICLE_SPEED=FALSE -DEFI_LOGIC_ANALYZER=FALSE -DEFI_SOFTWARE_KNOCK=TRUE DDEFS += $(MCU_DEFS) -DEFI_USE_OSC=TRUE -DLED_CRITICAL_ERROR_BRAIN_PIN=GPIOE_3 -DFIRMWARE_ID=\"proteus\" -DDEFAULT_ENGINE_TYPE=PROTEUS -DSTM32_ADC_USE_ADC3=TRUE -DEFI_INCLUDE_ENGINE_PRESETS=FALSE -DEFI_ICU_INPUTS=FALSE -DHAL_TRIGGER_USE_PAL=TRUE -DEFI_VEHICLE_SPEED=FALSE -DEFI_LOGIC_ANALYZER=FALSE -DEFI_SOFTWARE_KNOCK=TRUE -DEFI_CONSOLE_TX_BRAIN_PIN=GPIO_UNASSIGNED -DEFI_CONSOLE_RX_BRAIN_PIN=GPIO_UNASSIGNED
# Proteus <=v0.2 needs ADC hack - vbatt is on ADC3 # Proteus <=v0.2 needs ADC hack - vbatt is on ADC3
ifeq ($(PROTEUS_LEGACY),TRUE) ifeq ($(PROTEUS_LEGACY),TRUE)

View File

@ -139,6 +139,18 @@ static void setupDefaultSensorInputs() {
engineConfiguration->map.sensor.hwChannel = EFI_ADC_10; engineConfiguration->map.sensor.hwChannel = EFI_ADC_10;
} }
static void setupSdCard() {
engineConfiguration->isSdCardEnabled = true;
engineConfiguration->sdCardSpiDevice = SPI_DEVICE_3;
engineConfiguration->sdCardCsPin = GPIOD_2;
engineConfiguration->is_enabled_spi_3 = true;
engineConfiguration->spi3sckPin = GPIOC_10;
engineConfiguration->spi3misoPin = GPIOC_11;
engineConfiguration->spi3mosiPin = GPIOC_12;
}
void setPinConfigurationOverrides(void) { void setPinConfigurationOverrides(void) {
} }
@ -164,6 +176,7 @@ void setBoardConfigurationOverrides(void) {
setLedPins(); setLedPins();
setupVbatt(); setupVbatt();
setupEtb(); setupEtb();
setupSdCard();
// "required" hardware is done - set some reasonable defaults // "required" hardware is done - set some reasonable defaults
setupDefaultSensorInputs(); setupDefaultSensorInputs();

View File

@ -99,6 +99,8 @@ typedef uint8_t iac_pid_mult_t[IAC_PID_MULT_SIZE][IAC_PID_MULT_SIZE];
typedef float baro_corr_table_t[BARO_CORR_SIZE][BARO_CORR_SIZE]; typedef float baro_corr_table_t[BARO_CORR_SIZE][BARO_CORR_SIZE];
typedef bool tcubinary_table_t[TCU_SOLENOID_COUNT][TCU_GEAR_COUNT];
typedef float fsio_table_8x8_f32t[FSIO_TABLE_8][FSIO_TABLE_8]; typedef float fsio_table_8x8_f32t[FSIO_TABLE_8][FSIO_TABLE_8];
typedef float tps_tps_table_t[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE]; typedef float tps_tps_table_t[TPS_TPS_ACCEL_TABLE][TPS_TPS_ACCEL_TABLE];
typedef uint8_t fsio_table_8x8_u8t[FSIO_TABLE_8][FSIO_TABLE_8]; typedef uint8_t fsio_table_8x8_u8t[FSIO_TABLE_8][FSIO_TABLE_8];

View File

@ -1,2 +1,2 @@
#pragma once #pragma once
#define VCS_DATE 20200914 #define VCS_DATE 20200915

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Sep 12 07:36:48 UTC 2020 // this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Sep 15 08:35:14 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer // by class com.rusefi.output.FileFsioSettingsConsumer
FSIO_SETTING_FANONTEMPERATURE = 1000, FSIO_SETTING_FANONTEMPERATURE = 1000,

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Sep 12 07:36:48 UTC 2020 // this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Sep 15 08:35:14 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer // by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE: case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Sep 12 07:36:48 UTC 2020 // this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Sep 15 08:35:14 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer // by class com.rusefi.output.FileFsioSettingsConsumer
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Sep 12 07:36:48 UTC 2020 // this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Tue Sep 15 08:35:14 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer // by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE: case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD all #define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 2398398176 #define SIGNATURE_HASH 1463370833
#define TS_SIGNATURE "rusEFI 2020.09.12.all.2398398176" #define TS_SIGNATURE "rusEFI 2020.09.15.all.1463370833"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_BOARD frankenso_na6
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 695189723 #define SIGNATURE_HASH 4037157482
#define TS_SIGNATURE "rusEFI 2020.09.12.frankenso_na6.695189723" #define TS_SIGNATURE "rusEFI 2020.09.15.frankenso_na6.4037157482"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD kin #define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 1697619300 #define SIGNATURE_HASH 3168960469
#define TS_SIGNATURE "rusEFI 2020.09.12.kin.1697619300" #define TS_SIGNATURE "rusEFI 2020.09.15.kin.3168960469"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD mre_f4 #define SIGNATURE_BOARD mre_f4
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 2668692042 #define SIGNATURE_HASH 1188880635
#define TS_SIGNATURE "rusEFI 2020.09.12.mre_f4.2668692042" #define TS_SIGNATURE "rusEFI 2020.09.15.mre_f4.1188880635"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD mre_f7 #define SIGNATURE_BOARD mre_f7
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 2668692042 #define SIGNATURE_HASH 1188880635
#define TS_SIGNATURE "rusEFI 2020.09.12.mre_f7.2668692042" #define TS_SIGNATURE "rusEFI 2020.09.15.mre_f7.1188880635"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_BOARD prometheus_405
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 1004228499 #define SIGNATURE_HASH 3793136930
#define TS_SIGNATURE "rusEFI 2020.09.12.prometheus_405.1004228499" #define TS_SIGNATURE "rusEFI 2020.09.15.prometheus_405.3793136930"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_BOARD prometheus_469
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 1004228499 #define SIGNATURE_HASH 3793136930
#define TS_SIGNATURE "rusEFI 2020.09.12.prometheus_469.1004228499" #define TS_SIGNATURE "rusEFI 2020.09.15.prometheus_469.3793136930"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_BOARD proteus_f4
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 1831173616 #define SIGNATURE_HASH 3035144001
#define TS_SIGNATURE "rusEFI 2020.09.12.proteus_f4.1831173616" #define TS_SIGNATURE "rusEFI 2020.09.15.proteus_f4.3035144001"

View File

@ -3,6 +3,6 @@
// //
#define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_BOARD proteus_f7
#define SIGNATURE_DATE 2020.09.12 #define SIGNATURE_DATE 2020.09.15
#define SIGNATURE_HASH 1831173616 #define SIGNATURE_HASH 3035144001
#define TS_SIGNATURE "rusEFI 2020.09.12.proteus_f7.1831173616" #define TS_SIGNATURE "rusEFI 2020.09.15.proteus_f7.3035144001"

View File

@ -48,6 +48,11 @@ bool efiReadPin(brain_pin_e pin) {
*/ */
void efiSetPadMode(const char *msg, brain_pin_e brainPin, iomode_t mode) void efiSetPadMode(const char *msg, brain_pin_e brainPin, iomode_t mode)
{ {
if (brainPin == GPIO_UNASSIGNED) {
// No pin configured, nothing to do here.
return;
}
bool wasUsed = brain_pin_markUsed(brainPin, msg); bool wasUsed = brain_pin_markUsed(brainPin, msg);
if (!wasUsed) { if (!wasUsed) {

View File

@ -117,7 +117,8 @@ struct_no_prefix engine_configuration_s
#define CLT_TIMING_CURVE_SIZE 8 #define CLT_TIMING_CURVE_SIZE 8
#define IDLE_VE_CURVE_SIZE 8 #define IDLE_VE_CURVE_SIZE 8
#define TCU_SOLENOID_COUNT 8 #define TCU_SOLENOID_COUNT 6
#define TCU_GEAR_COUNT 10
#define ETB_COUNT 2 #define ETB_COUNT 2
@ -205,6 +206,8 @@ custom fuel_table_t 4*@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@ array, F32, @OF
custom ve_table_t 4*@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@ array, F32, @OFFSET@, [@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@],"%", 1, 0, 0, 999.0, 2 custom ve_table_t 4*@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@ array, F32, @OFFSET@, [@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@],"%", 1, 0, 0, 999.0, 2
custom afr_table_t @@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@ array, U08, @OFFSET@, [@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@],"deg", {1/@@PACK_MULT_AFR_CFG@@}, 0, 0, 25.0, 1 custom afr_table_t @@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@ array, U08, @OFFSET@, [@@FUEL_RPM_COUNT@@x@@FUEL_LOAD_COUNT@@],"deg", {1/@@PACK_MULT_AFR_CFG@@}, 0, 0, 25.0, 1
custom tcubinary_table_t @@TCU_SOLENOID_COUNT@@x@@TCU_GEAR_COUNT@@ array, U08, @OFFSET@, [@@TCU_SOLENOID_COUNT@@x@@TCU_GEAR_COUNT@@],"onoff", 1, 0, 0, 1, 0
custom fsio_table_8x8_u8t @@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@ array, U08, @OFFSET@, [@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@],"value", 1, 0, 0.0, 255.0, 0 custom fsio_table_8x8_u8t @@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@ array, U08, @OFFSET@, [@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@],"value", 1, 0, 0.0, 255.0, 0
custom fsio_table_8x8_f32t 4*@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@ array, F32, @OFFSET@, [@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@],"value", 1, 0, 0.0, 30000.0, 2 custom fsio_table_8x8_f32t 4*@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@ array, F32, @OFFSET@, [@@FSIO_TABLE_8@@x@@FSIO_TABLE_8@@],"value", 1, 0, 0.0, 30000.0, 2
custom tps_tps_table_t 4*@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@ array, F32, @OFFSET@, [@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@],"value", 1, 0, 0.0, 30000.0, 2 custom tps_tps_table_t 4*@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@ array, F32, @OFFSET@, [@@TPS_TPS_ACCEL_TABLE@@x@@TPS_TPS_ACCEL_TABLE@@],"value", 1, 0, 0.0, 30000.0, 2
@ -944,6 +947,8 @@ custom maf_sensor_type_e 4 bits, S32, @OFFSET@, [0:1], @@maf_sensor_type_e_enum@
output_pin_e[TCU_SOLENOID_COUNT iterate] tcu_solenoid; output_pin_e[TCU_SOLENOID_COUNT iterate] tcu_solenoid;
uint8_t[2] solenoidPadding;;"units", 1, 0, -20, 100, 0
spi_device_e drv8860spiDevice; spi_device_e drv8860spiDevice;
brain_pin_e drv8860_cs; brain_pin_e drv8860_cs;
pin_output_mode_e drv8860_csPinMode; pin_output_mode_e drv8860_csPinMode;
@ -1451,7 +1456,8 @@ angle_table_t injectionPhase;
float[FUEL_LOAD_COUNT] injPhaseLoadBins;;"Load", 1, 0.0, 0, 500.0, 2 float[FUEL_LOAD_COUNT] injPhaseLoadBins;;"Load", 1, 0.0, 0, 500.0, 2
float[FUEL_RPM_COUNT] injPhaseRpmBins;;"RPM", 1, 0.0, 0, 18000.0, 2 float[FUEL_RPM_COUNT] injPhaseRpmBins;;"RPM", 1, 0.0, 0, 18000.0, 2
uint8_t[1152] unused15136;;"units", 1, 0, -20, 100, 0 tcubinary_table_t tcuSolenoidTable;
uint8_t[1092] unused15136;;"units", 1, 0, -20, 100, 0
ignition_table_t ignitionTable; ignition_table_t ignitionTable;
float[IGN_LOAD_COUNT] ignitionLoadBins;;"Load", 1, 0.0, 0, 500.0, 2 float[IGN_LOAD_COUNT] ignitionLoadBins;;"Load", 1, 0.0, 0, 500.0, 2
@ -1489,6 +1495,7 @@ fsio_table_8x8_u8t fsioTable4;
float[FSIO_TABLE_8] fsioTable4LoadBins;;"L", 1, 0, 0.0, 255, 0 float[FSIO_TABLE_8] fsioTable4LoadBins;;"L", 1, 0, 0.0, 255, 0
float[FSIO_TABLE_8] fsioTable4RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0.0, 25500.0, 2 float[FSIO_TABLE_8] fsioTable4RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0.0, 25500.0, 2
end_struct end_struct
#define MOCK_IAT_COMMAND "mock_iat_voltage" #define MOCK_IAT_COMMAND "mock_iat_voltage"

View File

@ -129,6 +129,7 @@ enable2ndByteCanID = false
; it seems that TS also needs to know the diff.size of a tooth ; it seems that TS also needs to know the diff.size of a tooth
calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) } calcField = toothTime, "ToothTime", "ms", { time - pastValue(time, 1) }
[VeAnalyze] [VeAnalyze]
; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition
@ -382,6 +383,9 @@ enable2ndByteCanID = false
wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1; wueAfrTargetOffset = array, S16, [ 16], ":1", 0.1, 0.0, -3.0, 3.0, 1;
wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0 wueAnalRecommend = array, U08, [ 16], "%", 1.00, 0.0, 100, 255.00, 0
gearCountArray = array, S08, [@@TCU_GEAR_COUNT@@], "Gear", 1, 0, -1, { @@TCU_GEAR_COUNT@@ - 2 }, 0, noMsqSave
solenoidCountArray = array, U08, [@@TCU_SOLENOID_COUNT@@], "Solenoid", 1, 0, 1, @@TCU_SOLENOID_COUNT@@, 0, noMsqSave
; These are inverted (false = "Yes") so that they default to enabled ; These are inverted (false = "Yes") so that they default to enabled
enableLogDebugChannels = bits, U08, [0:0], "Yes", "No" enableLogDebugChannels = bits, U08, [0:0], "Yes", "No"
enableLogErrorList = bits, U08, [0:0], "Yes", "No" enableLogErrorList = bits, U08, [0:0], "Yes", "No"
@ -490,6 +494,11 @@ enable2ndByteCanID = false
readOnly = warning_message readOnly = warning_message
defaultValue = gearCountArray, -1 0 1 2 3 4 5 6 7 8
readOnly = gearCountArray
defaultValue = solenoidCountArray, 1 2 3 4 5 6 7 8
readOnly = solenoidCountArray
[CurveEditor] [CurveEditor]
; xAxis = leftValue, rightValue, step ; xAxis = leftValue, rightValue, step
@ -765,7 +774,7 @@ enable2ndByteCanID = false
xBins = baroCorrRpmBins, RPMValue xBins = baroCorrRpmBins, RPMValue
yBins = baroCorrPressureBins, baroPressure yBins = baroCorrPressureBins, baroPressure
zBins = baroCorrTable zBins = baroCorrTable
; gridHeight = 2.0 ; gridHeight = 2.0
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
upDownLabel = "(RICHER)", "(LEANER)" upDownLabel = "(RICHER)", "(LEANER)"
@ -859,6 +868,12 @@ enable2ndByteCanID = false
yBins = gppwm4_loadBins, gppwm4_load yBins = gppwm4_loadBins, gppwm4_load
zBins = gppwm4_table zBins = gppwm4_table
table = tcuSolenoidTableTbl, tcuSolenoidTableMap, "Solenoids Active By Gear", 1
yBins = gearCountArray, tcuCurrentGear
xBins = solenoidCountArray, tcuCurrentGear
zBins = tcuSolenoidTable
xyLabels = "Solenoid", "Gear"
[GaugeConfigurations] [GaugeConfigurations]
gaugeCategory = Sensors - Extra 2 gaugeCategory = Sensors - Extra 2
@ -1341,6 +1356,7 @@ menuDialog = main
subMenu = std_separator subMenu = std_separator
subMenu = tcuControls, "Transmission Settings" subMenu = tcuControls, "Transmission Settings"
subMenu = tcuSolenoidTableTbl, "TCU Solenoids"
menu = "&Sensors" menu = "&Sensors"
# Base analog input settings # Base analog input settings
@ -2891,15 +2907,27 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
field = "ADC #3", fsioAdc3 field = "ADC #3", fsioAdc3
field = "ADC #4", fsioAdc4 field = "ADC #4", fsioAdc4
dialog = shiftInputPanel dialog = transmissionPanel
field = "TCU Enabled" tcuEnabled field = "TCU Enabled" tcuEnabled
dialog = solenoidPanel, "Shift Solenoids"
field = "Solenoid 1 Pin" tcu_solenoid1, { tcuEnabled }
field = "Solenoid 2 Pin" tcu_solenoid2, { tcuEnabled }
field = "Solenoid 3 Pin" tcu_solenoid3, { tcuEnabled }
field = "Solenoid 4 Pin" tcu_solenoid4, { tcuEnabled }
field = "Solenoid 5 Pin" tcu_solenoid5, { tcuEnabled }
field = "Solenoid 6 Pin" tcu_solenoid6, { tcuEnabled }
dialog = buttonShiftInputPanel
field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled } field = "Upshift Pin" tcuUpshiftButtonPin, { tcuEnabled }
field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled } field = "Upshift Pin Mode" tcuUpshiftButtonPinMode, { tcuEnabled }
field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled } field = "Downshift Pin" tcuDownshiftButtonPin, { tcuEnabled }
field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled } field = "Downshift Pin Mode" tcuDownshiftButtonPinMode, { tcuEnabled }
dialog = tcuControls, "Transmission Settings" dialog = tcuControls, "Transmission Settings"
panel = shiftInputPanel panel = transmissionPanel
panel = solenoidPanel
panel = buttonShiftInputPanel
;Boost Open Loop ;Boost Open Loop
@ -3238,4 +3266,3 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
;addTool = toolName, PanelName ;addTool = toolName, PanelName
addTool = veTableGenerator, "VE Table Generator", veTableTbl addTool = veTableGenerator, "VE Table Generator", veTableTbl
addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl addTool = afrTableGenerator, "AFR Table Generator", afrTableTbl