From 34f53bd1022c6372aaaea75a5781dc07fe51748f Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 30 Nov 2019 17:38:33 -0500 Subject: [PATCH] making things nicer with dual ETB settings --- .../microrusefi/board_configuration.cpp | 6 +- firmware/config/engines/bmw_m73.cpp | 12 ++-- firmware/config/engines/custom_engine.cpp | 14 ++--- firmware/config/engines/mazda_miata_vvt.cpp | 8 +-- firmware/config/engines/me7pnp.cpp | 8 +-- .../actuators/electronic_throttle.cpp | 34 +++++------ firmware/controllers/engine_controller.cpp | 2 +- firmware/integration/rusefi_config.txt | 8 ++- .../com/rusefi/config/generated/Fields.java | 58 ++++++++++--------- 9 files changed, 75 insertions(+), 75 deletions(-) diff --git a/firmware/config/boards/microrusefi/board_configuration.cpp b/firmware/config/boards/microrusefi/board_configuration.cpp index 0867713d8c..8b15734ecf 100644 --- a/firmware/config/boards/microrusefi/board_configuration.cpp +++ b/firmware/config/boards/microrusefi/board_configuration.cpp @@ -93,9 +93,9 @@ static void setupEtb() { // DIS - disables motor (enable low) // PWM pin - boardConfiguration->etb1.controlPin1 = GPIOC_7; + boardConfiguration->etb[0].controlPin1 = GPIOC_7; // DIR pin - boardConfiguration->etb1.directionPin1 = GPIOA_8; + boardConfiguration->etb[0].directionPin1 = GPIOA_8; // set_fsio_output_pin 7 PC8 #if EFI_FSIO @@ -113,7 +113,7 @@ static void setupEtb() { // engineConfiguration->throttlePedalPositionAdcChannel = EFI_ADC_7; // Unused - boardConfiguration->etb1.directionPin2 = GPIO_UNASSIGNED; + engineConfiguration->etbIo[0].directionPin2 = GPIO_UNASSIGNED; // we only have pwm/dir, no dira/dirb engineConfiguration->etb_use_two_wires = false; diff --git a/firmware/config/engines/bmw_m73.cpp b/firmware/config/engines/bmw_m73.cpp index 2628bb0f80..b06349d88c 100644 --- a/firmware/config/engines/bmw_m73.cpp +++ b/firmware/config/engines/bmw_m73.cpp @@ -174,17 +174,17 @@ GPIOA_6 engineConfiguration->tps2_1AdcChannel = EFI_ADC_4; // PA4 // PWM pin - boardConfiguration->etb1.controlPin1 = GPIO_UNASSIGNED; + engineConfiguration->etbIo[0].controlPin1 = GPIO_UNASSIGNED; // DIR pin - boardConfiguration->etb1.directionPin1 = GPIOC_9; - boardConfiguration->etb1.directionPin2 = GPIOC_8; + engineConfiguration->etbIo[0].directionPin1 = GPIOC_9; + engineConfiguration->etbIo[0].directionPin2 = GPIOC_8; CONFIG(etb_use_two_wires) = true; // PWM pin - engineConfiguration->etb2.controlPin1 = GPIO_UNASSIGNED; + engineConfiguration->etbIo[1].controlPin1 = GPIO_UNASSIGNED; // DIR pin - engineConfiguration->etb2.directionPin1 = GPIOB_8; - engineConfiguration->etb2.directionPin2 = GPIOB_9; + engineConfiguration->etbIo[1].directionPin1 = GPIOB_8; + engineConfiguration->etbIo[1].directionPin2 = GPIOB_9; boardConfiguration->injectionPins[0] = GPIO_UNASSIGNED; diff --git a/firmware/config/engines/custom_engine.cpp b/firmware/config/engines/custom_engine.cpp index 9239dec78a..8686d24dc9 100644 --- a/firmware/config/engines/custom_engine.cpp +++ b/firmware/config/engines/custom_engine.cpp @@ -267,9 +267,9 @@ void setEtbTestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) { /** * remember that some H-bridges require 5v control lines, not just 3v logic outputs we have on stm32 */ - CONFIGB(etb1.directionPin1) = GPIOC_7; // Frankenso high-side in order to get 5v control - CONFIGB(etb1.directionPin2) = GPIOC_9; - CONFIGB(etb1.controlPin1) = GPIOE_14; + CONFIG(etbIo[0].directionPin1) = GPIOC_7; // Frankenso high-side in order to get 5v control + CONFIG(etbIo[0].directionPin2) = GPIOC_9; + CONFIG(etbIo[0].controlPin1) = GPIOE_14; #if EFI_ELECTRONIC_THROTTLE_BODY setBoschVNH2SP30Curve(PASS_CONFIG_PARAMETER_SIGNATURE); @@ -349,8 +349,8 @@ void setTle8888TestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) { setFsio(12, GPIOF_12, "0" PASS_CONFIG_PARAMETER_SUFFIX); setFsio(14, GPIOF_13, "1" PASS_CONFIG_PARAMETER_SUFFIX); #endif /* EFI_FSIO */ - CONFIGB(etb1.directionPin1) = GPIOF_15; - CONFIGB(etb1.directionPin2) = GPIOF_14; + CONFIG(etbIo[0].directionPin1) = GPIOF_15; + CONFIG(etbIo[0].directionPin2) = GPIOF_14; #endif /* STM32_HAS_GPIOF */ CONFIG(etb_use_two_wires) = true; boardConfiguration->isHip9011Enabled = false; @@ -365,8 +365,8 @@ void setTle8888TestConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) { setFsio(13, GPIOE_5, "0" PASS_CONFIG_PARAMETER_SUFFIX); setFsio(15, GPIOE_6, "1" PASS_CONFIG_PARAMETER_SUFFIX); #endif - CONFIG(etb2.directionPin1) = GPIOE_2; - CONFIG(etb2.directionPin2) = GPIOE_4; + CONFIG(etbIo[0].directionPin1) = GPIOE_2; + CONFIG(etbIo[0].directionPin2) = GPIOE_4; engineConfiguration->tps1_1AdcChannel = EFI_ADC_3; // PA3 diff --git a/firmware/config/engines/mazda_miata_vvt.cpp b/firmware/config/engines/mazda_miata_vvt.cpp index 58e7550226..cb87c96203 100644 --- a/firmware/config/engines/mazda_miata_vvt.cpp +++ b/firmware/config/engines/mazda_miata_vvt.cpp @@ -411,12 +411,12 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_CONFIG_PARAMETER_SIGNATURE) { // VNH2SP30 three-wire ETB control // PWM - boardConfiguration->etb1.controlPin1 = GPIOE_6; - boardConfiguration->etb1.controlPinMode = OM_INVERTED; + engineConfiguration->etbIo[0].controlPin1 = GPIOE_6; + engineConfiguration->etbIo[0].controlPinMode = OM_INVERTED; // - boardConfiguration->etb1.directionPin1 = GPIOE_12; + engineConfiguration->etbIo[0].directionPin1 = GPIOE_12; // - boardConfiguration->etb1.directionPin2 = GPIOC_7; + engineConfiguration->etbIo[0].directionPin2 = GPIOC_7; // set_analog_input_pin tps PC3 engineConfiguration->tps1_1AdcChannel = EFI_ADC_13; // PC3 diff --git a/firmware/config/engines/me7pnp.cpp b/firmware/config/engines/me7pnp.cpp index 757d1479e0..4f9f1721f2 100644 --- a/firmware/config/engines/me7pnp.cpp +++ b/firmware/config/engines/me7pnp.cpp @@ -142,8 +142,8 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->auxPidFrequency[3] = 25; CONFIG(etb_use_two_wires) = true; #if defined(STM32_HAS_GPIOF) && STM32_HAS_GPIOF - CONFIGB(etb1.directionPin1) = GPIOF_15; - CONFIGB(etb1.directionPin2) = GPIOF_14; + CONFIG(etbIo[0].directionPin1) = GPIOF_15; + CONFIG(etbIo[0].directionPin2) = GPIOF_14; #endif /* STM32_HAS_GPIOF */ boardConfiguration->isHip9011Enabled = false; @@ -151,8 +151,8 @@ void vag_18_Turbo(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setFsio (13, GPIOE_5, "0" PASS_CONFIG_PARAMETER_SUFFIX); setFsio (15, GPIOE_6, "1" PASS_CONFIG_PARAMETER_SUFFIX); #endif - CONFIG(etb2.directionPin1) = GPIOE_2; - CONFIG(etb2.directionPin2) = GPIOE_4; + CONFIG(etbIo[1].directionPin1) = GPIOE_2; + CONFIG(etbIo[1].directionPin2) = GPIOE_4; engineConfiguration->etb.pFactor = 1.07; engineConfiguration->etb.iFactor = 0.18; diff --git a/firmware/controllers/actuators/electronic_throttle.cpp b/firmware/controllers/actuators/electronic_throttle.cpp index 5a92f39d7a..1c4d16fbf9 100644 --- a/firmware/controllers/actuators/electronic_throttle.cpp +++ b/firmware/controllers/actuators/electronic_throttle.cpp @@ -381,11 +381,11 @@ static void showEthInfo(void) { scheduleMsg(&logger, "etbControlPin1=%s duty=%.2f freq=%d", - hwPortname(CONFIGB(etb1.controlPin1)), + hwPortname(CONFIG(etbIo[0].controlPin1)), currentEtbDuty, engineConfiguration->etbFreq); - scheduleMsg(&logger, "dir1=%s", hwPortname(CONFIGB(etb1.directionPin1))); - scheduleMsg(&logger, "dir2=%s", hwPortname(CONFIGB(etb1.directionPin2))); + scheduleMsg(&logger, "dir1=%s", hwPortname(CONFIG(etbIo[0].directionPin1))); + scheduleMsg(&logger, "dir2=%s", hwPortname(CONFIG(etbIo[0].directionPin2))); for (int i = 0 ; i < ETB_COUNT; i++) { EtbHardware *etb = &etbHardware[i]; @@ -464,12 +464,6 @@ void setEtbOffset(int value) { #endif /* EFI_UNIT_TEST */ -static etb_io *getEtbIo(int index DECLARE_CONFIG_PARAMETER_SUFFIX) { - if (index == 0) - return &CONFIGB(etb1); - return &CONFIG(etb2); -} - void setBoschVNH2SP30Curve(DECLARE_CONFIG_PARAMETER_SIGNATURE) { engineConfiguration->etbBiasBins[0] = 0; engineConfiguration->etbBiasBins[1] = 1; @@ -538,19 +532,21 @@ static bool isEtbPinsChanged(etb_io *current, etb_io *active) { #if EFI_PROD_CODE bool isETBRestartNeeded(void) { - /** - * We do not want any interruption in HW pin while adjusting other properties - */ - return isEtbPinsChanged(&engineConfiguration->bc.etb1, &activeConfiguration.bc.etb1); + for (int i = 0 ; i < ETB_COUNT; i++) { + /** + * We do not want any interruption in HW pin while adjusting other properties + */ + bool changed = isEtbPinsChanged(&engineConfiguration->etbIo[0], &activeConfiguration.etbIo[0]); + if (changed) { + return changed; + } + } + return false; } void stopETBPins(void) { for (int i = 0 ; i < ETB_COUNT; i++) { -// todo: make etb1 and etb2 an array in configuration - that would be an incompatible configuration change but would -// remove of this nasty hack which has cost me a couple of hours troubleshooting - int ioOffset = (char *)getEtbIo(i PASS_CONFIG_PARAMETER_SUFFIX) - (char *)engineConfiguration; - - etb_io *activeIo = (etb_io *)(((char *)&activeConfiguration) + ioOffset); + etb_io *activeIo = &activeConfiguration.etbIo[i]; brain_pin_markUnused(activeIo->controlPin1); brain_pin_markUnused(activeIo->directionPin1); brain_pin_markUnused(activeIo->directionPin2); @@ -568,7 +564,7 @@ void onConfigurationChangeElectronicThrottleCallback(engine_configuration_s *pre void startETBPins(DECLARE_ENGINE_PARAMETER_SIGNATURE) { for (int i = 0 ; i < ETB_COUNT; i++) { - etb_io *io = getEtbIo(i PASS_CONFIG_PARAMETER_SUFFIX); + etb_io *io = &engineConfiguration->etbIo[i]; // controlPinMode is a strange feature - it's simply because I am short on 5v I/O on Frankenso with Miata NB2 test mule etbHardware[i].start( CONFIG(etb_use_two_wires), diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 7935e0ffea..73ee70a127 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -819,6 +819,6 @@ int getRusEfiVersion(void) { if (initBootloader() != 0) return 123; #endif /* EFI_BOOTLOADER_INCLUDE_CODE */ - return 20191129; + return 20191130; } #endif /* EFI_UNIT_TEST */ diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index eda0aa8fc1..12070d6f2a 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -553,7 +553,8 @@ spi_device_e digitalPotentiometerSpiDevice;Digital Potentiometer is used by stoc custom adc_channel_mode_e 4 bits, U32, @OFFSET@, [0:1], "Off", "Slow", "Fast", "INVALID" - etb_io etb1 + uint8_t[4] unused556; + float fuelLevelEmptyTankVoltage;;"V", 1, 0, 0,10, 2 float fuelLevelFullTankVoltage;;"V", 1, 0, 0,10, 2 @@ -718,7 +719,8 @@ board_configuration_s bc; float unused bit todoClutchUpPinInverted bit todoClutchDownPinInverted - int[121] unusedAtOldBoardConfigurationEnd; + etb_io[ETB_COUNT iterate] etbIo + int[119] unusedAtOldBoardConfigurationEnd; bit vvtDisplayInverted bit fuelClosedLoopCorrectionEnabled;+Enables lambda sensor closed loop feedback for fuelling. @@ -1055,7 +1057,7 @@ tChargeMode_e tChargeMode; int16_t etb_iTermMin;iTerm min value;"", 1, 0, -30000, 30000.0, 0 int16_t etb_iTermMax;iTerm max value;"", 1, 0, -30000, 30000.0, 0 float etbDeadband;;"", 1, 0, 0, 100.0, 2 - etb_io etb2 + uint8_t[4] unused1059; pid_s idleTimingPid;See useIdleTimingPidControl int16_t idleTimingPidWorkZone;+When the current RPM is closer than this value to the target, closed-loop idle timing control is enabled.;"RPM", 1, 0, 0, 1000, 0 diff --git a/java_console/models/src/com/rusefi/config/generated/Fields.java b/java_console/models/src/com/rusefi/config/generated/Fields.java index 3a6d22d7d5..f00e70bb3a 100644 --- a/java_console/models/src/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt Sat Nov 30 16:44:31 EST 2019 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on integration\rusefi_config.txt Sat Nov 30 17:04:45 EST 2019 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -336,16 +336,6 @@ public class Fields { public static final int engineSnifferRpmThreshold_offset_hex = 4; public static final int engineType_offset = 0; public static final int engineType_offset_hex = 0; - public static final int etb1_controlPin1_offset = 682; - public static final int etb1_controlPinMode_offset = 683; - public static final int etb1_directionPin1_offset = 680; - public static final int etb1_directionPin2_offset = 681; - public static final int etb1_offset = 680; - public static final int etb2_controlPin1_offset = 3966; - public static final int etb2_controlPinMode_offset = 3967; - public static final int etb2_directionPin1_offset = 3964; - public static final int etb2_directionPin2_offset = 3965; - public static final int etb2_offset = 3964; public static final int ETB_BIAS_CURVE_LENGTH = 8; public static final int ETB_COUNT = 2; public static final int etb_dFactor_offset = 1744; @@ -365,6 +355,16 @@ public class Fields { public static final int etbDeadband_offset = 3960; public static final int etbFreq_offset = 2514; public static final int etbIdleThrottleRange_offset = 4012; + public static final int etbIo1_controlPin1_offset = 982; + public static final int etbIo1_controlPinMode_offset = 983; + public static final int etbIo1_directionPin1_offset = 980; + public static final int etbIo1_directionPin2_offset = 981; + public static final int etbIo1_offset = 980; + public static final int etbIo2_controlPin1_offset = 986; + public static final int etbIo2_controlPinMode_offset = 987; + public static final int etbIo2_directionPin1_offset = 984; + public static final int etbIo2_directionPin2_offset = 985; + public static final int etbIo2_offset = 984; public static final int etbNeutralPosition_offset = 1471; public static final int externalKnockSenseAdc_offset = 3103; public static final int extraInjectionOffset_offset = 432; @@ -1241,7 +1241,9 @@ public class Fields { public static final int twoWireBatchInjection_offset = 1476; public static final int uartConsoleSerialSpeed_offset = 2076; public static final int unrealisticRpmThreashold_offset = 760; + public static final int unused1059_offset = 3964; public static final int unused1234234_offset = 2042; + public static final int unused556_offset = 680; public static final int unused_1484_bit_21_offset = 1476; public static final int unused_1484_bit_22_offset = 1476; public static final int unused_1484_bit_23_offset = 1476; @@ -1258,7 +1260,7 @@ public class Fields { public static final int unused_former_warmup_target_afr_offset_hex = 830; public static final int unused_offset = 972; public static final int unusedAnotherOne_offset = 744; - public static final int unusedAtOldBoardConfigurationEnd_offset = 980; + public static final int unusedAtOldBoardConfigurationEnd_offset = 988; public static final int unusedErrorPin_offset = 2040; public static final int unusedFlexFuelSensor_offset = 3100; public static final int unusedFormerWarmupAfrPid_offset = 1768; @@ -1538,10 +1540,6 @@ public class Fields { public static final Field DIGITALPOTENTIOMETERSPIDEVICE = Field.create("DIGITALPOTENTIOMETERSPIDEVICE", 677, FieldType.INT8); public static final Field MC33972_CS = Field.create("MC33972_CS", 678, FieldType.INT8, brain_pin_e); public static final Field MC33972_CSPINMODE = Field.create("MC33972_CSPINMODE", 679, FieldType.INT8, pin_output_mode_e); - public static final Field ETB1_DIRECTIONPIN1 = Field.create("ETB1_DIRECTIONPIN1", 680, FieldType.INT8, brain_pin_e); - public static final Field ETB1_DIRECTIONPIN2 = Field.create("ETB1_DIRECTIONPIN2", 681, FieldType.INT8, brain_pin_e); - public static final Field ETB1_CONTROLPIN1 = Field.create("ETB1_CONTROLPIN1", 682, FieldType.INT8, brain_pin_e); - public static final Field ETB1_CONTROLPINMODE = Field.create("ETB1_CONTROLPINMODE", 683, FieldType.INT8, pin_output_mode_e); public static final Field FUELLEVELEMPTYTANKVOLTAGE = Field.create("FUELLEVELEMPTYTANKVOLTAGE", 684, FieldType.FLOAT); public static final Field FUELLEVELFULLTANKVOLTAGE = Field.create("FUELLEVELFULLTANKVOLTAGE", 688, FieldType.FLOAT); public static final String[] ego_sensor_e = {"BPSX", "Innovate", "14Point7", "Narrow", "PLX", "Custom"}; @@ -1744,6 +1742,14 @@ public class Fields { public static final Field UNUSED = Field.create("UNUSED", 972, FieldType.FLOAT); public static final Field TODOCLUTCHUPPININVERTED = Field.create("TODOCLUTCHUPPININVERTED", 976, FieldType.BIT, 0); public static final Field TODOCLUTCHDOWNPININVERTED = Field.create("TODOCLUTCHDOWNPININVERTED", 976, FieldType.BIT, 1); + public static final Field ETBIO1_DIRECTIONPIN1 = Field.create("ETBIO1_DIRECTIONPIN1", 980, FieldType.INT8, brain_pin_e); + public static final Field ETBIO1_DIRECTIONPIN2 = Field.create("ETBIO1_DIRECTIONPIN2", 981, FieldType.INT8, brain_pin_e); + public static final Field ETBIO1_CONTROLPIN1 = Field.create("ETBIO1_CONTROLPIN1", 982, FieldType.INT8, brain_pin_e); + public static final Field ETBIO1_CONTROLPINMODE = Field.create("ETBIO1_CONTROLPINMODE", 983, FieldType.INT8, pin_output_mode_e); + public static final Field ETBIO2_DIRECTIONPIN1 = Field.create("ETBIO2_DIRECTIONPIN1", 984, FieldType.INT8, brain_pin_e); + public static final Field ETBIO2_DIRECTIONPIN2 = Field.create("ETBIO2_DIRECTIONPIN2", 985, FieldType.INT8, brain_pin_e); + public static final Field ETBIO2_CONTROLPIN1 = Field.create("ETBIO2_CONTROLPIN1", 986, FieldType.INT8, brain_pin_e); + public static final Field ETBIO2_CONTROLPINMODE = Field.create("ETBIO2_CONTROLPINMODE", 987, FieldType.INT8, pin_output_mode_e); public static final Field VVTDISPLAYINVERTED = Field.create("VVTDISPLAYINVERTED", 1464, FieldType.BIT, 0); public static final Field FUELCLOSEDLOOPCORRECTIONENABLED = Field.create("FUELCLOSEDLOOPCORRECTIONENABLED", 1464, FieldType.BIT, 1); public static final Field ISVERBOSEIAC = Field.create("ISVERBOSEIAC", 1464, FieldType.BIT, 2); @@ -2081,10 +2087,6 @@ public class Fields { public static final Field ETB_ITERMMIN = Field.create("ETB_ITERMMIN", 3956, FieldType.INT16); public static final Field ETB_ITERMMAX = Field.create("ETB_ITERMMAX", 3958, FieldType.INT16); public static final Field ETBDEADBAND = Field.create("ETBDEADBAND", 3960, FieldType.FLOAT); - public static final Field ETB2_DIRECTIONPIN1 = Field.create("ETB2_DIRECTIONPIN1", 3964, FieldType.INT8, brain_pin_e); - public static final Field ETB2_DIRECTIONPIN2 = Field.create("ETB2_DIRECTIONPIN2", 3965, FieldType.INT8, brain_pin_e); - public static final Field ETB2_CONTROLPIN1 = Field.create("ETB2_CONTROLPIN1", 3966, FieldType.INT8, brain_pin_e); - public static final Field ETB2_CONTROLPINMODE = Field.create("ETB2_CONTROLPINMODE", 3967, FieldType.INT8, pin_output_mode_e); public static final Field IDLETIMINGPID_PFACTOR = Field.create("IDLETIMINGPID_PFACTOR", 3968, FieldType.FLOAT); public static final Field IDLETIMINGPID_IFACTOR = Field.create("IDLETIMINGPID_IFACTOR", 3972, FieldType.FLOAT); public static final Field IDLETIMINGPID_DFACTOR = Field.create("IDLETIMINGPID_DFACTOR", 3976, FieldType.FLOAT); @@ -2341,10 +2343,6 @@ public class Fields { DIGITALPOTENTIOMETERSPIDEVICE, MC33972_CS, MC33972_CSPINMODE, - ETB1_DIRECTIONPIN1, - ETB1_DIRECTIONPIN2, - ETB1_CONTROLPIN1, - ETB1_CONTROLPINMODE, FUELLEVELEMPTYTANKVOLTAGE, FUELLEVELFULLTANKVOLTAGE, AFR_TYPE, @@ -2543,6 +2541,14 @@ public class Fields { UNUSED, TODOCLUTCHUPPININVERTED, TODOCLUTCHDOWNPININVERTED, + ETBIO1_DIRECTIONPIN1, + ETBIO1_DIRECTIONPIN2, + ETBIO1_CONTROLPIN1, + ETBIO1_CONTROLPINMODE, + ETBIO2_DIRECTIONPIN1, + ETBIO2_DIRECTIONPIN2, + ETBIO2_CONTROLPIN1, + ETBIO2_CONTROLPINMODE, VVTDISPLAYINVERTED, FUELCLOSEDLOOPCORRECTIONENABLED, ISVERBOSEIAC, @@ -2875,10 +2881,6 @@ public class Fields { ETB_ITERMMIN, ETB_ITERMMAX, ETBDEADBAND, - ETB2_DIRECTIONPIN1, - ETB2_DIRECTIONPIN2, - ETB2_CONTROLPIN1, - ETB2_CONTROLPINMODE, IDLETIMINGPID_PFACTOR, IDLETIMINGPID_IFACTOR, IDLETIMINGPID_DFACTOR,