From 61440c5e73da2f8f2d400c726f5ba8835adbe3fd Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 9 Jan 2019 23:38:59 -0500 Subject: [PATCH] The Big Refactoring of 2019: DECLARE_ENGINE_PARAMETER_SUFFIX consistency and simplification #657 --- firmware/config/engines/GY6_139QMB.cpp | 6 +- firmware/config/engines/bmw_e34.cpp | 74 ++--- .../config/engines/chevrolet_camaro_4.cpp | 46 ++-- .../config/engines/citroenBerlingoTU3JP.cpp | 54 ++-- firmware/config/engines/custom_engine.cpp | 144 +++++----- firmware/config/engines/custom_engine.h | 4 +- firmware/config/engines/dodge_neon.cpp | 104 +++---- firmware/config/engines/dodge_ram.cpp | 42 +-- firmware/config/engines/dodge_stratus.cpp | 12 +- .../config/engines/ford_1995_inline_6.cpp | 20 +- firmware/config/engines/ford_aspire.cpp | 4 +- firmware/config/engines/ford_festiva.cpp | 64 ++--- firmware/config/engines/ford_fiesta.cpp | 6 +- firmware/config/engines/gm_2_2.cpp | 4 +- firmware/config/engines/honda_600.cpp | 50 ++-- firmware/config/engines/honda_accord.cpp | 36 +-- firmware/config/engines/lada_kalina.cpp | 36 +-- firmware/config/engines/mazda_626.cpp | 4 +- firmware/config/engines/mazda_miata.cpp | 144 +++++----- firmware/config/engines/mazda_miata.h | 2 +- firmware/config/engines/mazda_miata_1_6.cpp | 32 +-- firmware/config/engines/mazda_miata_na8.cpp | 8 +- firmware/config/engines/mazda_miata_nb.cpp | 44 +-- firmware/config/engines/mazda_miata_vvt.cpp | 52 ++-- firmware/config/engines/mitsubishi.cpp | 16 +- firmware/config/engines/rover_v8.cpp | 88 +++--- firmware/config/engines/rover_v8.h | 2 +- firmware/config/engines/sachs.cpp | 16 +- firmware/config/engines/subaru.cpp | 16 +- firmware/config/engines/suzuki_vitara.cpp | 2 +- firmware/config/engines/test_engine.cpp | 22 +- firmware/config/engines/toyota_jzs147.cpp | 38 +-- firmware/config/engines/vw.cpp | 12 +- firmware/config/engines/zil130.cpp | 50 ++-- .../controllers/algo/engine_configuration.cpp | 255 +++++++++--------- .../controllers/algo/engine_configuration.h | 4 +- firmware/controllers/settings.cpp | 130 ++++----- 37 files changed, 823 insertions(+), 820 deletions(-) diff --git a/firmware/config/engines/GY6_139QMB.cpp b/firmware/config/engines/GY6_139QMB.cpp index 83ce5652d7..3ba9f55681 100644 --- a/firmware/config/engines/GY6_139QMB.cpp +++ b/firmware/config/engines/GY6_139QMB.cpp @@ -86,7 +86,7 @@ void setGy6139qmbDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) engineConfiguration->analogInputDividerCoefficient = 1; engineConfiguration->fuelAlgorithm = LM_MAP; engineConfiguration->globalTriggerAngleOffset = 45; - boardConfiguration->sensorChartMode = SC_MAP; + CONFIGB(sensorChartMode) = SC_MAP; engineConfiguration->specs.displacement = 0.072; // 72cc engineConfiguration->specs.cylindersCount = 1; setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); @@ -100,7 +100,7 @@ void setGy6139qmbDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) engineConfiguration->trigger.customTotalToothCount = 8; engineConfiguration->trigger.customSkippedToothCount = 1; - boardConfiguration->injectionPins[0] = GPIOC_9; - boardConfiguration->ignitionPins[0] = GPIOC_8; + CONFIGB(injectionPins)[0] = GPIOC_9; + CONFIGB(ignitionPins)[0] = GPIOC_8; } diff --git a/firmware/config/engines/bmw_e34.cpp b/firmware/config/engines/bmw_e34.cpp index 0c7a6452a0..383c1043dc 100644 --- a/firmware/config/engines/bmw_e34.cpp +++ b/firmware/config/engines/bmw_e34.cpp @@ -26,8 +26,8 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); // engineConfiguration->trigger.type = TT_ONE_PLUS_TOOTHED_WHEEL_60_2; // engineConfiguration->injectionMode = IM_SEQUENTIAL; -// boardConfiguration->triggerInputPins[0] = GPIOC_6; -// boardConfiguration->triggerInputPins[1] = GPIOA_5; +// CONFIGB(triggerInputPins)[0] = GPIOC_6; +// CONFIGB(triggerInputPins)[1] = GPIOA_5; //Base engine setting engineConfiguration->specs.cylindersCount = 6; @@ -38,7 +38,7 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->ignitionMode = IM_WASTED_SPARK; engineConfiguration->useOnlyRisingEdgeForTrigger = true; - boardConfiguration->tachOutputPin = GPIOC_8; + CONFIGB(tachOutputPin) = GPIOC_8; // Trigger configuration // engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; @@ -57,12 +57,12 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->injector.flow = 750; // General settings - boardConfiguration->tunerStudioSerialSpeed = 57600; + CONFIGB(tunerStudioSerialSpeed) = 57600; engineConfiguration->rpmHardLimit = 7000; setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); // for best performance at high RPM, we need to turn off 'Engine Sniffer' and 'Sensor Sniffer' - boardConfiguration->sensorChartMode = SC_OFF; + CONFIGB(sensorChartMode) = SC_OFF; engineConfiguration->isEngineChartEnabled = false; engineConfiguration->isCylinderCleanupEnabled = false; @@ -90,52 +90,52 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->tpsAdcChannel = EFI_ADC_3; - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; setWholeTimingTable(25 PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED; + CONFIGB(malfunctionIndicatorPin) = GPIO_UNASSIGNED; // bc->isFastAdcEnabled = true; - boardConfiguration->injectionPinMode = OM_INVERTED; - boardConfiguration->injectionPins[0] = GPIOB_8; // #1 - boardConfiguration->injectionPins[1] = GPIOE_2; // #2 - boardConfiguration->injectionPins[2] = GPIOE_3; // #3 - boardConfiguration->injectionPins[3] = GPIOE_4; // #4 - boardConfiguration->injectionPins[4] = GPIOE_5; // #5 - boardConfiguration->injectionPins[5] = GPIOE_6; // #6 + CONFIGB(injectionPinMode) = OM_INVERTED; + CONFIGB(injectionPins)[0] = GPIOB_8; // #1 + CONFIGB(injectionPins)[1] = GPIOE_2; // #2 + CONFIGB(injectionPins)[2] = GPIOE_3; // #3 + CONFIGB(injectionPins)[3] = GPIOE_4; // #4 + CONFIGB(injectionPins)[4] = GPIOE_5; // #5 + CONFIGB(injectionPins)[5] = GPIOE_6; // #6 - boardConfiguration->ignitionPinMode = OM_INVERTED; + CONFIGB(ignitionPinMode) = OM_INVERTED; - boardConfiguration->ignitionPins[0] = GPIOB_5; // #1 - boardConfiguration->ignitionPins[2] = GPIOB_6; // #3 - boardConfiguration->ignitionPins[4] = GPIOB_7; // #5 + CONFIGB(ignitionPins)[0] = GPIOB_5; // #1 + CONFIGB(ignitionPins)[2] = GPIOB_6; // #3 + CONFIGB(ignitionPins)[4] = GPIOB_7; // #5 - boardConfiguration->canRxPin = GPIO_UNASSIGNED; - boardConfiguration->canTxPin = GPIO_UNASSIGNED; + CONFIGB(canRxPin) = GPIO_UNASSIGNED; + CONFIGB(canTxPin) = GPIO_UNASSIGNED; - boardConfiguration->triggerErrorPin = GPIO_UNASSIGNED; + CONFIGB(triggerErrorPin) = GPIO_UNASSIGNED; // clutch up - boardConfiguration->clutchUpPin = GPIOD_3; - boardConfiguration->clutchUpPinMode = PI_PULLUP; + CONFIGB(clutchUpPin) = GPIOD_3; + CONFIGB(clutchUpPinMode) = PI_PULLUP; // fuel pump - boardConfiguration->fuelPumpPin = GPIOD_4; + CONFIGB(fuelPumpPin) = GPIOD_4; // idle - boardConfiguration->idle.solenoidPin = GPIOC_14; - boardConfiguration->idle.solenoidPinMode = OM_INVERTED; - boardConfiguration->idle.solenoidFrequency = 300; - boardConfiguration->manIdlePosition = 50; // set_idle_pwm 50 + CONFIGB(idle).solenoidPin = GPIOC_14; + CONFIGB(idle).solenoidPinMode = OM_INVERTED; + CONFIGB(idle).solenoidFrequency = 300; + CONFIGB(manIdlePosition) = 50; // set_idle_pwm 50 // disable sd_card - boardConfiguration->sdCardCsPin = GPIO_UNASSIGNED; - boardConfiguration->is_enabled_spi_2 = false; - boardConfiguration->is_enabled_spi_3 = false; - boardConfiguration->max31855spiDevice = SPI_NONE; + CONFIGB(sdCardCsPin) = GPIO_UNASSIGNED; + CONFIGB(is_enabled_spi_2) = false; + CONFIGB(is_enabled_spi_3) = false; + CONFIGB(max31855spiDevice) = SPI_NONE; // turbocharger boost control solenoid: TODO output: GPIOE_6 // water injection #1 TODO GPIOD_7 @@ -145,7 +145,7 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * emulating the 60-0 trigger takes some resources, let's keep it slow by default * rpm 200 */ - boardConfiguration->triggerSimulatorFrequency = 200; + CONFIGB(triggerSimulatorFrequency) = 200; // Configurating sensors: @@ -165,7 +165,7 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // */ // bc->triggerSimulatorPins[1] = GPIO_UNASSIGNED; - boardConfiguration->triggerSimulatorPins[0] = GPIOD_1; - boardConfiguration->triggerSimulatorPins[1] = GPIOD_2; - boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED; + CONFIGB(triggerSimulatorPins)[0] = GPIOD_1; + CONFIGB(triggerSimulatorPins)[1] = GPIOD_2; + CONFIGB(triggerSimulatorPins)[2] = GPIO_UNASSIGNED; } diff --git a/firmware/config/engines/chevrolet_camaro_4.cpp b/firmware/config/engines/chevrolet_camaro_4.cpp index d6465cc849..94793abed9 100644 --- a/firmware/config/engines/chevrolet_camaro_4.cpp +++ b/firmware/config/engines/chevrolet_camaro_4.cpp @@ -26,8 +26,8 @@ void setCamaro4(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->specs.cylindersCount = 8; engineConfiguration->specs.firingOrder = FO_1_8_7_2_6_5_4_3; - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIOC_6; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIOC_6; engineConfiguration->injectionMode = IM_BATCH; engineConfiguration->twoWireBatchInjection = true; @@ -58,31 +58,31 @@ void setCamaro4(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->afr.hwChannel = EFI_ADC_13; - boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED; - boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED; + CONFIGB(idle).solenoidPin = GPIO_UNASSIGNED; + CONFIGB(fuelPumpPin) = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[0] = GPIOE_6; - boardConfiguration->injectionPins[1] = GPIOE_5; - boardConfiguration->injectionPins[2] = GPIOD_7; - boardConfiguration->injectionPins[3] = GPIOC_13; - boardConfiguration->injectionPins[4] = GPIOE_3; - boardConfiguration->injectionPins[5] = GPIOE_4; - boardConfiguration->injectionPins[6] = GPIOD_3; - boardConfiguration->injectionPins[7] = GPIOE_2; + CONFIGB(injectionPins)[0] = GPIOE_6; + CONFIGB(injectionPins)[1] = GPIOE_5; + CONFIGB(injectionPins)[2] = GPIOD_7; + CONFIGB(injectionPins)[3] = GPIOC_13; + CONFIGB(injectionPins)[4] = GPIOE_3; + CONFIGB(injectionPins)[5] = GPIOE_4; + CONFIGB(injectionPins)[6] = GPIOD_3; + CONFIGB(injectionPins)[7] = GPIOE_2; - boardConfiguration->ignitionPins[0] = GPIOC_9; - boardConfiguration->ignitionPins[1] = GPIOC_7; - boardConfiguration->ignitionPins[2] = GPIOE_14; - boardConfiguration->ignitionPins[3] = GPIOE_12; - boardConfiguration->ignitionPins[4] = GPIOE_10; - boardConfiguration->ignitionPins[5] = GPIOE_8; - boardConfiguration->ignitionPins[6] = GPIOD_9; - boardConfiguration->ignitionPins[7] = GPIOD_8; + CONFIGB(ignitionPins)[0] = GPIOC_9; + CONFIGB(ignitionPins)[1] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOE_14; + CONFIGB(ignitionPins)[3] = GPIOE_12; + CONFIGB(ignitionPins)[4] = GPIOE_10; + CONFIGB(ignitionPins)[5] = GPIOE_8; + CONFIGB(ignitionPins)[6] = GPIOD_9; + CONFIGB(ignitionPins)[7] = GPIOD_8; - boardConfiguration->fuelPumpPin = GPIOB_8; - boardConfiguration->fanPin = GPIO_UNASSIGNED; - boardConfiguration->mainRelayPin = GPIOD_5; + CONFIGB(fuelPumpPin) = GPIOB_8; + CONFIGB(fanPin) = GPIO_UNASSIGNED; + CONFIGB(mainRelayPin) = GPIOD_5; } diff --git a/firmware/config/engines/citroenBerlingoTU3JP.cpp b/firmware/config/engines/citroenBerlingoTU3JP.cpp index c8c63e2bb2..e17b15fc2a 100644 --- a/firmware/config/engines/citroenBerlingoTU3JP.cpp +++ b/firmware/config/engines/citroenBerlingoTU3JP.cpp @@ -17,13 +17,15 @@ #include "citroenBerlingoTU3JP.h" #include "settings.h" -void setLCD(board_configuration_s *boardConfiguration) { - boardConfiguration->HD44780_rs = GPIOE_7; - boardConfiguration->HD44780_e = GPIOE_9; - boardConfiguration->HD44780_db4 = GPIOE_11; - boardConfiguration->HD44780_db5 = GPIOE_13; - boardConfiguration->HD44780_db6 = GPIOE_15; - boardConfiguration->HD44780_db7 = GPIOB_10; +EXTERN_ENGINE; + +static void setLCD(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + CONFIGB(HD44780_rs) = GPIOE_7; + CONFIGB(HD44780_e) = GPIOE_9; + CONFIGB(HD44780_db4) = GPIOE_11; + CONFIGB(HD44780_db5) = GPIOE_13; + CONFIGB(HD44780_db6) = GPIOE_15; + CONFIGB(HD44780_db7) = GPIOB_10; } static const fuel_table_t tps_fuel_table = { @@ -120,35 +122,35 @@ void setCitroenBerlingoTU3JPConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein lo-side output #11: PB8 Main relay // Frankenstein lo-side output #12: PB9 Fuel pump - boardConfiguration->ignitionPins[0] = GPIOC_14; - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOC_15; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOC_14; + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOC_15; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; engineConfiguration->injector.flow = 137; //SIEMENS DEKA VAZ20734 - boardConfiguration->injectionPins[0] = GPIOE_6; - boardConfiguration->injectionPins[1] = GPIOC_13; - boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[0] = GPIOE_6; + CONFIGB(injectionPins)[1] = GPIOC_13; + CONFIGB(injectionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[3] = GPIO_UNASSIGNED; - boardConfiguration->fanPin = GPIOE_0; - boardConfiguration->fanPinMode = OM_DEFAULT; + CONFIGB(fanPin) = GPIOE_0; + CONFIGB(fanPinMode) = OM_DEFAULT; engineConfiguration->fanOffTemperature = 95; engineConfiguration->fanOnTemperature = 99; - boardConfiguration->malfunctionIndicatorPin = GPIOE_1; - boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + CONFIGB(malfunctionIndicatorPin) = GPIOE_1; + CONFIGB(malfunctionIndicatorPinMode) = OM_DEFAULT; - boardConfiguration->mainRelayPin = GPIOB_8; + CONFIGB(mainRelayPin) = GPIOB_8; - boardConfiguration->fuelPumpPin = GPIOB_9; - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; + CONFIGB(fuelPumpPin) = GPIOB_9; + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; - setLCD(boardConfiguration); + setLCD(PASS_ENGINE_PARAMETER_SIGNATURE); -// boardConfiguration->o2heaterPin = GPIOC_13; -// boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED; +// CONFIGB(o2heaterPin) = GPIOC_13; +// CONFIGB(logicAnalyzerPins)[1] = GPIO_UNASSIGNED; /** * Inputs @@ -206,7 +208,7 @@ void setCitroenBerlingoTU3JPConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { /** * Speed Sensor */ - boardConfiguration->vehicleSpeedSensorInputPin = GPIOA_8; + CONFIGB(vehicleSpeedSensorInputPin) = GPIOA_8; /** * Other */ diff --git a/firmware/config/engines/custom_engine.cpp b/firmware/config/engines/custom_engine.cpp index f03da4ed19..7cdf09d9d6 100644 --- a/firmware/config/engines/custom_engine.cpp +++ b/firmware/config/engines/custom_engine.cpp @@ -62,22 +62,22 @@ void test557init(void) { } #endif /* EFI_PROD_CODE */ -void setFrankenso_01_LCD(board_configuration_s *boardConfiguration) { - boardConfiguration->HD44780_rs = GPIOE_7; - boardConfiguration->HD44780_e = GPIOE_9; - boardConfiguration->HD44780_db4 = GPIOE_11; - boardConfiguration->HD44780_db5 = GPIOE_13; - boardConfiguration->HD44780_db6 = GPIOE_15; - boardConfiguration->HD44780_db7 = GPIOB_10; +void setFrankenso_01_LCD(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + CONFIGB(HD44780_rs) = GPIOE_7; + CONFIGB(HD44780_e) = GPIOE_9; + CONFIGB(HD44780_db4) = GPIOE_11; + CONFIGB(HD44780_db5) = GPIOE_13; + CONFIGB(HD44780_db6) = GPIOE_15; + CONFIGB(HD44780_db7) = GPIOB_10; } -void disableLCD(board_configuration_s *boardConfiguration) { - boardConfiguration->HD44780_rs = GPIO_UNASSIGNED; - boardConfiguration->HD44780_e = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED; +void disableLCD(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + CONFIGB(HD44780_rs) = GPIO_UNASSIGNED; + CONFIGB(HD44780_e) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db4) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db5) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db6) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db7) = GPIO_UNASSIGNED; } // todo: should this be renamed to 'setFrankensoConfiguration'? @@ -85,9 +85,9 @@ void disableLCD(board_configuration_s *boardConfiguration) { void setCustomEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->trigger.type = TT_ONE_PLUS_ONE; - setFrankenso_01_LCD(boardConfiguration); - commonFrankensoAnalogInputs(engineConfiguration); - setFrankenso0_1_joystick(engineConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); + commonFrankensoAnalogInputs(PASS_ENGINE_PARAMETER_SIGNATURE); + setFrankenso0_1_joystick(PASS_ENGINE_PARAMETER_SIGNATURE); /** * Frankenso analog #1 PC2 ADC12 CLT @@ -133,28 +133,28 @@ void setCustomEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenso low out #11: PB8 injector #3 // Frankenso low out #12: PB7 injector #4 - boardConfiguration->fuelPumpPin = GPIOE_4; - boardConfiguration->mainRelayPin = GPIOD_7; - boardConfiguration->idle.solenoidPin = GPIOC_13; + CONFIGB(fuelPumpPin) = GPIOE_4; + CONFIGB(mainRelayPin) = GPIOD_7; + CONFIGB(idle).solenoidPin = GPIOC_13; - boardConfiguration->fanPin = GPIOE_5; + CONFIGB(fanPin) = GPIOE_5; - boardConfiguration->injectionPins[0] = GPIOB_9; // #1 - boardConfiguration->injectionPins[1] = GPIOE_2; // #2 - boardConfiguration->injectionPins[2] = GPIOB_8; // #3 - boardConfiguration->injectionPins[3] = GPIOB_7; // #4 + CONFIGB(injectionPins)[0] = GPIOB_9; // #1 + CONFIGB(injectionPins)[1] = GPIOE_2; // #2 + CONFIGB(injectionPins)[2] = GPIOB_8; // #3 + CONFIGB(injectionPins)[3] = GPIOB_7; // #4 setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); #if EFI_PWM_TESTER - boardConfiguration->injectionPins[4] = GPIOC_8; // #5 - boardConfiguration->injectionPins[5] = GPIOD_10; // #6 - boardConfiguration->injectionPins[6] = GPIOD_9; - boardConfiguration->injectionPins[7] = GPIOD_11; - boardConfiguration->injectionPins[8] = GPIOD_0; - boardConfiguration->injectionPins[9] = GPIOB_11; - boardConfiguration->injectionPins[10] = GPIOC_7; - boardConfiguration->injectionPins[11] = GPIOE_4; + CONFIGB(injectionPins)[4] = GPIOC_8; // #5 + CONFIGB(injectionPins)[5] = GPIOD_10; // #6 + CONFIGB(injectionPins)[6] = GPIOD_9; + CONFIGB(injectionPins)[7] = GPIOD_11; + CONFIGB(injectionPins)[8] = GPIOD_0; + CONFIGB(injectionPins)[9] = GPIOB_11; + CONFIGB(injectionPins)[10] = GPIOC_7; + CONFIGB(injectionPins)[11] = GPIOE_4; /** * We want to initialize all outputs for test @@ -163,20 +163,20 @@ void setCustomEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->displayMode = DM_NONE; #else /* EFI_PWM_TESTER */ - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[7] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[6] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[7] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[8] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[9] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[10] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[11] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[0] = GPIOE_14; - boardConfiguration->ignitionPins[1] = GPIOC_7; - boardConfiguration->ignitionPins[2] = GPIOC_9; + CONFIGB(ignitionPins)[0] = GPIOE_14; + CONFIGB(ignitionPins)[1] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOC_9; // set_ignition_pin 4 PE10 - boardConfiguration->ignitionPins[3] = GPIOE_10; + CONFIGB(ignitionPins)[3] = GPIOE_10; #endif /* EFI_PWM_TESTER */ // todo: 8.2 or 10k? @@ -192,7 +192,7 @@ void setFrankensoBoardTestConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->directSelfStimulation = true; // this engine type is used for board validation - boardConfiguration->triggerSimulatorFrequency = 300; + CONFIGB(triggerSimulatorFrequency) = 300; engineConfiguration->cranking.rpm = 100; engineConfiguration->specs.cylindersCount = 12; @@ -201,38 +201,38 @@ void setFrankensoBoardTestConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // set ignition_mode 1 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; - boardConfiguration->injectionPins[0] = GPIOB_7; // injector in default pinout - boardConfiguration->injectionPins[1] = GPIOB_8; // injector in default pinout - boardConfiguration->injectionPins[2] = GPIOB_9; // injector in default pinout - boardConfiguration->injectionPins[3] = GPIOC_13; + CONFIGB(injectionPins)[0] = GPIOB_7; // injector in default pinout + CONFIGB(injectionPins)[1] = GPIOB_8; // injector in default pinout + CONFIGB(injectionPins)[2] = GPIOB_9; // injector in default pinout + CONFIGB(injectionPins)[3] = GPIOC_13; - boardConfiguration->injectionPins[4] = GPIOD_3; - boardConfiguration->injectionPins[5] = GPIOD_5; - boardConfiguration->injectionPins[6] = GPIOD_7; - boardConfiguration->injectionPins[7] = GPIOE_2; // injector in default pinout - boardConfiguration->injectionPins[8] = GPIOE_3; - boardConfiguration->injectionPins[9] = GPIOE_4; - boardConfiguration->injectionPins[10] = GPIOE_5; - boardConfiguration->injectionPins[11] = GPIOE_6; + CONFIGB(injectionPins)[4] = GPIOD_3; + CONFIGB(injectionPins)[5] = GPIOD_5; + CONFIGB(injectionPins)[6] = GPIOD_7; + CONFIGB(injectionPins)[7] = GPIOE_2; // injector in default pinout + CONFIGB(injectionPins)[8] = GPIOE_3; + CONFIGB(injectionPins)[9] = GPIOE_4; + CONFIGB(injectionPins)[10] = GPIOE_5; + CONFIGB(injectionPins)[11] = GPIOE_6; - boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED; - boardConfiguration->mainRelayPin = GPIO_UNASSIGNED; - boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED; - boardConfiguration->fanPin = GPIO_UNASSIGNED; + CONFIGB(fuelPumpPin) = GPIO_UNASSIGNED; + CONFIGB(mainRelayPin) = GPIO_UNASSIGNED; + CONFIGB(idle).solenoidPin = GPIO_UNASSIGNED; + CONFIGB(fanPin) = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[0] = GPIOC_9; // coil in default pinout - boardConfiguration->ignitionPins[1] = GPIOC_7; // coil in default pinout - boardConfiguration->ignitionPins[2] = GPIOE_10; // coil in default pinout - boardConfiguration->ignitionPins[3] = GPIOE_8; // Miata VVT tach + CONFIGB(ignitionPins)[0] = GPIOC_9; // coil in default pinout + CONFIGB(ignitionPins)[1] = GPIOC_7; // coil in default pinout + CONFIGB(ignitionPins)[2] = GPIOE_10; // coil in default pinout + CONFIGB(ignitionPins)[3] = GPIOE_8; // Miata VVT tach - boardConfiguration->ignitionPins[4] = GPIOE_14; // coil in default pinout - boardConfiguration->ignitionPins[5] = GPIOE_12; - boardConfiguration->ignitionPins[6] = GPIOD_8; - boardConfiguration->ignitionPins[7] = GPIOD_9; + CONFIGB(ignitionPins)[4] = GPIOE_14; // coil in default pinout + CONFIGB(ignitionPins)[5] = GPIOE_12; + CONFIGB(ignitionPins)[6] = GPIOD_8; + CONFIGB(ignitionPins)[7] = GPIOD_9; - boardConfiguration->ignitionPins[8] = GPIOE_0; // brain board, not discovery - boardConfiguration->ignitionPins[9] = GPIOE_1; // brain board, not discovery + CONFIGB(ignitionPins)[8] = GPIOE_0; // brain board, not discovery + CONFIGB(ignitionPins)[9] = GPIOE_1; // brain board, not discovery } diff --git a/firmware/config/engines/custom_engine.h b/firmware/config/engines/custom_engine.h index 9d24c32805..0858103553 100644 --- a/firmware/config/engines/custom_engine.h +++ b/firmware/config/engines/custom_engine.h @@ -10,8 +10,8 @@ #include "engine.h" void setCustomEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE); -void setFrankenso_01_LCD(board_configuration_s *boardConfiguration); -void disableLCD(board_configuration_s *boardConfiguration); +void setFrankenso_01_LCD(DECLARE_ENGINE_PARAMETER_SIGNATURE); +void disableLCD(DECLARE_ENGINE_PARAMETER_SIGNATURE); void test557init(void); void setFrankensoBoardTestConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE); diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index 8d7cdcdca2..4f037ab6c6 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -154,12 +154,12 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // engineConfiguration->spi2MosiMode = PAL_STM32_OTYPE_OPENDRAIN; // 4 // engineConfiguration->spi2MisoMode = PAL_STM32_PUDR_PULLUP; // 32 - // boardConfiguration->spi2mosiPin = GPIOB_15; - // boardConfiguration->spi2misoPin = GPIOB_14; - // boardConfiguration->spi2sckPin = GPIOB_13; - boardConfiguration->cj125CsPin = GPIOB_0; // rev 0.4 - boardConfiguration->isCJ125Enabled = true; - boardConfiguration->is_enabled_spi_2 = true; + // CONFIGB(spi2mosiPin) = GPIOB_15; + // CONFIGB(spi2misoPin) = GPIOB_14; + // CONFIGB(spi2sckPin) = GPIOB_13; + CONFIGB(cj125CsPin) = GPIOB_0; // rev 0.4 + CONFIGB(isCJ125Enabled) = true; + CONFIGB(is_enabled_spi_2) = true; // set_rpm_hard_limit 4000 @@ -223,28 +223,28 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein: low side - out #11: PB8 // Frankenstein: low side - out #12: PB9 - boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12 - boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11 - boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8 - boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6 + CONFIGB(injectionPins)[0] = GPIOB_9; // Frankenstein: low side - out #12 + CONFIGB(injectionPins)[1] = GPIOB_8; // Frankenstein: low side - out #11 + CONFIGB(injectionPins)[2] = GPIOE_3; // Frankenstein: low side - out #8 + CONFIGB(injectionPins)[3] = GPIOE_5; // Frankenstein: low side - out #6 - boardConfiguration->fuelPumpPin = GPIOC_13; // Frankenstein: low side - out #4 - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; + CONFIGB(fuelPumpPin) = GPIOC_13; // Frankenstein: low side - out #4 + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; engineConfiguration->mapErrorDetectionTooHigh = 120; // set injection_pin_mode 0 - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPinMode) = OM_DEFAULT; // Frankenstein: high side #1: PE8 // Frankenstein: high side #2: PE10 - boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1 - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2 + CONFIGB(ignitionPins)[0] = GPIOE_8; // Frankenstein: high side #1 + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOE_10; // // Frankenstein: high side #2 // set ignition_pin_mode 0 - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPinMode) = OM_DEFAULT; setThermistorConfiguration(&engineConfiguration->clt, 0, 32500, 30, 7550, 100, 700); engineConfiguration->clt.config.bias_resistor = 2700; @@ -254,10 +254,10 @@ void setDodgeNeon1995EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->trigger.type = TT_DODGE_NEON_2003_CAM; - setFrankenso_01_LCD(boardConfiguration); - setFrankenso0_1_joystick(engineConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); + setFrankenso0_1_joystick(PASS_ENGINE_PARAMETER_SIGNATURE); -// boardConfiguration->useWarmupPidAfr = true; +// CONFIGB(useWarmupPidAfr) = true; engineConfiguration->warmupAfrPid.pFactor = -0.2; engineConfiguration->warmupAfrPid.iFactor = -0.0005; // engineConfiguration->warmupAfrPid.dFactor = -0.02; @@ -328,14 +328,14 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setFuelTablesLoadBin(20, 120 PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED; + CONFIGB(malfunctionIndicatorPin) = GPIO_UNASSIGNED; /** * PA4 Wideband O2 Sensor */ engineConfiguration->afr.hwChannel = EFI_ADC_4; - commonFrankensoAnalogInputs(engineConfiguration); + commonFrankensoAnalogInputs(PASS_ENGINE_PARAMETER_SIGNATURE); engineConfiguration->vbattDividerCoeff = 9.75;// ((float) (8.2 + 33)) / 8.2 * 2; /** @@ -354,29 +354,29 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenso low out #11: PB8 injector #1 // Frankenso low out #12: PB7 injector #4 - boardConfiguration->fanPin = GPIOD_7; + CONFIGB(fanPin) = GPIOD_7; - boardConfiguration->injectionPins[0] = GPIOB_8; - boardConfiguration->injectionPins[1] = GPIOB_9; - boardConfiguration->injectionPins[2] = GPIOE_2; - boardConfiguration->injectionPins[3] = GPIOB_7; + CONFIGB(injectionPins)[0] = GPIOB_8; + CONFIGB(injectionPins)[1] = GPIOB_9; + CONFIGB(injectionPins)[2] = GPIOE_2; + CONFIGB(injectionPins)[3] = GPIOB_7; - boardConfiguration->ignitionPins[0] = GPIOC_9; - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOE_8; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOC_9; + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOE_8; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; - boardConfiguration->mainRelayPin = GPIOE_6; + CONFIGB(mainRelayPin) = GPIOE_6; - boardConfiguration->idle.solenoidPin = GPIOC_13; - boardConfiguration->idle.solenoidFrequency = 300; - boardConfiguration->manIdlePosition = 36; + CONFIGB(idle).solenoidPin = GPIOC_13; + CONFIGB(idle).solenoidFrequency = 300; + CONFIGB(manIdlePosition) = 36; - boardConfiguration->fuelPumpPin = GPIOE_3; - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; + CONFIGB(fuelPumpPin) = GPIOE_3; + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIOC_6; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIOC_6; /** * Frankenso analog #1 PC2 ADC12 CLT @@ -427,8 +427,8 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { */ engineConfiguration->clt.adcChannel = EFI_ADC_12; - boardConfiguration->sensorChartMode = SC_MAP; - boardConfiguration->isFastAdcEnabled = true; + CONFIGB(sensorChartMode) = SC_MAP; + CONFIGB(isFastAdcEnabled) = true; engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003; engineConfiguration->hip9011Gain = 0.3; @@ -447,10 +447,10 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->cylinderBore = 87.5; - boardConfiguration->clutchDownPin = GPIOC_12; - boardConfiguration->clutchDownPinMode = PI_PULLUP; -// boardConfiguration->clutchUpPin = GPIOA_14; // note SWCLK - conflict with SWD - boardConfiguration->clutchUpPinMode = PI_PULLUP; + CONFIGB(clutchDownPin) = GPIOC_12; + CONFIGB(clutchDownPinMode) = PI_PULLUP; +// CONFIGB(clutchUpPin) = GPIOA_14; // note SWCLK - conflict with SWD + CONFIGB(clutchUpPinMode) = PI_PULLUP; engineConfiguration->activateAuxPid1 = 1; engineConfiguration->auxPidPins[0] = GPIOD_5; // playing with AUX PID for alternator @@ -467,22 +467,22 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // /** // * set_fsio_setting 1 0.55 // */ -// boardConfiguration->fsio_setting[0] = 0.55; +// CONFIGB(fsio_setting)[0] = 0.55; // setFsioExt(0, GPIOE_5, "0 fsio_setting", 400 PASS_ENGINE_PARAMETER_SUFFIX); #endif - boardConfiguration->vehicleSpeedSensorInputPin = GPIOA_8; + CONFIGB(vehicleSpeedSensorInputPin) = GPIOA_8; engineConfiguration->fanOnTemperature = 92; engineConfiguration->fanOffTemperature = 89; // engineConfiguration->fanOnTemperature = 115; // knock testing - value is a bit high // engineConfiguration->fanOffTemperature = 100; -// boardConfiguration->tunerStudioSerialSpeed = 9600; - boardConfiguration->tunerStudioSerialSpeed = 19200; +// CONFIGB(tunerStudioSerialSpeed) = 9600; + CONFIGB(tunerStudioSerialSpeed) = 19200; setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); -//temp boardConfiguration->alternatorControlPin = GPIOD_5; +//temp CONFIGB(alternatorControlPin) = GPIOD_5; engineConfiguration->targetVBatt = 14.0; engineConfiguration->alternatorControl.offset = 20; engineConfiguration->alternatorControl.pFactor = 20; @@ -508,8 +508,8 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->wwaeTau = 0; engineConfiguration->wwaeBeta = 0; - boardConfiguration->isSdCardEnabled = false; - boardConfiguration->manIdlePosition = 36; // set_idle_pwm 40 + CONFIGB(isSdCardEnabled) = false; + CONFIGB(manIdlePosition) = 36; // set_idle_pwm 40 engineConfiguration->slowAdcAlpha = 0.33333; diff --git a/firmware/config/engines/dodge_ram.cpp b/firmware/config/engines/dodge_ram.cpp index 4ec0fd2e00..f24db61c07 100644 --- a/firmware/config/engines/dodge_ram.cpp +++ b/firmware/config/engines/dodge_ram.cpp @@ -36,27 +36,27 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->specs.firingOrder = FO_1_8_4_3_6_5_7_2; engineConfiguration->specs.displacement = 5.2; - boardConfiguration->triggerInputPins[0] = GPIOC_6; - boardConfiguration->triggerInputPins[1] = GPIOA_5; + CONFIGB(triggerInputPins)[0] = GPIOC_6; + CONFIGB(triggerInputPins)[1] = GPIOA_5; - boardConfiguration->injectionPins[0] = GPIOE_2; - boardConfiguration->injectionPins[1] = GPIOB_9; - boardConfiguration->injectionPins[2] = GPIOD_5; - boardConfiguration->injectionPins[3] = GPIOB_8; + CONFIGB(injectionPins)[0] = GPIOE_2; + CONFIGB(injectionPins)[1] = GPIOB_9; + CONFIGB(injectionPins)[2] = GPIOD_5; + CONFIGB(injectionPins)[3] = GPIOB_8; - boardConfiguration->injectionPins[4] = GPIOB_7; - boardConfiguration->injectionPins[5] = GPIOE_3; - boardConfiguration->injectionPins[6] = GPIOE_4; - boardConfiguration->injectionPins[7] = GPIOD_3; + CONFIGB(injectionPins)[4] = GPIOB_7; + CONFIGB(injectionPins)[5] = GPIOE_3; + CONFIGB(injectionPins)[6] = GPIOE_4; + CONFIGB(injectionPins)[7] = GPIOD_3; - boardConfiguration->ignitionPins[0] = GPIOC_9; - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOC_9; + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; - boardConfiguration->mainRelayPin = GPIOE_5; - boardConfiguration->fuelPumpPin = GPIOE_6; - boardConfiguration->fanPin = GPIO_UNASSIGNED; + CONFIGB(mainRelayPin) = GPIOE_5; + CONFIGB(fuelPumpPin) = GPIOE_6; + CONFIGB(fanPin) = GPIO_UNASSIGNED; engineConfiguration->engineChartSize = 450; @@ -72,11 +72,11 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setWholeTimingTable(10 PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->alternatorControlPin = GPIOD_7; + CONFIGB(alternatorControlPin) = GPIOD_7; engineConfiguration->alternatorControl.pFactor = 22; - boardConfiguration->idle.solenoidPin = GPIOC_13; - boardConfiguration->idle.solenoidFrequency = 300; + CONFIGB(idle).solenoidPin = GPIOC_13; + CONFIGB(idle).solenoidFrequency = 300; engineConfiguration->vbattAdcChannel = EFI_ADC_14; // engineConfiguration->vbattDividerCoeff = ((float) (8.93 + 41.27)) / 8.93 * 2; @@ -88,5 +88,5 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setDodgeSensor(&engineConfiguration->iat); engineConfiguration->iat.config.bias_resistor = 2700; - boardConfiguration->useStepperIdle = true; + CONFIGB(useStepperIdle) = true; } diff --git a/firmware/config/engines/dodge_stratus.cpp b/firmware/config/engines/dodge_stratus.cpp index ada99dd9b1..9f5727d003 100644 --- a/firmware/config/engines/dodge_stratus.cpp +++ b/firmware/config/engines/dodge_stratus.cpp @@ -23,12 +23,12 @@ void setDodgeStratus(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; - boardConfiguration->ignitionPins[0] = GPIOC_9; - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOE_8; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[5] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOC_9; + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOE_8; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[5] = GPIO_UNASSIGNED; } diff --git a/firmware/config/engines/ford_1995_inline_6.cpp b/firmware/config/engines/ford_1995_inline_6.cpp index dd547b99de..8c7b5a3f29 100644 --- a/firmware/config/engines/ford_1995_inline_6.cpp +++ b/firmware/config/engines/ford_1995_inline_6.cpp @@ -85,13 +85,13 @@ void setFordInline6(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // output 5 is PC13 // output 6 is PC15 - boardConfiguration->fuelPumpPin = GPIOC_13; - boardConfiguration->injectionPins[0] = GPIOB_9; - boardConfiguration->injectionPins[1] = GPIOE_3; - boardConfiguration->ignitionPins[0] = GPIOC_15; + CONFIGB(fuelPumpPin) = GPIOC_13; + CONFIGB(injectionPins)[0] = GPIOB_9; + CONFIGB(injectionPins)[1] = GPIOE_3; + CONFIGB(ignitionPins)[0] = GPIOC_15; - boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->fanPin = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(fanPin) = GPIO_UNASSIGNED; engineConfiguration->tpsMin = convertVoltageTo10bitADC(1.250); engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538); @@ -99,10 +99,10 @@ void setFordInline6(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // engineConfiguration->vbattAdcChannel = 0; // engineConfiguration->mafAdcChannel = EFI_ADC_1; - boardConfiguration->triggerInputPins[0] = GPIOA_8; - boardConfiguration->triggerInputPins[1] = GPIOA_5; - boardConfiguration->logicAnalyzerPins[0] = GPIOC_6; - boardConfiguration->logicAnalyzerPins[1] = GPIOE_5; + CONFIGB(triggerInputPins)[0] = GPIOA_8; + CONFIGB(triggerInputPins)[1] = GPIOA_5; + CONFIGB(logicAnalyzerPins)[0] = GPIOC_6; + CONFIGB(logicAnalyzerPins)[1] = GPIOE_5; } #endif /* EFI_SUPPORT_1995_FORD_INLINE_6 */ diff --git a/firmware/config/engines/ford_aspire.cpp b/firmware/config/engines/ford_aspire.cpp index ae8e0434ce..cc12d2a12e 100644 --- a/firmware/config/engines/ford_aspire.cpp +++ b/firmware/config/engines/ford_aspire.cpp @@ -120,8 +120,8 @@ void setFordAspireEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->useOnlyRisingEdgeForTrigger = true; engineConfiguration->trigger.type = TT_FORD_ASPIRE; - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; engineConfiguration->HD44780width = 20; engineConfiguration->HD44780height = 4; diff --git a/firmware/config/engines/ford_festiva.cpp b/firmware/config/engines/ford_festiva.cpp index 36794ab173..29e4aee186 100644 --- a/firmware/config/engines/ford_festiva.cpp +++ b/firmware/config/engines/ford_festiva.cpp @@ -69,10 +69,10 @@ EXTERN_ENGINE; void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4; - common079721_2351(engineConfiguration, boardConfiguration); + common079721_2351(PASS_ENGINE_PARAMETER_SIGNATURE); - setFrankenso_01_LCD(boardConfiguration); - setFrankenso0_1_joystick(engineConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); + setFrankenso0_1_joystick(PASS_ENGINE_PARAMETER_SIGNATURE); setDensoTODO(config); @@ -104,21 +104,21 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { copyFuelTable(racingFestivaVeTable, config->veTable); -// boardConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU -// boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP +// CONFIGB(triggerInputPins)[0] = GPIOC_6; // 2G YEL/BLU +// CONFIGB(triggerInputPins)[1] = GPIOA_5; // 2E White CKP // in case of SOHC distributor we only have one signal -// boardConfiguration->triggerInputPins[0] = GPIOA_5; // 2E White CKP -// boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; +// CONFIGB(triggerInputPins)[0] = GPIOA_5; // 2E White CKP +// CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; // in case of DOHC distributor we have two signals - boardConfiguration->triggerInputPins[0] = GPIOC_6; - boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP + CONFIGB(triggerInputPins)[0] = GPIOC_6; + CONFIGB(triggerInputPins)[1] = GPIOA_5; // 2E White CKP // Denso 195500-2180 engineConfiguration->injector.flow = 265; - boardConfiguration->isFastAdcEnabled = true; + CONFIGB(isFastAdcEnabled) = true; engineConfiguration->map.sensor.type = MT_DENSO183; engineConfiguration->map.sensor.hwChannel = EFI_ADC_4; @@ -126,7 +126,7 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->afr.hwChannel = EFI_ADC_2; // Frankenso analog #5 // PA2 // set_idle_position 10 - boardConfiguration->manIdlePosition = 10; + CONFIGB(manIdlePosition) = 10; engineConfiguration->crankingIACposition = 65; setWholeIatCorrTimingTable(0 PASS_ENGINE_PARAMETER_SUFFIX); @@ -155,8 +155,8 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setSingleCoilDwell(engineConfiguration); engineConfiguration->ignitionMode = IM_ONE_COIL; - boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN; - boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN; + CONFIGB(triggerSimulatorPinModes)[0] = OM_OPENDRAIN; + CONFIGB(triggerSimulatorPinModes)[1] = OM_OPENDRAIN; // individual coils // W6 PC9 @@ -164,11 +164,11 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // W12 PE8 // W13 PE12 - boardConfiguration->ignitionPins[0] = GPIOC_9; - boardConfiguration->ignitionPins[1] = GPIOC_7; - boardConfiguration->ignitionPins[2] = GPIOE_8; - boardConfiguration->ignitionPins[3] = GPIOE_12; - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPins)[0] = GPIOC_9; + CONFIGB(ignitionPins)[1] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOE_8; + CONFIGB(ignitionPins)[3] = GPIOE_12; + CONFIGB(ignitionPinMode) = OM_DEFAULT; engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; @@ -190,23 +190,23 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenso low out #11: PB8 // Frankenso low out #12: PB7 - boardConfiguration->injectionPins[0] = GPIOD_3; - boardConfiguration->injectionPins[1] = GPIOE_2; + CONFIGB(injectionPins)[0] = GPIOD_3; + CONFIGB(injectionPins)[1] = GPIOE_2; //setDefaultCrankingFuel(engineConfiguration); engineConfiguration->cranking.baseFuel = 5; // 40% idle is good default - boardConfiguration->idle.solenoidFrequency = 300; - boardConfiguration->idle.solenoidPin = GPIOB_9; + CONFIGB(idle).solenoidFrequency = 300; + CONFIGB(idle).solenoidPin = GPIOB_9; - boardConfiguration->malfunctionIndicatorPin = GPIOE_5; - boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + CONFIGB(malfunctionIndicatorPin) = GPIOE_5; + CONFIGB(malfunctionIndicatorPinMode) = OM_DEFAULT; - boardConfiguration->tunerStudioSerialSpeed = 19200; + CONFIGB(tunerStudioSerialSpeed) = 19200; - commonFrankensoAnalogInputs(engineConfiguration); + commonFrankensoAnalogInputs(PASS_ENGINE_PARAMETER_SIGNATURE); setCommonNTCSensor(&engineConfiguration->clt); engineConfiguration->clt.config.bias_resistor = 2700; setCommonNTCSensor(&engineConfiguration->iat); @@ -230,7 +230,7 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * to test * set_fsio_setting 1 5000 */ - boardConfiguration->fsio_setting[0] = 5000; + CONFIGB(fsio_setting)[0] = 5000; // set_fsio_expression 1 "rpm > fsio_setting(1)" setFsioExt(0, GPIOE_3, RPM_ABOVE_USER_SETTING_1, 150 PASS_ENGINE_PARAMETER_SUFFIX); @@ -246,9 +246,9 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * set_rpn_expression 1 "rpm 0 fsio_setting > coolant 1 fsio_setting > | vbatt 2 fsio_setting < |" * eval "rpm 0 fsio_setting > coolant 1 fsio_setting > | vbatt 2 fsio_setting < |" */ - boardConfiguration->fsio_setting[1] = 6200; // RPM threshold - boardConfiguration->fsio_setting[2] = 90; // CLT threshold - boardConfiguration->fsio_setting[3] = 13.5; // voltage threshold + CONFIGB(fsio_setting)[1] = 6200; // RPM threshold + CONFIGB(fsio_setting)[2] = 90; // CLT threshold + CONFIGB(fsio_setting)[3] = 13.5; // voltage threshold // setFsio(1, GPIOC_13, "rpm 2 fsio_setting > coolant 3 fsio_setting > | vbatt 4 fsio_setting < |" PASS_ENGINE_PARAMETER_SUFFIX); setFsio(1, GPIOD_7, RPM_ABOVE_USER_SETTING_2 PASS_ENGINE_PARAMETER_SUFFIX); @@ -272,7 +272,7 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { config->ignitionRpmBins[15] = 7000; copyTimingTable(racingFestivaIgnitionTable, config->ignitionTable); - // boardConfiguration->useWarmupPidAfr = true; + // CONFIGB(useWarmupPidAfr) = true; engineConfiguration->warmupAfrPid.pFactor = -0.2; engineConfiguration->warmupAfrPid.iFactor = -0.0005; // engineConfiguration->warmupAfrPid.dFactor = -0.02; @@ -284,7 +284,7 @@ void setFordEscortGt(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->engineLoadAccelEnrichmentThreshold = 5.0; engineConfiguration->engineLoadAccelEnrichmentMultiplier = 1; - boardConfiguration->isSdCardEnabled = true; + CONFIGB(isSdCardEnabled) = true; // engineConfiguration->useFSIO16ForTimingAdjustment = true; engineConfiguration->fsioAdc[0] = EFI_ADC_12; // PA3 diff --git a/firmware/config/engines/ford_fiesta.cpp b/firmware/config/engines/ford_fiesta.cpp index 37d060aedd..6c6e241364 100644 --- a/firmware/config/engines/ford_fiesta.cpp +++ b/firmware/config/engines/ford_fiesta.cpp @@ -32,10 +32,10 @@ void setFordFiestaDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) // etb testing -// boardConfiguration->clutchUpPin - boardConfiguration->etbControlPin1 = GPIOD_3; +// CONFIGB(clutchUpPin) + CONFIGB(etbControlPin1) = GPIOD_3; engineConfiguration->pedalPositionAdcChannel = EFI_ADC_1; - boardConfiguration->etbDirectionPin2 = GPIOD_5; + CONFIGB(etbDirectionPin2) = GPIOD_5; engineConfiguration->tpsMin = 337; engineConfiguration->tpsMax = 896; diff --git a/firmware/config/engines/gm_2_2.cpp b/firmware/config/engines/gm_2_2.cpp index 2adb578376..1854097ed3 100644 --- a/firmware/config/engines/gm_2_2.cpp +++ b/firmware/config/engines/gm_2_2.cpp @@ -17,6 +17,6 @@ void setGm2_2(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setOperationMode(engineConfiguration, FOUR_STROKE_CAM_SENSOR); engineConfiguration->trigger.type = TT_ONE_PLUS_TOOTHED_WHEEL_60_2; - boardConfiguration->triggerInputPins[0] = GPIOC_6; - boardConfiguration->triggerInputPins[1] = GPIOA_8; + CONFIGB(triggerInputPins)[0] = GPIOC_6; + CONFIGB(triggerInputPins)[1] = GPIOA_8; } diff --git a/firmware/config/engines/honda_600.cpp b/firmware/config/engines/honda_600.cpp index 17fac9852f..0a233e1f4e 100644 --- a/firmware/config/engines/honda_600.cpp +++ b/firmware/config/engines/honda_600.cpp @@ -64,8 +64,8 @@ void setHonda600(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->fuelAlgorithm = LM_ALPHA_N; // upside down wiring - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIOC_6; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIOC_6; // set global_trigger_offset_angle 180 @@ -85,9 +85,9 @@ void setHonda600(DECLARE_ENGINE_PARAMETER_SIGNATURE) { //setIndividualCoilsIgnition(); - setFrankenso_01_LCD(boardConfiguration); - commonFrankensoAnalogInputs(engineConfiguration); - setFrankenso0_1_joystick(engineConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); + commonFrankensoAnalogInputs(PASS_ENGINE_PARAMETER_SIGNATURE); + setFrankenso0_1_joystick(PASS_ENGINE_PARAMETER_SIGNATURE); setMap(config->injectionPhase, 320); /** * Frankenso analog #1 PC2 ADC12 CLT @@ -133,33 +133,33 @@ void setHonda600(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenso low out #11: PB8 injector #3 // Frankenso low out #12: PB7 injector #4 - boardConfiguration->fuelPumpPin = GPIOE_4; - boardConfiguration->mainRelayPin = GPIOD_7; - boardConfiguration->idle.solenoidPin = GPIOC_13; + CONFIGB(fuelPumpPin) = GPIOE_4; + CONFIGB(mainRelayPin) = GPIOD_7; + CONFIGB(idle).solenoidPin = GPIOC_13; - boardConfiguration->fanPin = GPIOE_5; + CONFIGB(fanPin) = GPIOE_5; - boardConfiguration->injectionPins[0] = GPIOB_9; // #1 - boardConfiguration->injectionPins[1] = GPIOD_5; // #2 - boardConfiguration->injectionPins[2] = GPIOB_7; // #3 - boardConfiguration->injectionPins[3] = GPIOB_8; // #4 + CONFIGB(injectionPins)[0] = GPIOB_9; // #1 + CONFIGB(injectionPins)[1] = GPIOD_5; // #2 + CONFIGB(injectionPins)[2] = GPIOB_7; // #3 + CONFIGB(injectionPins)[3] = GPIOB_8; // #4 setDefaultCustomMaps(PASS_ENGINE_PARAMETER_SIGNATURE); setAlgorithm(LM_ALPHA_N PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[7] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[6] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[7] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[8] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[9] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[10] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[11] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[0] = GPIOE_14; - boardConfiguration->ignitionPins[1] = GPIOC_7; - boardConfiguration->ignitionPins[2] = GPIOE_10; - boardConfiguration->ignitionPins[3] = GPIOC_9; // #4 + CONFIGB(ignitionPins)[0] = GPIOE_14; + CONFIGB(ignitionPins)[1] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOE_10; + CONFIGB(ignitionPins)[3] = GPIOC_9; // #4 // todo: 8.2 or 10k? engineConfiguration->vbattDividerCoeff = ((float) (10 + 33)) / 10 * 2; diff --git a/firmware/config/engines/honda_accord.cpp b/firmware/config/engines/honda_accord.cpp index 1d91eb892f..d269110a68 100644 --- a/firmware/config/engines/honda_accord.cpp +++ b/firmware/config/engines/honda_accord.cpp @@ -39,7 +39,7 @@ EXTERN_ENGINE; static void setHondaAccordConfigurationCommon(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->map.sensor.type = MT_DENSO183; - boardConfiguration->isFastAdcEnabled = true; + CONFIGB(isFastAdcEnabled) = true; // set ignition_mode 0 engineConfiguration->ignitionMode = IM_ONE_COIL; @@ -150,29 +150,29 @@ static void setHondaAccordConfigurationCommon(DECLARE_ENGINE_PARAMETER_SIGNATURE // Frankenso low out #10: PD5 Injector #3 // Frankenso low out #11: PB8 injector #1 // Frankenso low out #12: PB7 injector #4 - boardConfiguration->fuelPumpPin = GPIOE_3; - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; - boardConfiguration->malfunctionIndicatorPin = GPIOE_2; - boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; - boardConfiguration->fanPin = GPIOE_4; // blue wire + CONFIGB(fuelPumpPin) = GPIOE_3; + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; + CONFIGB(malfunctionIndicatorPin) = GPIOE_2; + CONFIGB(malfunctionIndicatorPinMode) = OM_DEFAULT; + CONFIGB(fanPin) = GPIOE_4; // blue wire - boardConfiguration->idle.solenoidPin = GPIOD_3; // green wire + CONFIGB(idle).solenoidPin = GPIOD_3; // green wire - boardConfiguration->injectionPins[0] = GPIOB_8; - boardConfiguration->injectionPins[1] = GPIOB_9; - boardConfiguration->injectionPins[2] = GPIOD_5; - boardConfiguration->injectionPins[3] = GPIOB_7; + CONFIGB(injectionPins)[0] = GPIOB_8; + CONFIGB(injectionPins)[1] = GPIOB_9; + CONFIGB(injectionPins)[2] = GPIOD_5; + CONFIGB(injectionPins)[3] = GPIOB_7; - boardConfiguration->ignitionPins[0] = GPIOE_12; // white wire - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOE_12; // white wire + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; - setFrankenso_01_LCD(boardConfiguration); - setFrankenso0_1_joystick(engineConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); + setFrankenso0_1_joystick(PASS_ENGINE_PARAMETER_SIGNATURE); - boardConfiguration->idle.solenoidFrequency = 500; + CONFIGB(idle).solenoidFrequency = 500; } /* diff --git a/firmware/config/engines/lada_kalina.cpp b/firmware/config/engines/lada_kalina.cpp index 30a7fd8a14..e8241dc136 100644 --- a/firmware/config/engines/lada_kalina.cpp +++ b/firmware/config/engines/lada_kalina.cpp @@ -16,35 +16,35 @@ EXTERN_ENGINE; void setLadaKalina(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setCustomEngineConfiguration(PASS_ENGINE_PARAMETER_SIGNATURE); - disableLCD(boardConfiguration); + disableLCD(PASS_ENGINE_PARAMETER_SIGNATURE); - boardConfiguration->HD44780_rs = GPIO_UNASSIGNED; - boardConfiguration->HD44780_e = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db4 = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db5 = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db6 = GPIO_UNASSIGNED; - boardConfiguration->HD44780_db7 = GPIO_UNASSIGNED; + CONFIGB(HD44780_rs) = GPIO_UNASSIGNED; + CONFIGB(HD44780_e) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db4) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db5) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db6) = GPIO_UNASSIGNED; + CONFIGB(HD44780_db7) = GPIO_UNASSIGNED; setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; engineConfiguration->globalTriggerAngleOffset = 114; - boardConfiguration->ignitionPins[0] = GPIOE_14; - boardConfiguration->ignitionPins[1] = GPIOC_7; - boardConfiguration->ignitionPins[2] = GPIOC_9; - boardConfiguration->ignitionPins[3] = GPIOE_12; + CONFIGB(ignitionPins)[0] = GPIOE_14; + CONFIGB(ignitionPins)[1] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOC_9; + CONFIGB(ignitionPins)[3] = GPIOE_12; - boardConfiguration->useStepperIdle = true; - boardConfiguration->fuelPumpPin = GPIOC_13; - boardConfiguration->mainRelayPin = GPIOD_7; + CONFIGB(useStepperIdle) = true; + CONFIGB(fuelPumpPin) = GPIOC_13; + CONFIGB(mainRelayPin) = GPIOD_7; - boardConfiguration->idle.stepperDirectionPin = GPIOE_15; - boardConfiguration->idle.stepperStepPin = GPIOE_13; + CONFIGB(idle).stepperDirectionPin = GPIOE_15; + CONFIGB(idle).stepperStepPin = GPIOE_13; engineConfiguration->stepperEnablePin = GPIOE_11; diff --git a/firmware/config/engines/mazda_626.cpp b/firmware/config/engines/mazda_626.cpp index b4a096b5d5..23c0b51ebe 100644 --- a/firmware/config/engines/mazda_626.cpp +++ b/firmware/config/engines/mazda_626.cpp @@ -27,7 +27,7 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4; // with this complex trigger we do not need this by default - boardConfiguration->sensorChartMode = SC_OFF; + CONFIGB(sensorChartMode) = SC_OFF; engineConfiguration->useOnlyRisingEdgeForTrigger = true; @@ -105,6 +105,6 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->externalKnockSenseAdc = EFI_ADC_4; - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; engineConfiguration->camInput = GPIOA_5; } diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index 2a8e9ade36..b8a60cf803 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -131,14 +131,14 @@ static void commonMiataNa(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA; engineConfiguration->engineChartSize = 100; - boardConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU - boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP + CONFIGB(triggerInputPins)[0] = GPIOC_6; // 2G YEL/BLU + CONFIGB(triggerInputPins)[1] = GPIOA_5; // 2E White CKP engineConfiguration->ignitionMode = IM_WASTED_SPARK; setFuelLoadBin(1.2, 4.4 PASS_ENGINE_PARAMETER_SUFFIX); setFuelRpmBin(800, 7000 PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->idle.solenoidFrequency = 160; + CONFIGB(idle).solenoidFrequency = 160; // Frankenstein: high side #1 is PE8 // Frankenstein: high side #2 is PE10 @@ -147,16 +147,16 @@ static void commonMiataNa(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein: high side #5 is PC9 // Frankenstein: high side #6 is PC7 - boardConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3 - boardConfiguration->ignitionPins[1] = GPIOE_14; // Frankenstein: high side #4 - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPins)[0] = GPIOE_12; // Frankenstein: high side #3 + CONFIGB(ignitionPins)[1] = GPIOE_14; // Frankenstein: high side #4 + CONFIGB(ignitionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPinMode) = OM_DEFAULT; setDefaultCrankingFuel(engineConfiguration); - boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN; - boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN; + CONFIGB(triggerSimulatorPinModes)[0] = OM_OPENDRAIN; + CONFIGB(triggerSimulatorPinModes)[1] = OM_OPENDRAIN; setCommonNTCSensor(&engineConfiguration->clt); engineConfiguration->clt.config.bias_resistor = 2700; @@ -165,14 +165,14 @@ static void commonMiataNa(DECLARE_ENGINE_PARAMETER_SIGNATURE) { } -void common079721_2351(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void common079721_2351(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->engineChartSize = 300; engineConfiguration->specs.cylindersCount = 4; engineConfiguration->specs.firingOrder = FO_1_3_4_2; - boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED; // fuel pump is not controlled by ECU on this engine + CONFIGB(fuelPumpPin) = GPIO_UNASSIGNED; // fuel pump is not controlled by ECU on this engine // set cranking_injection_mode 0 engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; @@ -202,7 +202,7 @@ void common079721_2351(engine_configuration_s *engineConfiguration, board_config * Frankenstein board */ void setMiata1990(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - common079721_2351(engineConfiguration, boardConfiguration); + common079721_2351(PASS_ENGINE_PARAMETER_SIGNATURE); commonMiataNa(PASS_ENGINE_PARAMETER_SIGNATURE); @@ -219,13 +219,13 @@ void setMiata1990(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein: low side - out #11: PB8 // Frankenstein: low side - out #12: PB9 - boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12 - boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11 - boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPins)[0] = GPIOB_9; // Frankenstein: low side - out #12 + CONFIGB(injectionPins)[1] = GPIOB_8; // Frankenstein: low side - out #11 + CONFIGB(injectionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPinMode) = OM_DEFAULT; // todo: idleValvePin } @@ -244,17 +244,17 @@ static void setMiata1994_common(DECLARE_ENGINE_PARAMETER_SIGNATURE) { copyTimingTable(miata_maf_advance_table, config->ignitionTable); -// boardConfiguration->triggerSimulatorPins[0] = GPIOD_2; // 2G - YEL/BLU -// boardConfiguration->triggerSimulatorPins[1] = GPIOB_3; // 2E - WHT - four times -// boardConfiguration->triggerSimulatorPinModes[0] = OM_OPENDRAIN; -// boardConfiguration->triggerSimulatorPinModes[1] = OM_OPENDRAIN; +// CONFIGB(triggerSimulatorPins)[0] = GPIOD_2; // 2G - YEL/BLU +// CONFIGB(triggerSimulatorPins)[1] = GPIOB_3; // 2E - WHT - four times +// CONFIGB(triggerSimulatorPinModes)[0] = OM_OPENDRAIN; +// CONFIGB(triggerSimulatorPinModes)[1] = OM_OPENDRAIN; // -// boardConfiguration->triggerInputPins[0] = GPIO_UNASSIGNED; -// boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; +// CONFIGB(triggerInputPins)[0] = GPIO_UNASSIGNED; +// CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; // -// boardConfiguration->is_enabled_spi_1 = false; -// boardConfiguration->is_enabled_spi_2 = false; -// boardConfiguration->is_enabled_spi_3 = false; +// CONFIGB(is_enabled_spi_1) = false; +// CONFIGB(is_enabled_spi_2) = false; +// CONFIGB(is_enabled_spi_3) = false; /** * Outputs @@ -271,27 +271,27 @@ static void setMiata1994_common(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenso low out #10: PE0 (do not use with discovery!) // Frankenso low out #11: PB8 // Frankenso low out #12: PB7 - boardConfiguration->fanPin = GPIOE_6; + CONFIGB(fanPin) = GPIOE_6; - boardConfiguration->o2heaterPin = GPIO_UNASSIGNED; + CONFIGB(o2heaterPin) = GPIO_UNASSIGNED; - boardConfiguration->fuelPumpPin = GPIOE_4; + CONFIGB(fuelPumpPin) = GPIOE_4; - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPinMode) = OM_DEFAULT; - boardConfiguration->idle.solenoidPin = GPIOB_9; + CONFIGB(idle).solenoidPin = GPIOB_9; - boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOC_7; // Frankenso high side - pin 1H - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPins)[0] = GPIOE_14; // Frankenso high side - pin 1G + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOC_7; // Frankenso high side - pin 1H + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPinMode) = OM_DEFAULT; - setFrankenso_01_LCD(boardConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); - commonFrankensoAnalogInputs(engineConfiguration); + commonFrankensoAnalogInputs(PASS_ENGINE_PARAMETER_SIGNATURE); engineConfiguration->tpsAdcChannel = EFI_ADC_2; // PA2 engineConfiguration->map.sensor.hwChannel = EFI_ADC_4; @@ -311,20 +311,20 @@ void setMiata1994_d(DECLARE_ENGINE_PARAMETER_SIGNATURE) { /** * This board was avoiding PE0 & PE1 mosfets altogether */ - boardConfiguration->injectionPins[0] = GPIOD_7; // avoiding PE1 - boardConfiguration->injectionPins[1] = GPIOE_2; - boardConfiguration->injectionPins[2] = GPIOB_8; - boardConfiguration->injectionPins[3] = GPIOB_7; + CONFIGB(injectionPins)[0] = GPIOD_7; // avoiding PE1 + CONFIGB(injectionPins)[1] = GPIOE_2; + CONFIGB(injectionPins)[2] = GPIOB_8; + CONFIGB(injectionPins)[3] = GPIOB_7; // todo: add the diode? change idle valve logic? - boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED; + CONFIGB(idle).solenoidPin = GPIO_UNASSIGNED; } void setMiata1994_s(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setMiata1994_common(PASS_ENGINE_PARAMETER_SIGNATURE); engineConfiguration->vbattDividerCoeff = ((float) (10.0 + 33)) / 10 * 2; - boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED; + CONFIGB(triggerSimulatorPins)[2] = GPIO_UNASSIGNED; engineConfiguration->acSwitchAdc = EFI_ADC_1; // PA1, W50 on Frankenso @@ -334,13 +334,13 @@ void setMiata1994_s(DECLARE_ENGINE_PARAMETER_SIGNATURE) { /** * This board has PE0<>PD5 & PE1<>PD3 rewired in order to avoid Discovery issue */ - boardConfiguration->injectionPins[0] = GPIOD_3; // avoiding PE1 - boardConfiguration->injectionPins[1] = GPIOE_2; // injector #2 - boardConfiguration->injectionPins[2] = GPIOB_8; // injector #3 - boardConfiguration->injectionPins[3] = GPIOB_7; // injector #4 + CONFIGB(injectionPins)[0] = GPIOD_3; // avoiding PE1 + CONFIGB(injectionPins)[1] = GPIOE_2; // injector #2 + CONFIGB(injectionPins)[2] = GPIOB_8; // injector #3 + CONFIGB(injectionPins)[3] = GPIOB_7; // injector #4 // setFsio(engineConfiguration, 0, GPIOD_11, "coolant 80 >"); - boardConfiguration->idle.solenoidFrequency = 500; + CONFIGB(idle).solenoidFrequency = 500; engineConfiguration->acCutoffLowRpm = 400; engineConfiguration->acCutoffHighRpm = 4500; @@ -353,8 +353,8 @@ void setMiata1994_s(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->tpsMax = 86; engineConfiguration->tpsMin = 596; - boardConfiguration->malfunctionIndicatorPin = GPIOE_5; - boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + CONFIGB(malfunctionIndicatorPin) = GPIOE_5; + CONFIGB(malfunctionIndicatorPinMode) = OM_DEFAULT; engineConfiguration->fuelAlgorithm = LM_REAL_MAF; setMazdaMiataNAMaf(config); @@ -372,31 +372,31 @@ void setMiata1996(DECLARE_ENGINE_PARAMETER_SIGNATURE) { copyTimingTable(miata_maf_advance_table, config->ignitionTable); // upside down - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIOC_6; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIOC_6; - boardConfiguration->fuelPumpPin = GPIOE_4; - boardConfiguration->idle.solenoidPin = GPIOE_5; + CONFIGB(fuelPumpPin) = GPIOE_4; + CONFIGB(idle).solenoidPin = GPIOE_5; engineConfiguration->mafAdcChannel = EFI_ADC_1; engineConfiguration->clt.adcChannel = EFI_ADC_11; engineConfiguration->tpsAdcChannel = EFI_ADC_13; - boardConfiguration->ignitionPins[0] = GPIOE_12; // Frankenstein: high side #3 - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOE_14; // Frankenstein: high side #4 - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPins)[0] = GPIOE_12; // Frankenstein: high side #3 + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOE_14; // Frankenstein: high side #4 + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPinMode) = OM_DEFAULT; // harness is sequential but we have a limited board engineConfiguration->crankingInjectionMode = IM_BATCH; engineConfiguration->injectionMode = IM_BATCH; - boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12 - boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11 - boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPins)[0] = GPIOB_9; // Frankenstein: low side - out #12 + CONFIGB(injectionPins)[1] = GPIOB_8; // Frankenstein: low side - out #11 + CONFIGB(injectionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPinMode) = OM_DEFAULT; } diff --git a/firmware/config/engines/mazda_miata.h b/firmware/config/engines/mazda_miata.h index fdbf5c7c78..b3a0283a93 100644 --- a/firmware/config/engines/mazda_miata.h +++ b/firmware/config/engines/mazda_miata.h @@ -14,7 +14,7 @@ #include "engine.h" -void common079721_2351(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); +void common079721_2351(DECLARE_ENGINE_PARAMETER_SIGNATURE); void setMiata1990(DECLARE_ENGINE_PARAMETER_SIGNATURE); void setMiata1994_d(DECLARE_ENGINE_PARAMETER_SIGNATURE); void setMiata1994_s(DECLARE_ENGINE_PARAMETER_SIGNATURE); diff --git a/firmware/config/engines/mazda_miata_1_6.cpp b/firmware/config/engines/mazda_miata_1_6.cpp index 89e987dfd3..e5f2e977cc 100644 --- a/firmware/config/engines/mazda_miata_1_6.cpp +++ b/firmware/config/engines/mazda_miata_1_6.cpp @@ -104,13 +104,13 @@ void miataNAcommon(DECLARE_ENGINE_PARAMETER_SIGNATURE) { copyTimingTable(mapBased16IgnitionTable, config->ignitionTable); - boardConfiguration->idle.solenoidFrequency = 160; - boardConfiguration->idle.solenoidPin = GPIOB_9; // this W61 <> W61 jumper, pin 3W + CONFIGB(idle).solenoidFrequency = 160; + CONFIGB(idle).solenoidPin = GPIOB_9; // this W61 <> W61 jumper, pin 3W - boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOC_7; // Frankenso high side - pin 1H - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOE_14; // Frankenso high side - pin 1G + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOC_7; // Frankenso high side - pin 1H + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; engineConfiguration->ignitionMode = IM_WASTED_SPARK; } @@ -154,7 +154,7 @@ void setMiataNA_1_6_Configuration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->vbattDividerCoeff = 9.75;// ((float) (8.2 + 33)) / 8.2 * 2; - boardConfiguration->isSdCardEnabled = true; + CONFIGB(isSdCardEnabled) = true; // my car was originally a manual so proper TPS engineConfiguration->tpsMin = 93; // convert 12to10 bit (ADC/4) @@ -180,14 +180,14 @@ void setMiataNA_1_6_Configuration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { */ /* //WARNING: these indeces are off - boardConfiguration->fsio_setting[0] = 6400; // RPM threshold - boardConfiguration->fsio_setting[1] = 100; // CLT threshold, fsio_setting #2 - boardConfiguration->fsio_setting[2] = 13.0; // voltage threshold, fsio_setting #3 + CONFIGB(fsio_setting)[0] = 6400; // RPM threshold + CONFIGB(fsio_setting)[1] = 100; // CLT threshold, fsio_setting #2 + CONFIGB(fsio_setting)[2] = 13.0; // voltage threshold, fsio_setting #3 // set_fsio_setting 4 3000 - boardConfiguration->fsio_setting[3] = 3000; // oil pressure RPM, fsio_setting #4 + CONFIGB(fsio_setting)[3] = 3000; // oil pressure RPM, fsio_setting #4 // set_fsio_setting 5 0.52 - boardConfiguration->fsio_setting[4] = 0.52; // oil pressure threshold, fsio_setting #5 + CONFIGB(fsio_setting)[4] = 0.52; // oil pressure threshold, fsio_setting #5 */ // * set_rpn_expression 1 "rpm 3 fsio_setting >" @@ -199,10 +199,10 @@ void setMiataNA_1_6_Configuration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // todo: convert setFsio(0, GPIOC_13, COMBINED_WARNING_LIGHT PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->injectionPins[0] = GPIOD_3; // #1&3 pin 3U - boardConfiguration->injectionPins[1] = GPIOE_2; // #2&4 pin 3V - boardConfiguration->injectionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[3] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[0] = GPIOD_3; // #1&3 pin 3U + CONFIGB(injectionPins)[1] = GPIOE_2; // #2&4 pin 3V + CONFIGB(injectionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[3] = GPIO_UNASSIGNED; engineConfiguration->injectionMode = IM_BATCH; diff --git a/firmware/config/engines/mazda_miata_na8.cpp b/firmware/config/engines/mazda_miata_na8.cpp index deb1002c17..2ef5959272 100644 --- a/firmware/config/engines/mazda_miata_na8.cpp +++ b/firmware/config/engines/mazda_miata_na8.cpp @@ -36,10 +36,10 @@ void setMazdaMiataNA8Configuration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->vbattDividerCoeff = 9.75;// ((float) (8.2 + 33)) / 8.2 * 2; - boardConfiguration->injectionPins[0] = GPIOD_3; // #1 pin 3U - boardConfiguration->injectionPins[1] = GPIOE_2; // #2 pin 3V - boardConfiguration->injectionPins[2] = GPIOB_8; // #3 pin 3Y - boardConfiguration->injectionPins[3] = GPIOB_7; // #4 pin 3Z + CONFIGB(injectionPins)[0] = GPIOD_3; // #1 pin 3U + CONFIGB(injectionPins)[1] = GPIOE_2; // #2 pin 3V + CONFIGB(injectionPins)[2] = GPIOB_8; // #3 pin 3Y + CONFIGB(injectionPins)[3] = GPIOB_7; // #4 pin 3Z engineConfiguration->injectionMode = IM_SEQUENTIAL; diff --git a/firmware/config/engines/mazda_miata_nb.cpp b/firmware/config/engines/mazda_miata_nb.cpp index 1045bf199f..2e0831e988 100644 --- a/firmware/config/engines/mazda_miata_nb.cpp +++ b/firmware/config/engines/mazda_miata_nb.cpp @@ -46,33 +46,33 @@ void setMazdaMiataNb1EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->iat.adcChannel = EFI_ADC_13; engineConfiguration->afr.hwChannel = EFI_ADC_2; // PA2 - boardConfiguration->idle.solenoidPin = GPIOE_0; - boardConfiguration->idle.solenoidPinMode = OM_DEFAULT; + CONFIGB(idle).solenoidPin = GPIOE_0; + CONFIGB(idle).solenoidPinMode = OM_DEFAULT; - boardConfiguration->fuelPumpPin = GPIOC_14; // Frankenstein: low side - out #4 - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; + CONFIGB(fuelPumpPin) = GPIOC_14; // Frankenstein: low side - out #4 + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; - boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12 - boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11 - boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8 - boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6 - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPins)[0] = GPIOB_9; // Frankenstein: low side - out #12 + CONFIGB(injectionPins)[1] = GPIOB_8; // Frankenstein: low side - out #11 + CONFIGB(injectionPins)[2] = GPIOE_3; // Frankenstein: low side - out #8 + CONFIGB(injectionPins)[3] = GPIOE_5; // Frankenstein: low side - out #6 + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPinMode) = OM_DEFAULT; - boardConfiguration->ignitionPins[0] = GPIOE_10; // Frankenstein: high side #1 - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOC_9; // // Frankenstein: high side #2 - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPinMode = OM_INVERTED; + CONFIGB(ignitionPins)[0] = GPIOE_10; // Frankenstein: high side #1 + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOC_9; // // Frankenstein: high side #2 + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPinMode) = OM_INVERTED; - boardConfiguration->malfunctionIndicatorPin = GPIOE_1; - boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + CONFIGB(malfunctionIndicatorPin) = GPIOE_1; + CONFIGB(malfunctionIndicatorPinMode) = OM_DEFAULT; - boardConfiguration->fanPin = GPIOE_6; - boardConfiguration->fanPinMode = OM_DEFAULT; + CONFIGB(fanPin) = GPIOE_6; + CONFIGB(fanPinMode) = OM_DEFAULT; - boardConfiguration->clutchDownPin = GPIO_UNASSIGNED; + CONFIGB(clutchDownPin) = GPIO_UNASSIGNED; // set_whole_fuel_map 3 setWholeFuelMap(3 PASS_ENGINE_PARAMETER_SUFFIX); @@ -85,7 +85,7 @@ void setMazdaMiataNb1EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * to test * set_fsio_setting 1 5000 */ - boardConfiguration->fsio_setting[0] = 5000; + CONFIGB(fsio_setting)[0] = 5000; // (self and (rpm > 4800)) OR (rpm > 5000) // set_rpn_expression 1 "self rpm 4800 > & rpm 5000 > OR" // setFsioExt(0, GPIOE_3, "self rpm 4800 > & rpm 5000 > OR", 150 PASS_ENGINE_PARAMETER_SUFFIX); diff --git a/firmware/config/engines/mazda_miata_vvt.cpp b/firmware/config/engines/mazda_miata_vvt.cpp index ffce7ae038..72c6260eda 100644 --- a/firmware/config/engines/mazda_miata_vvt.cpp +++ b/firmware/config/engines/mazda_miata_vvt.cpp @@ -240,20 +240,20 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setOperationMode(engineConfiguration, FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR); engineConfiguration->specs.displacement = 1.8; -// boardConfiguration->triggerInputPins[0] = GPIOA_8; // custom Frankenso wiring in order to use SPI1 for accelerometer - boardConfiguration->triggerInputPins[0] = GPIOA_5; // board still not modified - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; +// CONFIGB(triggerInputPins)[0] = GPIOA_8; // custom Frankenso wiring in order to use SPI1 for accelerometer + CONFIGB(triggerInputPins)[0] = GPIOA_5; // board still not modified + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; engineConfiguration->camInput = GPIOC_6; -// boardConfiguration->is_enabled_spi_1 = true; +// CONFIGB(is_enabled_spi_1) = true; engineConfiguration->twoWireBatchInjection = true; // this is needed for #492 testing - boardConfiguration->alternatorControlPin = GPIOE_10; - boardConfiguration->alternatorControlPinMode = OM_OPENDRAIN; + CONFIGB(alternatorControlPin) = GPIOE_10; + CONFIGB(alternatorControlPinMode) = OM_OPENDRAIN; -// boardConfiguration->vehicleSpeedSensorInputPin = GPIOA_8; +// CONFIGB(vehicleSpeedSensorInputPin) = GPIOA_8; // enable altdebug engineConfiguration->targetVBatt = 13.8; @@ -271,12 +271,12 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->auxPid[0].maxValue = 44; // set idle_position 35 - boardConfiguration->manIdlePosition = 35; + CONFIGB(manIdlePosition) = 35; // set vvt_mode 3 engineConfiguration->vvtMode = MIATA_NB2; - boardConfiguration->vvtCamSensorUseRise = true; + CONFIGB(vvtCamSensorUseRise) = true; engineConfiguration->vvtDisplayInverted = true; engineConfiguration->vvtOffset = 98; // 2003 red car value @@ -286,7 +286,7 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // /** // * set_fsio_setting 1 0.55 // */ - boardConfiguration->fsio_setting[0] = 0.0; + CONFIGB(fsio_setting)[0] = 0.0; // setFsioExt(0, GPIOE_3, "0 fsio_setting", 400 PASS_ENGINE_PARAMETER_SUFFIX); @@ -313,12 +313,12 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * Miata coil on #4 PE14 - white ECU wire "1&4" */ - boardConfiguration->ignitionPins[0] = GPIOE_14; - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOC_9; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOE_14; + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOC_9; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; - boardConfiguration->etbControlPin1 = GPIOC_7; + CONFIGB(etbControlPin1) = GPIOC_7; // default TPS is engineConfiguration->tpsAdcChannel = EFI_ADC_2; // it becomes pedal sensor on test mule @@ -372,8 +372,8 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // 0.1375 // 6.375 // 10.625 - boardConfiguration->nb2ratioFrom = 8.50 * 0.75; - boardConfiguration->nb2ratioTo = 14; + CONFIGB(nb2ratioFrom) = 8.50 * 0.75; + CONFIGB(nb2ratioTo) = 14; engineConfiguration->nbVvtIndex = 0; @@ -384,7 +384,7 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->ignitionMode = IM_WASTED_SPARK; - boardConfiguration->malfunctionIndicatorPin = GPIOE_6; // just for a test + CONFIGB(malfunctionIndicatorPin) = GPIOE_6; // just for a test /** * http://miataturbo.wikidot.com/fuel-injectors @@ -392,8 +392,8 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { */ engineConfiguration->injector.flow = 265; -// boardConfiguration->malfunctionIndicatorPin = GPIOD_9; -// boardConfiguration->malfunctionIndicatorPinMode = OM_INVERTED; +// CONFIGB(malfunctionIndicatorPin) = GPIOD_9; +// CONFIGB(malfunctionIndicatorPinMode) = OM_INVERTED; // todo: blue jumper wire - what is it?! // Frankenso analog #6 pin 3R, W56 (5th lower row pin from the end) top <> W45 bottom jumper, not OEM @@ -423,9 +423,9 @@ void setMazdaMiata2003EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * set_fsio_setting 3 65 * set_fsio_setting 4 15 */ - boardConfiguration->fsio_setting[1] = 6500; // #2 RPM threshold - boardConfiguration->fsio_setting[2] = 105; // #3 CLT threshold - boardConfiguration->fsio_setting[3] = 12.0; // #4 voltage threshold + CONFIGB(fsio_setting)[1] = 6500; // #2 RPM threshold + CONFIGB(fsio_setting)[2] = 105; // #3 CLT threshold + CONFIGB(fsio_setting)[3] = 12.0; // #4 voltage threshold setFsio(1, GPIOE_6, COMBINED_WARNING_LIGHT PASS_ENGINE_PARAMETER_SUFFIX); @@ -467,7 +467,7 @@ void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_ENGINE_PARAMETER_SIG memcpy(config->afrLoadBins, targetAfrLoadBins, sizeof(targetAfrLoadBins)); copyTargetAfrTable(target_AFR_NA, config->afrTable); - boardConfiguration->ignitionPins[2] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOC_7; // Frankenso analog #7 pin 3J, W48 top <>W48 bottom jumper, not OEM engineConfiguration->afr.hwChannel = EFI_ADC_3; // PA3 @@ -490,7 +490,7 @@ void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_ENGINE_PARAMETER_SIG engineConfiguration->rpmHardLimit = 7200; // we want to survive the race, but we also want some fun! // set idle_position 30 - boardConfiguration->manIdlePosition = 30; + CONFIGB(manIdlePosition) = 30; engineConfiguration->crankingIACposition = 65; } @@ -502,7 +502,7 @@ void setMazdaMiata2003EngineConfigurationNaFuelRail(DECLARE_ENGINE_PARAMETER_SIG void setMazdaMiata2003EngineConfigurationBoardTest(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setMazdaMiata2003EngineConfiguration(PASS_ENGINE_PARAMETER_SIGNATURE); - boardConfiguration->ignitionPins[2] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOC_7; // Frankenso analog #7 pin 3J, W48 top <>W48 bottom jumper, not OEM. Make sure 500K pull-down on Frankenso engineConfiguration->afr.hwChannel = EFI_ADC_3; // PA3 diff --git a/firmware/config/engines/mitsubishi.cpp b/firmware/config/engines/mitsubishi.cpp index 3aec7d0274..956bcbed5e 100644 --- a/firmware/config/engines/mitsubishi.cpp +++ b/firmware/config/engines/mitsubishi.cpp @@ -68,19 +68,19 @@ void setMitsubishiConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein: low side - out #11: PB8 // Frankenstein: low side - out #12: PB9 - boardConfiguration->injectionPins[0] = GPIOB_9; // Frankenstein: low side - out #12 - boardConfiguration->injectionPins[1] = GPIOB_8; // Frankenstein: low side - out #11 - boardConfiguration->injectionPins[2] = GPIOE_3; // Frankenstein: low side - out #8 - boardConfiguration->injectionPins[3] = GPIOE_5; // Frankenstein: low side - out #6 + CONFIGB(injectionPins)[0] = GPIOB_9; // Frankenstein: low side - out #12 + CONFIGB(injectionPins)[1] = GPIOB_8; // Frankenstein: low side - out #11 + CONFIGB(injectionPins)[2] = GPIOE_3; // Frankenstein: low side - out #8 + CONFIGB(injectionPins)[3] = GPIOE_5; // Frankenstein: low side - out #6 // Frankenstein: high side #1: PE8 // Frankenstein: high side #2: PE10 - boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: high side #1 - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIOE_10; // // Frankenstein: high side #2 - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[0] = GPIOE_8; // Frankenstein: high side #1 + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIOE_10; // // Frankenstein: high side #2 + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; engineConfiguration->HD44780width = 20; engineConfiguration->HD44780height = 4; diff --git a/firmware/config/engines/rover_v8.cpp b/firmware/config/engines/rover_v8.cpp index 9004b9f912..edb8ba96ec 100644 --- a/firmware/config/engines/rover_v8.cpp +++ b/firmware/config/engines/rover_v8.cpp @@ -18,25 +18,25 @@ #include "engine_math.h" #include "allsensors.h" -void setFrankenstein_01_LCD(board_configuration_s *boardConfiguration) { - boardConfiguration->HD44780_rs = GPIOE_9; - boardConfiguration->HD44780_e = GPIOE_11; - boardConfiguration->HD44780_db4 = GPIOE_13; - boardConfiguration->HD44780_db5 = GPIOE_15; - boardConfiguration->HD44780_db6 = GPIOB_11; - boardConfiguration->HD44780_db7 = GPIOB_13; -} - EXTERN_ENGINE; +void setFrankenstein_01_LCD(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + CONFIGB(HD44780_rs) = GPIOE_9; + CONFIGB(HD44780_e) = GPIOE_11; + CONFIGB(HD44780_db4) = GPIOE_13; + CONFIGB(HD44780_db5) = GPIOE_15; + CONFIGB(HD44780_db6) = GPIOB_11; + CONFIGB(HD44780_db7) = GPIOB_13; +} + void setRoverv8(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); // set trigger_type 9 engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_36_1; - boardConfiguration->is_enabled_spi_2 = false; - boardConfiguration->isHip9011Enabled = false; - setFrankenstein_01_LCD(boardConfiguration); + CONFIGB(is_enabled_spi_2) = false; + CONFIGB(isHip9011Enabled) = false; + setFrankenstein_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); engineConfiguration->specs.displacement = 3.528; engineConfiguration->specs.cylindersCount = 8; @@ -57,13 +57,13 @@ void setRoverv8(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // set ignition_mode 2 engineConfiguration->ignitionMode = IM_WASTED_SPARK; - boardConfiguration->ignitionPinMode = OM_INVERTED; + CONFIGB(ignitionPinMode) = OM_INVERTED; // set_ignition_channels - boardConfiguration->ignitionPins[0] = GPIOE_8; // Frankenstein: low side - out #x (?) - boardConfiguration->ignitionPins[7] = GPIOE_10; // Frankenstein: low side - out #x (?) - boardConfiguration->ignitionPins[3] = GPIOE_12; // Frankenstein: low side - out #x (?) - boardConfiguration->ignitionPins[2] = GPIOE_14; // Frankenstein: low side - out #x (?) + CONFIGB(ignitionPins)[0] = GPIOE_8; // Frankenstein: low side - out #x (?) + CONFIGB(ignitionPins)[7] = GPIOE_10; // Frankenstein: low side - out #x (?) + CONFIGB(ignitionPins)[3] = GPIOE_12; // Frankenstein: low side - out #x (?) + CONFIGB(ignitionPins)[2] = GPIOE_14; // Frankenstein: low side - out #x (?) // Frankenstein: low side - out #1: PC14 // Frankenstein: low side - out #2: PC15 @@ -78,27 +78,27 @@ void setRoverv8(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein: low side - out #11: PB8 // Frankenstein: low side - out #12: PB9 - boardConfiguration->injectionPins[0] = GPIOC_14; // Frankenstein: low side - out #1 - boardConfiguration->injectionPins[1] = GPIOC_15; // Frankenstein: low side - out #2 - boardConfiguration->injectionPins[2] = GPIOE_6; // Frankenstein: low side - out #3 - boardConfiguration->injectionPins[3] = GPIOC_13; // Frankenstein: low side - out #4 - boardConfiguration->injectionPins[4] = GPIOE_4; // Frankenstein: low side - out #5 - boardConfiguration->injectionPins[5] = GPIOE_5; // Frankenstein: low side - out #6 - boardConfiguration->injectionPins[6] = GPIOE_2; // Frankenstein: low side - out #7 - boardConfiguration->injectionPins[7] = GPIOE_3; // Frankenstein: low side - out #8 + CONFIGB(injectionPins)[0] = GPIOC_14; // Frankenstein: low side - out #1 + CONFIGB(injectionPins)[1] = GPIOC_15; // Frankenstein: low side - out #2 + CONFIGB(injectionPins)[2] = GPIOE_6; // Frankenstein: low side - out #3 + CONFIGB(injectionPins)[3] = GPIOC_13; // Frankenstein: low side - out #4 + CONFIGB(injectionPins)[4] = GPIOE_4; // Frankenstein: low side - out #5 + CONFIGB(injectionPins)[5] = GPIOE_5; // Frankenstein: low side - out #6 + CONFIGB(injectionPins)[6] = GPIOE_2; // Frankenstein: low side - out #7 + CONFIGB(injectionPins)[7] = GPIOE_3; // Frankenstein: low side - out #8 -// not valid ICU pin boardConfiguration->vehicleSpeedSensorInputPin = GPIOC_2; +// not valid ICU pin CONFIGB(vehicleSpeedSensorInputPin) = GPIOC_2; //GPIOE_0 AND GPIOE_1 are bad pins since they conflict with accelerometer //no malfunction indicator pin needed, since we use CAN_BUS_MAZDA_RX8 - //boardConfiguration->fuelPumpPin = GPIOE_0; // Frankenstein: low side - out #9 - //boardConfiguration->malfunctionIndicatorPin = GPIOE_1; // Frankenstein: low side - out #10 - boardConfiguration->fuelPumpPin = GPIOB_8; // Frankenstein: low side - out #11 - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; - boardConfiguration->mainRelayPin = GPIOB_9; // Frankenstein: low side - out #12 + //CONFIGB(fuelPumpPin) = GPIOE_0; // Frankenstein: low side - out #9 + //CONFIGB(malfunctionIndicatorPin) = GPIOE_1; // Frankenstein: low side - out #10 + CONFIGB(fuelPumpPin) = GPIOB_8; // Frankenstein: low side - out #11 + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; + CONFIGB(mainRelayPin) = GPIOB_9; // Frankenstein: low side - out #12 - boardConfiguration->triggerInputPins[0] = GPIOC_6; // 2G YEL/BLU - boardConfiguration->triggerInputPins[1] = GPIOA_5; // 2E White CKP + CONFIGB(triggerInputPins)[0] = GPIOC_6; // 2G YEL/BLU + CONFIGB(triggerInputPins)[1] = GPIOA_5; // 2E White CKP setCommonNTCSensor(&engineConfiguration->clt); engineConfiguration->clt.config.bias_resistor = 2700; @@ -123,19 +123,19 @@ void setRoverv8(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538); // Stepper logic: - boardConfiguration->idle.stepperDirectionPin = GPIOB_10; - boardConfiguration->idle.stepperStepPin = GPIOB_15; + CONFIGB(idle).stepperDirectionPin = GPIOB_10; + CONFIGB(idle).stepperStepPin = GPIOB_15; engineConfiguration->stepperEnablePin = GPIOB_14; engineConfiguration->idleStepperReactionTime = 10; engineConfiguration->idleStepperTotalSteps = 150; - boardConfiguration->useStepperIdle = false; + CONFIGB(useStepperIdle) = false; // set injection_pin_mode 0 - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPinMode) = OM_DEFAULT; - boardConfiguration->canTxPin = GPIOB_6; - boardConfiguration->canRxPin = GPIOB_12; + CONFIGB(canTxPin) = GPIOB_6; + CONFIGB(canRxPin) = GPIOB_12; engineConfiguration->canWriteEnabled = true; engineConfiguration->canReadEnabled = false; engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8; @@ -144,10 +144,10 @@ void setRoverv8(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); // todo: make this official Frankenstein joystick? - boardConfiguration->joystickCenterPin = GPIOD_8; - boardConfiguration->joystickAPin = GPIOD_10; - boardConfiguration->joystickBPin = GPIO_UNASSIGNED; - boardConfiguration->joystickCPin = GPIO_UNASSIGNED; - boardConfiguration->joystickDPin = GPIOD_11; + CONFIGB(joystickCenterPin) = GPIOD_8; + CONFIGB(joystickAPin) = GPIOD_10; + CONFIGB(joystickBPin) = GPIO_UNASSIGNED; + CONFIGB(joystickCPin) = GPIO_UNASSIGNED; + CONFIGB(joystickDPin) = GPIOD_11; } diff --git a/firmware/config/engines/rover_v8.h b/firmware/config/engines/rover_v8.h index 72222b1d21..20dd24891c 100644 --- a/firmware/config/engines/rover_v8.h +++ b/firmware/config/engines/rover_v8.h @@ -9,7 +9,7 @@ #include "engine.h" -void setFrankenstein_01_LCD(board_configuration_s *boardConfiguration); +void setFrankenstein_01_LCD(DECLARE_ENGINE_PARAMETER_SIGNATURE); void setRoverv8(DECLARE_ENGINE_PARAMETER_SIGNATURE); #endif /* ROVER_V8_H_ */ diff --git a/firmware/config/engines/sachs.cpp b/firmware/config/engines/sachs.cpp index 29c990e3b3..d9a76a0478 100644 --- a/firmware/config/engines/sachs.cpp +++ b/firmware/config/engines/sachs.cpp @@ -34,7 +34,7 @@ void setSachs(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->trigger.customTotalToothCount = 50; engineConfiguration->trigger.customSkippedToothCount = 2; - boardConfiguration->useSerialPort = false; + CONFIGB(useSerialPort) = false; // Frankenstein analog input #1: PA1 adc1 MAP // Frankenstein analog input #2: PA3 adc3 TPS @@ -73,12 +73,12 @@ void setSachs(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // Frankenstein: low side - out #11: PB8 // Frankenstein: low side - out #12: PB9 - boardConfiguration->triggerInputPins[0] = GPIOA_5; - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[0] = GPIOA_5; + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[0] = GPIOC_15; + CONFIGB(injectionPins)[0] = GPIOC_15; - boardConfiguration->fuelPumpPin = GPIOE_6; + CONFIGB(fuelPumpPin) = GPIOE_6; // todo: extract a method? figure out something smarter setFuelRpmBin(800, 15000 PASS_ENGINE_PARAMETER_SUFFIX); @@ -87,7 +87,7 @@ void setSachs(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setLinearCurve(config->afrRpmBins, FUEL_RPM_COUNT, 15000, 7000, 1); engineConfiguration->hasFrequencyReportingMapSensor = true; - boardConfiguration->frequencyReportingMapInputPin = GPIOC_6; - boardConfiguration->mapFrequency100Kpa = 159; - boardConfiguration->mapFrequency0Kpa = 80; + CONFIGB(frequencyReportingMapInputPin) = GPIOC_6; + CONFIGB(mapFrequency100Kpa) = 159; + CONFIGB(mapFrequency0Kpa) = 80; } diff --git a/firmware/config/engines/subaru.cpp b/firmware/config/engines/subaru.cpp index 76c3ea6a62..41c17182ef 100644 --- a/firmware/config/engines/subaru.cpp +++ b/firmware/config/engines/subaru.cpp @@ -14,8 +14,8 @@ EXTERN_ENGINE; void setSubaru2003Wrx(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - setFrankenso_01_LCD(boardConfiguration); - setFrankenso0_1_joystick(engineConfiguration); + setFrankenso_01_LCD(PASS_ENGINE_PARAMETER_SIGNATURE); + setFrankenso0_1_joystick(PASS_ENGINE_PARAMETER_SIGNATURE); engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.customTotalToothCount = 5; @@ -23,15 +23,15 @@ void setSubaru2003Wrx(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->sensorChartFrequency = 2; - boardConfiguration->useStepperIdle = true; + CONFIGB(useStepperIdle) = true; // See http://rusefi.com/forum/viewtopic.php?f=4&t=1161 - boardConfiguration->idle.stepperDirectionPin = GPIOD_1; // top stepper drive pin, white wire recommended - boardConfiguration->idle.stepperStepPin = GPIOD_6; // yellow wire recommended + CONFIGB(idle).stepperDirectionPin = GPIOD_1; // top stepper drive pin, white wire recommended + CONFIGB(idle).stepperStepPin = GPIOD_6; // yellow wire recommended engineConfiguration->stepperEnablePin = GPIOB_1; // bottom stepper driver board pin, blue wire recommended - boardConfiguration->triggerSimulatorPins[0] = GPIO_UNASSIGNED; // we want to avoid PD1 conflict - boardConfiguration->triggerSimulatorPins[1] = GPIO_UNASSIGNED; - boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED; + CONFIGB(triggerSimulatorPins)[0] = GPIO_UNASSIGNED; // we want to avoid PD1 conflict + CONFIGB(triggerSimulatorPins)[1] = GPIO_UNASSIGNED; + CONFIGB(triggerSimulatorPins)[2] = GPIO_UNASSIGNED; } diff --git a/firmware/config/engines/suzuki_vitara.cpp b/firmware/config/engines/suzuki_vitara.cpp index d3523a553d..9960131f90 100644 --- a/firmware/config/engines/suzuki_vitara.cpp +++ b/firmware/config/engines/suzuki_vitara.cpp @@ -19,7 +19,7 @@ void setSuzukiVitara(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->ignitionMode = IM_ONE_COIL; engineConfiguration->injectionMode = IM_SIMULTANEOUS; - boardConfiguration->mainRelayPin = GPIOE_6; + CONFIGB(mainRelayPin) = GPIOE_6; } diff --git a/firmware/config/engines/test_engine.cpp b/firmware/config/engines/test_engine.cpp index c4b1dbec5f..d7760cb6f1 100644 --- a/firmware/config/engines/test_engine.cpp +++ b/firmware/config/engines/test_engine.cpp @@ -40,17 +40,17 @@ void setTestEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { board_configuration_s *bc = &engineConfiguration->bc; bc->malfunctionIndicatorPin = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[0] = GPIOC_7; // #1 - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; // #2 - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; // #3 - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; // #4 - boardConfiguration->ignitionPins[4] = GPIO_UNASSIGNED; // #5 - boardConfiguration->ignitionPins[5] = GPIO_UNASSIGNED; // #6 + CONFIGB(ignitionPins)[0] = GPIOC_7; // #1 + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; // #2 + CONFIGB(ignitionPins)[2] = GPIO_UNASSIGNED; // #3 + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; // #4 + CONFIGB(ignitionPins)[4] = GPIO_UNASSIGNED; // #5 + CONFIGB(ignitionPins)[5] = GPIO_UNASSIGNED; // #6 - boardConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED; - boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED; - boardConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED; - boardConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED; + CONFIGB(logicAnalyzerPins)[0] = GPIO_UNASSIGNED; + CONFIGB(logicAnalyzerPins)[1] = GPIO_UNASSIGNED; + CONFIGB(logicAnalyzerPins)[2] = GPIO_UNASSIGNED; + CONFIGB(logicAnalyzerPins)[3] = GPIO_UNASSIGNED; } void setTestVVTEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { @@ -63,7 +63,7 @@ void setTestVVTEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // set algorithm 3 setAlgorithm(LM_SPEED_DENSITY PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; engineConfiguration->camInput = GPIOA_5; // set global_trigger_offset_angle 0 diff --git a/firmware/config/engines/toyota_jzs147.cpp b/firmware/config/engines/toyota_jzs147.cpp index 94173f2c12..8ba9b660c5 100644 --- a/firmware/config/engines/toyota_jzs147.cpp +++ b/firmware/config/engines/toyota_jzs147.cpp @@ -32,22 +32,22 @@ static void common2jz(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // set ignition_mode 1 engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; - boardConfiguration->ignitionPins[0] = GPIOE_14; - boardConfiguration->ignitionPins[1] = GPIOC_7; - boardConfiguration->ignitionPins[2] = GPIOC_9; - boardConfiguration->ignitionPins[3] = GPIOE_10; - boardConfiguration->ignitionPins[4] = GPIOE_8; - boardConfiguration->ignitionPins[5] = GPIOE_12; + CONFIGB(ignitionPins)[0] = GPIOE_14; + CONFIGB(ignitionPins)[1] = GPIOC_7; + CONFIGB(ignitionPins)[2] = GPIOC_9; + CONFIGB(ignitionPins)[3] = GPIOE_10; + CONFIGB(ignitionPins)[4] = GPIOE_8; + CONFIGB(ignitionPins)[5] = GPIOE_12; - boardConfiguration->injectionPins[0] = GPIOB_9; // #1 - boardConfiguration->injectionPins[1] = GPIOE_2; // #2 - boardConfiguration->injectionPins[2] = GPIOB_8; // #3 - boardConfiguration->injectionPins[3] = GPIOB_7; // #4 - boardConfiguration->injectionPins[4] = GPIOE_3; // #5 - boardConfiguration->injectionPins[5] = GPIOE_4; // #6 + CONFIGB(injectionPins)[0] = GPIOB_9; // #1 + CONFIGB(injectionPins)[1] = GPIOE_2; // #2 + CONFIGB(injectionPins)[2] = GPIOB_8; // #3 + CONFIGB(injectionPins)[3] = GPIOB_7; // #4 + CONFIGB(injectionPins)[4] = GPIOE_3; // #5 + CONFIGB(injectionPins)[5] = GPIOE_4; // #6 - boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED; + CONFIGB(fuelPumpPin) = GPIO_UNASSIGNED; // chartsize 450 engineConfiguration->engineChartSize = 450; @@ -87,10 +87,10 @@ void setToyota_jzs147EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // engineConfiguration->injectionMode = IM_BATCH; // engineConfiguration->twoWireBatchInjection = true; -// boardConfiguration->triggerInputPins[0] = GPIOA_5; -// boardConfiguration->triggerInputPins[1] = GPIOC_6; +// CONFIGB(triggerInputPins)[0] = GPIOA_5; +// CONFIGB(triggerInputPins)[1] = GPIOC_6; - boardConfiguration->isSdCardEnabled = false; + CONFIGB(isSdCardEnabled) = false; } @@ -98,13 +98,13 @@ void setToyota_jzs147EngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { void setToyota_2jz_vics(DECLARE_ENGINE_PARAMETER_SIGNATURE) { common2jz(PASS_ENGINE_PARAMETER_SIGNATURE); - boardConfiguration->isSdCardEnabled = true; + CONFIGB(isSdCardEnabled) = true; setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); engineConfiguration->trigger.type = TT_2JZ_3_34; - boardConfiguration->triggerInputPins[0] = GPIOA_5; // crank sensor - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; // cam sensor will he handled by custom vtti code + CONFIGB(triggerInputPins)[0] = GPIOA_5; // crank sensor + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; // cam sensor will he handled by custom vtti code engineConfiguration->camInput = GPIOC_6; engineConfiguration->vvtMode = VVT_2GZ; diff --git a/firmware/config/engines/vw.cpp b/firmware/config/engines/vw.cpp index b3893fd8f1..6104203824 100644 --- a/firmware/config/engines/vw.cpp +++ b/firmware/config/engines/vw.cpp @@ -49,11 +49,11 @@ void setVwAba(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->ignitionMode = IM_ONE_COIL; - boardConfiguration->ignitionPins[0] = GPIOE_14; // Frankenso high side - pin 1G - boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPins)[0] = GPIOE_14; // Frankenso high side - pin 1G + CONFIGB(ignitionPins)[1] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[2] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[3] = GPIO_UNASSIGNED; + CONFIGB(ignitionPinMode) = OM_DEFAULT; float mapRange = 110; @@ -61,7 +61,7 @@ void setVwAba(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setFuelTablesLoadBin(20, mapRange PASS_ENGINE_PARAMETER_SUFFIX); setTimingLoadBin(20, mapRange PASS_ENGINE_PARAMETER_SUFFIX); - boardConfiguration->isSdCardEnabled = false; + CONFIGB(isSdCardEnabled) = false; engineConfiguration->tpsMin = 740; engineConfiguration->tpsMax = 135; } diff --git a/firmware/config/engines/zil130.cpp b/firmware/config/engines/zil130.cpp index 6639056f02..1345270c6c 100644 --- a/firmware/config/engines/zil130.cpp +++ b/firmware/config/engines/zil130.cpp @@ -31,39 +31,39 @@ void setZil130(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED; + CONFIGB(malfunctionIndicatorPin) = GPIO_UNASSIGNED; // engineConfiguration->twoWireBatchInjection = true; - boardConfiguration->injectionPinMode = OM_INVERTED; - boardConfiguration->injectionPins[0] = GPIOB_8; // #1 - boardConfiguration->injectionPins[1] = GPIOE_2; // #2 - boardConfiguration->injectionPins[2] = GPIOE_3; // #3 - boardConfiguration->injectionPins[3] = GPIOE_4; // #4 - boardConfiguration->injectionPins[4] = GPIO_UNASSIGNED; // #5 - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; // #6 - boardConfiguration->injectionPins[6] = GPIO_UNASSIGNED; - boardConfiguration->injectionPins[5] = GPIO_UNASSIGNED; + CONFIGB(injectionPinMode) = OM_INVERTED; + CONFIGB(injectionPins)[0] = GPIOB_8; // #1 + CONFIGB(injectionPins)[1] = GPIOE_2; // #2 + CONFIGB(injectionPins)[2] = GPIOE_3; // #3 + CONFIGB(injectionPins)[3] = GPIOE_4; // #4 + CONFIGB(injectionPins)[4] = GPIO_UNASSIGNED; // #5 + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; // #6 + CONFIGB(injectionPins)[6] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[5] = GPIO_UNASSIGNED; - boardConfiguration->ignitionPins[0] = GPIOB_5; // #1 - boardConfiguration->ignitionPins[1] = GPIOB_6; // #2 - boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; // #3 - boardConfiguration->ignitionPins[3] = GPIOB_7; // #4 - boardConfiguration->ignitionPins[4] = GPIOC_7; // #5 + CONFIGB(ignitionPins)[0] = GPIOB_5; // #1 + CONFIGB(ignitionPins)[1] = GPIOB_6; // #2 + CONFIGB(ignitionPins)[2] = GPIO_UNASSIGNED; // #3 + CONFIGB(ignitionPins)[3] = GPIOB_7; // #4 + CONFIGB(ignitionPins)[4] = GPIOC_7; // #5 // fuel pump - boardConfiguration->fuelPumpPin = GPIOD_4; + CONFIGB(fuelPumpPin) = GPIOD_4; // idle - boardConfiguration->idle.solenoidPin = GPIOC_14; - boardConfiguration->idle.solenoidPinMode = OM_INVERTED; - boardConfiguration->idle.solenoidFrequency = 300; - boardConfiguration->manIdlePosition = 50; // set_idle_pwm 50 + CONFIGB(idle).solenoidPin = GPIOC_14; + CONFIGB(idle).solenoidPinMode = OM_INVERTED; + CONFIGB(idle).solenoidFrequency = 300; + CONFIGB(manIdlePosition) = 50; // set_idle_pwm 50 // disable sd_card - boardConfiguration->sdCardCsPin = GPIO_UNASSIGNED; - boardConfiguration->is_enabled_spi_2 = false; - boardConfiguration->is_enabled_spi_3 = false; - boardConfiguration->max31855spiDevice = SPI_NONE; + CONFIGB(sdCardCsPin) = GPIO_UNASSIGNED; + CONFIGB(is_enabled_spi_2) = false; + CONFIGB(is_enabled_spi_3) = false; + CONFIGB(max31855spiDevice) = SPI_NONE; - boardConfiguration->fanPin = GPIO_UNASSIGNED; + CONFIGB(fanPin) = GPIO_UNASSIGNED; } diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 8db61f0e17..9cb1b6734f 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -272,14 +272,13 @@ static void initTemperatureCurve(float *bins, float *values, int size, float def } } -static void setDefaultFsioParameters(engine_configuration_s *engineConfiguration) { - board_configuration_s *boardConfiguration = &engineConfiguration->bc; +static void setDefaultFsioParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) { for (int i = 0; i < AUX_PID_COUNT; i++) { engineConfiguration->auxPidPins[i] = GPIO_UNASSIGNED; } for (int i = 0; i < FSIO_COMMAND_COUNT; i++) { - boardConfiguration->fsioOutputPins[i] = GPIO_UNASSIGNED; - boardConfiguration->fsioDigitalInputs[i] = GPIO_UNASSIGNED; + CONFIGB(fsioOutputPins)[i] = GPIO_UNASSIGNED; + CONFIGB(fsioDigitalInputs)[i] = GPIO_UNASSIGNED; engineConfiguration->fsioInputModes[i] = PI_DEFAULT; } for (int i = 0; i < FSIO_ANALOG_INPUT_COUNT ; i++) { @@ -292,14 +291,17 @@ void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) { memset(engineConfiguration, 0, sizeof(engine_configuration_s)); board_configuration_s *boardConfiguration = &engineConfiguration->bc; - setDefaultFsioParameters(engineConfiguration); + // TODO: need to fix this place!!! + persistent_config_s *config = NULL; + Engine *engine = NULL; + setDefaultFsioParameters(PASS_ENGINE_PARAMETER_SIGNATURE); - disableLCD(boardConfiguration); + disableLCD(PASS_ENGINE_PARAMETER_SIGNATURE); engineConfiguration->camInput = GPIO_UNASSIGNED; - boardConfiguration->triggerInputPins[0] = GPIO_UNASSIGNED; - boardConfiguration->triggerInputPins[1] = GPIO_UNASSIGNED; - boardConfiguration->triggerInputPins[2] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[0] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[1] = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[2] = GPIO_UNASSIGNED; for (int i = 0; i < SERVO_COUNT; i++) { engineConfiguration->servoOutputPins[i] = GPIO_UNASSIGNED; @@ -312,33 +314,33 @@ void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) { engineConfiguration->flexFuelSensor = GPIO_UNASSIGNED; engineConfiguration->test557pin = GPIO_UNASSIGNED; - boardConfiguration->cdmInputPin = GPIO_UNASSIGNED; + CONFIGB(cdmInputPin) = GPIO_UNASSIGNED; - boardConfiguration->joystickCenterPin = GPIO_UNASSIGNED; - boardConfiguration->joystickAPin = GPIO_UNASSIGNED; - boardConfiguration->joystickBPin = GPIO_UNASSIGNED; - boardConfiguration->joystickCPin = GPIO_UNASSIGNED; - boardConfiguration->joystickDPin = GPIO_UNASSIGNED; + CONFIGB(joystickCenterPin) = GPIO_UNASSIGNED; + CONFIGB(joystickAPin) = GPIO_UNASSIGNED; + CONFIGB(joystickBPin) = GPIO_UNASSIGNED; + CONFIGB(joystickCPin) = GPIO_UNASSIGNED; + CONFIGB(joystickDPin) = GPIO_UNASSIGNED; - boardConfiguration->frequencyReportingMapInputPin = GPIO_UNASSIGNED; + CONFIGB(frequencyReportingMapInputPin) = GPIO_UNASSIGNED; engineConfiguration->sdCardSpiDevice = SPI_NONE; - boardConfiguration->sdCardCsPin = GPIO_UNASSIGNED; + CONFIGB(sdCardCsPin) = GPIO_UNASSIGNED; engineConfiguration->accelerometerSpiDevice = SPI_DEVICE_1; engineConfiguration->cj125ua = EFI_ADC_NONE; engineConfiguration->cj125ur = EFI_ADC_NONE; - boardConfiguration->idle.stepperDirectionPin = GPIO_UNASSIGNED; + CONFIGB(idle).stepperDirectionPin = GPIO_UNASSIGNED; engineConfiguration->stepperDirectionPinMode = OM_DEFAULT; - boardConfiguration->idle.stepperStepPin = GPIO_UNASSIGNED; + CONFIGB(idle).stepperStepPin = GPIO_UNASSIGNED; engineConfiguration->stepperEnablePin = GPIO_UNASSIGNED; engineConfiguration->stepperEnablePinMode = OM_DEFAULT; engineConfiguration->dizzySparkOutputPin = GPIO_UNASSIGNED; - boardConfiguration->acRelayPin = GPIO_UNASSIGNED; - boardConfiguration->acRelayPinMode = OM_DEFAULT; + CONFIGB(acRelayPin) = GPIO_UNASSIGNED; + CONFIGB(acRelayPinMode) = OM_DEFAULT; #if EFI_PROD_CODE || defined(__DOXYGEN__) setDefaultAlternatorParameters(); @@ -350,50 +352,50 @@ void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) { #if EFI_IDLE_CONTROL || defined(__DOXYGEN__) setDefaultIdleParameters(); #endif - boardConfiguration->wboHeaterPin = GPIO_UNASSIGNED; - boardConfiguration->cj125CsPin = GPIO_UNASSIGNED; + CONFIGB(wboHeaterPin) = GPIO_UNASSIGNED; + CONFIGB(cj125CsPin) = GPIO_UNASSIGNED; - boardConfiguration->hip9011CsPin = GPIO_UNASSIGNED; + CONFIGB(hip9011CsPin) = GPIO_UNASSIGNED; - boardConfiguration->mainRelayPin = GPIO_UNASSIGNED; - boardConfiguration->mainRelayPinMode = OM_DEFAULT; - boardConfiguration->idle.solenoidPin = GPIO_UNASSIGNED; - boardConfiguration->idle.solenoidPinMode = OM_DEFAULT; - boardConfiguration->fuelPumpPin = GPIO_UNASSIGNED; - boardConfiguration->fuelPumpPinMode = OM_DEFAULT; - boardConfiguration->etbControlPin1 = GPIO_UNASSIGNED; - boardConfiguration->etbControlPin2 = GPIO_UNASSIGNED; - boardConfiguration->etbDirectionPin1 = GPIO_UNASSIGNED; - boardConfiguration->etbDirectionPin2 = GPIO_UNASSIGNED; - boardConfiguration->o2heaterPin = GPIO_UNASSIGNED; + CONFIGB(mainRelayPin) = GPIO_UNASSIGNED; + CONFIGB(mainRelayPinMode) = OM_DEFAULT; + CONFIGB(idle).solenoidPin = GPIO_UNASSIGNED; + CONFIGB(idle).solenoidPinMode = OM_DEFAULT; + CONFIGB(fuelPumpPin) = GPIO_UNASSIGNED; + CONFIGB(fuelPumpPinMode) = OM_DEFAULT; + CONFIGB(etbControlPin1) = GPIO_UNASSIGNED; + CONFIGB(etbControlPin2) = GPIO_UNASSIGNED; + CONFIGB(etbDirectionPin1) = GPIO_UNASSIGNED; + CONFIGB(etbDirectionPin2) = GPIO_UNASSIGNED; + CONFIGB(o2heaterPin) = GPIO_UNASSIGNED; - boardConfiguration->tachOutputPin = GPIO_UNASSIGNED; + CONFIGB(tachOutputPin) = GPIO_UNASSIGNED; - boardConfiguration->malfunctionIndicatorPin = GPIO_UNASSIGNED; - boardConfiguration->malfunctionIndicatorPinMode = OM_DEFAULT; + CONFIGB(malfunctionIndicatorPin) = GPIO_UNASSIGNED; + CONFIGB(malfunctionIndicatorPinMode) = OM_DEFAULT; - boardConfiguration->fanPin = GPIO_UNASSIGNED; - boardConfiguration->fanPinMode = OM_DEFAULT; + CONFIGB(fanPin) = GPIO_UNASSIGNED; + CONFIGB(fanPinMode) = OM_DEFAULT; - boardConfiguration->clutchDownPin = GPIO_UNASSIGNED; - boardConfiguration->clutchDownPinMode = PI_PULLUP; - boardConfiguration->clutchUpPin = GPIO_UNASSIGNED; - boardConfiguration->clutchUpPinMode = PI_PULLUP; + CONFIGB(clutchDownPin) = GPIO_UNASSIGNED; + CONFIGB(clutchDownPinMode) = PI_PULLUP; + CONFIGB(clutchUpPin) = GPIO_UNASSIGNED; + CONFIGB(clutchUpPinMode) = PI_PULLUP; engineConfiguration->brakePedalPin = GPIO_UNASSIGNED; engineConfiguration->brakePedalPinMode = PI_PULLUP; - boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED; - boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED; + CONFIGB(gps_rx_pin) = GPIO_UNASSIGNED; + CONFIGB(gps_tx_pin) = GPIO_UNASSIGNED; for (int i = 0;i < INJECTION_PIN_COUNT;i++) { - boardConfiguration->injectionPins[i] = GPIO_UNASSIGNED; + CONFIGB(injectionPins)[i] = GPIO_UNASSIGNED; } - boardConfiguration->injectionPinMode = OM_DEFAULT; + CONFIGB(injectionPinMode) = OM_DEFAULT; for (int i = 0;i < IGNITION_PIN_COUNT;i++) { - boardConfiguration->ignitionPins[i] = GPIO_UNASSIGNED; + CONFIGB(ignitionPins)[i] = GPIO_UNASSIGNED; } - boardConfiguration->ignitionPinMode = OM_DEFAULT; + CONFIGB(ignitionPinMode) = OM_DEFAULT; } void setDefaultBasePins(DECLARE_ENGINE_PARAMETER_SIGNATURE) { @@ -409,13 +411,13 @@ void setDefaultBasePins(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // needed also by bootloader code void setDefaultSerialParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - boardConfiguration->startConsoleInBinaryMode = true; - boardConfiguration->useSerialPort = true; + CONFIGB(startConsoleInBinaryMode) = true; + CONFIGB(useSerialPort) = true; engineConfiguration->binarySerialTxPin = GPIOC_10; engineConfiguration->binarySerialRxPin = GPIOC_11; engineConfiguration->consoleSerialTxPin = GPIOC_10; engineConfiguration->consoleSerialRxPin = GPIOC_11; - boardConfiguration->tunerStudioSerialSpeed = TS_DEFAULT_SPEED; + CONFIGB(tunerStudioSerialSpeed) = TS_DEFAULT_SPEED; engineConfiguration->uartConsoleSerialSpeed = 115200; #if EFI_PROD_CODE || defined(__DOXYGEN__) @@ -426,10 +428,10 @@ void setDefaultSerialParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) { // needed also by bootloader code void setDefaultSdCardParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - boardConfiguration->is_enabled_spi_3 = true; + CONFIGB(is_enabled_spi_3) = true; engineConfiguration->sdCardSpiDevice = SPI_DEVICE_3; - boardConfiguration->sdCardCsPin = GPIOD_4; - boardConfiguration->isSdCardEnabled = true; + CONFIGB(sdCardCsPin) = GPIOD_4; + CONFIGB(isSdCardEnabled) = true; #if EFI_PROD_CODE || defined(__DOXYGEN__) // call overrided board-specific SD card configuration setup, if needed (for custom boards only) @@ -504,7 +506,7 @@ static void setDefaultWarmupFuelEnrichment(DECLARE_ENGINE_PARAMETER_SIGNATURE) { } static void setDefaultFuelCutParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - boardConfiguration->coastingFuelCutEnabled = false; + CONFIGB(coastingFuelCutEnabled) = false; engineConfiguration->coastingFuelCutRpmLow = 1300; engineConfiguration->coastingFuelCutRpmHigh = 1500; engineConfiguration->coastingFuelCutTps = 2; @@ -590,17 +592,17 @@ static void setDefaultIdleSpeedTarget(DECLARE_ENGINE_PARAMETER_SIGNATURE) { } static void setDefaultStepperIdleParameters(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - boardConfiguration->idle.stepperDirectionPin = GPIOE_10; - boardConfiguration->idle.stepperStepPin = GPIOE_12; + CONFIGB(idle).stepperDirectionPin = GPIOE_10; + CONFIGB(idle).stepperStepPin = GPIOE_12; engineConfiguration->stepperEnablePin = GPIOE_14; engineConfiguration->idleStepperReactionTime = 10; engineConfiguration->idleStepperTotalSteps = 150; } static void setCanDefaults(DECLARE_ENGINE_PARAMETER_SIGNATURE) { - boardConfiguration->canDeviceMode = CD_USE_CAN2; - boardConfiguration->canTxPin = GPIOB_6; - boardConfiguration->canRxPin = GPIOB_12; + CONFIGB(canDeviceMode) = CD_USE_CAN2; + CONFIGB(canTxPin) = GPIOB_6; + CONFIGB(canRxPin) = GPIOB_12; engineConfiguration->canSleepPeriod = 50; engineConfiguration->canReadEnabled = true; @@ -795,7 +797,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->fuelClosedLoopCltThreshold = 70; engineConfiguration->fuelClosedLoopRpmThreshold = 900; engineConfiguration->fuelClosedLoopTpsThreshold = 80; - boardConfiguration->fuelClosedLoopAfrLowThreshold = 10.3; + CONFIGB(fuelClosedLoopAfrLowThreshold) = 10.3; engineConfiguration->fuelClosedLoopAfrHighThreshold = 19.8; engineConfiguration->fuelClosedLoopPid.pFactor = -0.1; @@ -810,16 +812,16 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->idleRpmPid.minValue = 5; engineConfiguration->idleRpmPid.maxValue = 95; - boardConfiguration->idlePidDeactivationTpsThreshold = 2; + CONFIGB(idlePidDeactivationTpsThreshold) = 2; - boardConfiguration->idle.solenoidFrequency = 200; + CONFIGB(idle).solenoidFrequency = 200; // set idle_position 50 - boardConfiguration->manIdlePosition = 50; + CONFIGB(manIdlePosition) = 50; engineConfiguration->crankingIACposition = 50; // engineConfiguration->idleMode = IM_AUTO; engineConfiguration->idleMode = IM_MANUAL; - boardConfiguration->useStepperIdle = false; + CONFIGB(useStepperIdle) = false; setDefaultStepperIdleParameters(PASS_ENGINE_PARAMETER_SIGNATURE); @@ -837,7 +839,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->analogInputDividerCoefficient = 2; // performance optimization - boardConfiguration->sensorChartMode = SC_OFF; + CONFIGB(sensorChartMode) = SC_OFF; engineConfiguration->storageMode = MS_AUTO; @@ -954,21 +956,21 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->knockDetectionWindowEnd = 135; engineConfiguration->fuelLevelSensor = EFI_ADC_NONE; - boardConfiguration->fuelLevelEmptyTankVoltage = 0; - boardConfiguration->fuelLevelFullTankVoltage = 5; + CONFIGB(fuelLevelEmptyTankVoltage) = 0; + CONFIGB(fuelLevelFullTankVoltage) = 5; engineConfiguration->hipOutputChannel = EFI_ADC_NONE; /** * this is RPM. 10000 rpm is only 166Hz, 800 rpm is 13Hz */ - boardConfiguration->triggerSimulatorFrequency = 1200; + CONFIGB(triggerSimulatorFrequency) = 1200; - boardConfiguration->triggerErrorPin = GPIO_UNASSIGNED; + CONFIGB(triggerErrorPin) = GPIO_UNASSIGNED; - boardConfiguration->max31855spiDevice = SPI_NONE; + CONFIGB(max31855spiDevice) = SPI_NONE; for (int i = 0; i < EGT_CHANNEL_COUNT; i++) { - boardConfiguration->max31855_cs[i] = GPIO_UNASSIGNED; + CONFIGB(max31855_cs)[i] = GPIO_UNASSIGNED; } engineConfiguration->alternatorPwmFrequency = 300; @@ -979,13 +981,13 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setDefaultSerialParameters(PASS_ENGINE_PARAMETER_SIGNATURE); - boardConfiguration->triggerSimulatorPins[0] = GPIOD_1; - boardConfiguration->triggerSimulatorPins[1] = GPIOD_2; - boardConfiguration->triggerSimulatorPins[2] = GPIO_UNASSIGNED; + CONFIGB(triggerSimulatorPins)[0] = GPIOD_1; + CONFIGB(triggerSimulatorPins)[1] = GPIOD_2; + CONFIGB(triggerSimulatorPins)[2] = GPIO_UNASSIGNED; - boardConfiguration->triggerSimulatorPinModes[0] = OM_DEFAULT; - boardConfiguration->triggerSimulatorPinModes[1] = OM_DEFAULT; - boardConfiguration->triggerSimulatorPinModes[2] = OM_DEFAULT; + CONFIGB(triggerSimulatorPinModes)[0] = OM_DEFAULT; + CONFIGB(triggerSimulatorPinModes)[1] = OM_DEFAULT; + CONFIGB(triggerSimulatorPinModes)[2] = OM_DEFAULT; strcpy(config->timingMultiplier, "1"); @@ -998,62 +1000,62 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { engineConfiguration->isAlternatorControlEnabled = true; -// boardConfiguration->gps_rx_pin = GPIOB_7; -// boardConfiguration->gps_tx_pin = GPIOB_6; +// CONFIGB(gps_rx_pin) = GPIOB_7; +// CONFIGB(gps_tx_pin) = GPIOB_6; - boardConfiguration->triggerInputPins[0] = GPIOC_6; - boardConfiguration->triggerInputPins[1] = GPIOA_5; - boardConfiguration->logicAnalyzerPins[0] = GPIO_UNASSIGNED; - boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED; // GPIOE_5 is a popular option (if available) - boardConfiguration->logicAnalyzerPins[2] = GPIO_UNASSIGNED; - boardConfiguration->logicAnalyzerPins[3] = GPIO_UNASSIGNED; - boardConfiguration->vehicleSpeedSensorInputPin = GPIO_UNASSIGNED; + CONFIGB(triggerInputPins)[0] = GPIOC_6; + CONFIGB(triggerInputPins)[1] = GPIOA_5; + CONFIGB(logicAnalyzerPins)[0] = GPIO_UNASSIGNED; + CONFIGB(logicAnalyzerPins)[1] = GPIO_UNASSIGNED; // GPIOE_5 is a popular option (if available) + CONFIGB(logicAnalyzerPins)[2] = GPIO_UNASSIGNED; + CONFIGB(logicAnalyzerPins)[3] = GPIO_UNASSIGNED; + CONFIGB(vehicleSpeedSensorInputPin) = GPIO_UNASSIGNED; engineConfiguration->vehicleSpeedCoef = 1.0f; - boardConfiguration->logicAnalyzerMode[0] = false; - boardConfiguration->logicAnalyzerMode[1] = false; + CONFIGB(logicAnalyzerMode)[0] = false; + CONFIGB(logicAnalyzerMode)[1] = false; engineConfiguration->mapErrorDetectionTooLow = 5; engineConfiguration->mapErrorDetectionTooHigh = 250; - boardConfiguration->idleThreadPeriod = 100; - boardConfiguration->consoleLoopPeriod = 200; - boardConfiguration->lcdThreadPeriod = 300; - boardConfiguration->generalPeriodicThreadPeriod = 50; - boardConfiguration->useLcdScreen = true; + CONFIGB(idleThreadPeriod) = 100; + CONFIGB(consoleLoopPeriod) = 200; + CONFIGB(lcdThreadPeriod) = 300; + CONFIGB(generalPeriodicThreadPeriod) = 50; + CONFIGB(useLcdScreen) = true; - boardConfiguration->boardTestModeJumperPin = GPIOB_0; + CONFIGB(boardTestModeJumperPin) = GPIOB_0; setCanDefaults(PASS_ENGINE_PARAMETER_SIGNATURE); // set this to SPI_DEVICE_3 to enable stimulation - boardConfiguration->digitalPotentiometerSpiDevice = SPI_NONE; - boardConfiguration->digitalPotentiometerChipSelect[0] = GPIOD_7; - boardConfiguration->digitalPotentiometerChipSelect[1] = GPIO_UNASSIGNED; - boardConfiguration->digitalPotentiometerChipSelect[2] = GPIOD_5; - boardConfiguration->digitalPotentiometerChipSelect[3] = GPIO_UNASSIGNED; + CONFIGB(digitalPotentiometerSpiDevice) = SPI_NONE; + CONFIGB(digitalPotentiometerChipSelect)[0] = GPIOD_7; + CONFIGB(digitalPotentiometerChipSelect)[1] = GPIO_UNASSIGNED; + CONFIGB(digitalPotentiometerChipSelect)[2] = GPIOD_5; + CONFIGB(digitalPotentiometerChipSelect)[3] = GPIO_UNASSIGNED; - boardConfiguration->is_enabled_spi_1 = false; - boardConfiguration->is_enabled_spi_2 = false; - boardConfiguration->is_enabled_spi_3 = true; + CONFIGB(is_enabled_spi_1) = false; + CONFIGB(is_enabled_spi_2) = false; + CONFIGB(is_enabled_spi_3) = true; - boardConfiguration->spi1mosiPin = GPIOB_5; - boardConfiguration->spi1misoPin = GPIOB_4; - boardConfiguration->spi1sckPin = GPIOB_3; // please note that this pin is also SWO/SWD - Single Wire debug Output + CONFIGB(spi1mosiPin) = GPIOB_5; + CONFIGB(spi1misoPin) = GPIOB_4; + CONFIGB(spi1sckPin) = GPIOB_3; // please note that this pin is also SWO/SWD - Single Wire debug Output #if EFI_MEMS || defined(__DOXYGEN__) // this would override some values from above configureAccelerometerPins(PASS_ENGINE_PARAMETER_SIGNATURE); #endif - boardConfiguration->spi2mosiPin = GPIOB_15; - boardConfiguration->spi2misoPin = GPIOB_14; - boardConfiguration->spi2sckPin = GPIOB_13; + CONFIGB(spi2mosiPin) = GPIOB_15; + CONFIGB(spi2misoPin) = GPIOB_14; + CONFIGB(spi2sckPin) = GPIOB_13; - boardConfiguration->spi3mosiPin = GPIOB_5; - boardConfiguration->spi3misoPin = GPIOB_4; - boardConfiguration->spi3sckPin = GPIOB_3; + CONFIGB(spi3mosiPin) = GPIOB_5; + CONFIGB(spi3misoPin) = GPIOB_4; + CONFIGB(spi3sckPin) = GPIOB_3; engineConfiguration->hip9011Gain = 1; #if EFI_HIP_9011 || defined(__DOXYGEN__) @@ -1062,10 +1064,10 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { setDefaultSdCardParameters(PASS_ENGINE_PARAMETER_SIGNATURE); - boardConfiguration->isFastAdcEnabled = true; - boardConfiguration->isEngineControlEnabled = true; + CONFIGB(isFastAdcEnabled) = true; + CONFIGB(isEngineControlEnabled) = true; - boardConfiguration->isVerboseAlternator = false; + CONFIGB(isVerboseAlternator) = false; engineConfiguration->warmupAfrPid.offset = 1; engineConfiguration->warmupAfrThreshold = 60; @@ -1091,7 +1093,7 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { * * fsioinfo */ - boardConfiguration->fsio_setting[0] = 5000; + CONFIGB(fsio_setting)[0] = 5000; // simple warning light as default configuration // set_fsio_expression 1 "rpm > fsio_setting(1)" setFsio(0, GPIO_UNASSIGNED, RPM_ABOVE_USER_SETTING_1 PASS_ENGINE_PARAMETER_SUFFIX); @@ -1365,24 +1367,23 @@ void setOperationMode(engine_configuration_s *engineConfiguration, operation_mod engineConfiguration->operationMode = mode; } -operation_mode_e getOperationMode(engine_configuration_s const *engineConfiguration) { +operation_mode_e getOperationMode(DECLARE_ENGINE_PARAMETER_SIGNATURE) { return engineConfiguration->operationMode; } -void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration) { +void commonFrankensoAnalogInputs(DECLARE_ENGINE_PARAMETER_SIGNATURE) { /** * VBatt */ engineConfiguration->vbattAdcChannel = EFI_ADC_14; } -void setFrankenso0_1_joystick(engine_configuration_s *engineConfiguration) { - board_configuration_s *boardConfiguration = &engineConfiguration->bc; - boardConfiguration->joystickCenterPin = GPIOC_8; - boardConfiguration->joystickAPin = GPIOD_10; - boardConfiguration->joystickBPin = GPIO_UNASSIGNED; - boardConfiguration->joystickCPin = GPIO_UNASSIGNED; - boardConfiguration->joystickDPin = GPIOD_11; +void setFrankenso0_1_joystick(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + CONFIGB(joystickCenterPin) = GPIOC_8; + CONFIGB(joystickAPin) = GPIOD_10; + CONFIGB(joystickBPin) = GPIO_UNASSIGNED; + CONFIGB(joystickCPin) = GPIO_UNASSIGNED; + CONFIGB(joystickDPin) = GPIOD_11; } void copyTargetAfrTable(fuel_table_t const source, afr_table_t destination) { diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index a09d4b1da2..5d24cb63ca 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -72,8 +72,8 @@ void rememberCurrentConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE); void incrementGlobalConfigurationVersion(DECLARE_ENGINE_PARAMETER_SIGNATURE); int getGlobalConfigurationVersion(void); -void commonFrankensoAnalogInputs(engine_configuration_s *engineConfiguration); -void setFrankenso0_1_joystick(engine_configuration_s *engineConfiguration); +void commonFrankensoAnalogInputs(DECLARE_ENGINE_PARAMETER_SIGNATURE); +void setFrankenso0_1_joystick(DECLARE_ENGINE_PARAMETER_SIGNATURE); void copyTargetAfrTable(fuel_table_t const source, afr_table_t destination); void copyFuelTable(fuel_table_t const source, fuel_table_t destination); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 5db44646b7..9a75425c72 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -73,42 +73,42 @@ void printFloatArray(const char *prefix, float array[], int size) { } void printSpiState(Logging *logger, board_configuration_s *boardConfiguration) { - scheduleMsg(logger, "spi 1=%s/2=%s/3=%s", boolToString(boardConfiguration->is_enabled_spi_1), - boolToString(boardConfiguration->is_enabled_spi_2), boolToString(boardConfiguration->is_enabled_spi_3)); + scheduleMsg(logger, "spi 1=%s/2=%s/3=%s", boolToString(CONFIGB(is_enabled_spi_1)), + boolToString(CONFIGB(is_enabled_spi_2)), boolToString(CONFIGB(is_enabled_spi_3))); } extern board_configuration_s *boardConfiguration; static void printOutputs(const engine_configuration_s *engineConfiguration) { - scheduleMsg(&logger, "injectionPins: mode %s", getPin_output_mode_e(boardConfiguration->injectionPinMode)); + scheduleMsg(&logger, "injectionPins: mode %s", getPin_output_mode_e(CONFIGB(injectionPinMode))); for (int i = 0; i < engineConfiguration->specs.cylindersCount; i++) { - brain_pin_e brainPin = boardConfiguration->injectionPins[i]; + brain_pin_e brainPin = CONFIGB(injectionPins)[i]; scheduleMsg(&logger, "injection #%d @ %s", (1 + i), hwPortname(brainPin)); } - scheduleMsg(&logger, "ignitionPins: mode %s", getPin_output_mode_e(boardConfiguration->ignitionPinMode)); + scheduleMsg(&logger, "ignitionPins: mode %s", getPin_output_mode_e(CONFIGB(ignitionPinMode))); for (int i = 0; i < engineConfiguration->specs.cylindersCount; i++) { - brain_pin_e brainPin = boardConfiguration->ignitionPins[i]; + brain_pin_e brainPin = CONFIGB(ignitionPins)[i]; scheduleMsg(&logger, "ignition #%d @ %s", (1 + i), hwPortname(brainPin)); } - scheduleMsg(&logger, "idlePin: mode %s @ %s freq=%d", getPin_output_mode_e(boardConfiguration->idle.solenoidPinMode), - hwPortname(boardConfiguration->idle.solenoidPin), boardConfiguration->idle.solenoidFrequency); - scheduleMsg(&logger, "malfunctionIndicatorn: %s mode=%s", hwPortname(boardConfiguration->malfunctionIndicatorPin), - getPin_output_mode_e(boardConfiguration->malfunctionIndicatorPinMode)); + scheduleMsg(&logger, "idlePin: mode %s @ %s freq=%d", getPin_output_mode_e(CONFIGB(idle).solenoidPinMode), + hwPortname(CONFIGB(idle).solenoidPin), CONFIGB(idle).solenoidFrequency); + scheduleMsg(&logger, "malfunctionIndicatorn: %s mode=%s", hwPortname(CONFIGB(malfunctionIndicatorPin)), + getPin_output_mode_e(CONFIGB(malfunctionIndicatorPinMode))); - scheduleMsg(&logger, "fuelPumpPin: mode %s @ %s", getPin_output_mode_e(boardConfiguration->fuelPumpPinMode), - hwPortname(boardConfiguration->fuelPumpPin)); + scheduleMsg(&logger, "fuelPumpPin: mode %s @ %s", getPin_output_mode_e(CONFIGB(fuelPumpPinMode)), + hwPortname(CONFIGB(fuelPumpPin))); - scheduleMsg(&logger, "fanPin: mode %s @ %s", getPin_output_mode_e(boardConfiguration->fanPinMode), - hwPortname(boardConfiguration->fanPin)); + scheduleMsg(&logger, "fanPin: mode %s @ %s", getPin_output_mode_e(CONFIGB(fanPinMode)), + hwPortname(CONFIGB(fanPin))); - scheduleMsg(&logger, "mainRelay: mode %s @ %s", getPin_output_mode_e(boardConfiguration->mainRelayPinMode), - hwPortname(boardConfiguration->mainRelayPin)); + scheduleMsg(&logger, "mainRelay: mode %s @ %s", getPin_output_mode_e(CONFIGB(mainRelayPinMode)), + hwPortname(CONFIGB(mainRelayPin))); scheduleMsg(&logger, "alternator field: mode %s @ %s", - getPin_output_mode_e(boardConfiguration->alternatorControlPinMode), - hwPortname(boardConfiguration->alternatorControlPin)); + getPin_output_mode_e(CONFIGB(alternatorControlPinMode)), + hwPortname(CONFIGB(alternatorControlPin))); } @@ -265,25 +265,25 @@ void printConfiguration(const engine_configuration_s *engineConfiguration) { boolToString(engineConfiguration->isMapAveragingEnabled), boolToString(engineConfiguration->isTunerStudioEnabled), boolToString(engineConfiguration->isWaveAnalyzerEnabled), - boolToString(boardConfiguration->isFastAdcEnabled)); + boolToString(CONFIGB(isFastAdcEnabled))); scheduleMsg(&logger, "isManualSpinningMode=%s/isCylinderCleanupEnabled=%s", boolToString(engineConfiguration->isManualSpinningMode), boolToString(engineConfiguration->isCylinderCleanupEnabled)); - scheduleMsg(&logger, "clutchUp@%s: %s", hwPortname(boardConfiguration->clutchUpPin), + scheduleMsg(&logger, "clutchUp@%s: %s", hwPortname(CONFIGB(clutchUpPin)), boolToString(engine->clutchUpState)); - scheduleMsg(&logger, "clutchDown@%s: %s", hwPortname(boardConfiguration->clutchDownPin), + scheduleMsg(&logger, "clutchDown@%s: %s", hwPortname(CONFIGB(clutchDownPin)), boolToString(engine->clutchDownState)); scheduleMsg(&logger, "boardTestModeJumperPin: %s/nesting=%d", - hwPortname(boardConfiguration->boardTestModeJumperPin), maxNesting); + hwPortname(CONFIGB(boardTestModeJumperPin)), maxNesting); - scheduleMsg(&logger, "digitalPotentiometerSpiDevice %d", boardConfiguration->digitalPotentiometerSpiDevice); + scheduleMsg(&logger, "digitalPotentiometerSpiDevice %d", CONFIGB(digitalPotentiometerSpiDevice)); for (int i = 0; i < DIGIPOT_COUNT; i++) { scheduleMsg(&logger, "digitalPotentiometer CS%d %s", i, - hwPortname(boardConfiguration->digitalPotentiometerChipSelect[i])); + hwPortname(CONFIGB(digitalPotentiometerChipSelect)[i])); } #if EFI_PROD_CODE @@ -327,22 +327,22 @@ void setEngineType(int value) { } static void setIdleSolenoidFrequency(int value) { - boardConfiguration->idle.solenoidFrequency = value; + CONFIGB(idle).solenoidFrequency = value; incrementGlobalConfigurationVersion(); } static void setInjectionPinMode(int value) { - boardConfiguration->injectionPinMode = (pin_output_mode_e) value; + CONFIGB(injectionPinMode) = (pin_output_mode_e) value; doPrintConfiguration(); } static void setIgnitionPinMode(int value) { - boardConfiguration->ignitionPinMode = (pin_output_mode_e) value; + CONFIGB(ignitionPinMode) = (pin_output_mode_e) value; doPrintConfiguration(); } static void setIdlePinMode(int value) { - boardConfiguration->idle.solenoidPinMode = (pin_output_mode_e) value; + CONFIGB(idle).solenoidPinMode = (pin_output_mode_e) value; doPrintConfiguration(); } @@ -359,17 +359,17 @@ static void setIgnitionOffset(float value) { } static void setFuelPumpPinMode(int value) { - boardConfiguration->fuelPumpPinMode = (pin_output_mode_e) value; + CONFIGB(fuelPumpPinMode) = (pin_output_mode_e) value; doPrintConfiguration(); } static void setMalfunctionIndicatorPinMode(int value) { - boardConfiguration->malfunctionIndicatorPinMode = (pin_output_mode_e) value; + CONFIGB(malfunctionIndicatorPinMode) = (pin_output_mode_e) value; doPrintConfiguration(); } static void setSensorChartMode(int value) { - boardConfiguration->sensorChartMode = (sensor_chart_e) value; + CONFIGB(sensorChartMode) = (sensor_chart_e) value; doPrintConfiguration(); } @@ -431,12 +431,12 @@ static void printTemperatureInfo(void) { } scheduleMsg(&logger, "fan=%s @ %s", boolToString(enginePins.fanRelay.getLogicValue()), - hwPortname(boardConfiguration->fanPin)); + hwPortname(CONFIGB(fanPin))); scheduleMsg(&logger, "A/C relay=%s @ %s", boolToString(enginePins.acRelay.getLogicValue()), - hwPortname(boardConfiguration->acRelayPin)); + hwPortname(CONFIGB(acRelayPin))); - scheduleMsg(&logger, "warmupPID=%d corr=%.2f", boardConfiguration->useWarmupPidAfr, + scheduleMsg(&logger, "warmupPID=%d corr=%.2f", CONFIGB(useWarmupPidAfr), engine->engineState.cltFuelCorrection); #endif /* EFI_ANALOG_SENSORS */ @@ -636,11 +636,11 @@ static void setWholeFuelMapCmd(float value) { #if EFI_PROD_CODE static void setEgtSpi(int spi) { - boardConfiguration->max31855spiDevice = (spi_device_e) spi; + CONFIGB(max31855spiDevice) = (spi_device_e) spi; } static void setPotSpi(int spi) { - boardConfiguration->digitalPotentiometerSpiDevice = (spi_device_e) spi; + CONFIGB(digitalPotentiometerSpiDevice) = (spi_device_e) spi; } static void setIgnitionPin(const char *indexStr, const char *pinName) { @@ -654,7 +654,7 @@ static void setIgnitionPin(const char *indexStr, const char *pinName) { return; } scheduleMsg(&logger, "setting ignition pin[%d] to %s please save&restart", index, hwPortname(pin)); - boardConfiguration->ignitionPins[index] = pin; + CONFIGB(ignitionPins)[index] = pin; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -671,23 +671,23 @@ static void setIndividualPin(const char *pinName, brain_pin_e *targetPin, const // set_idle_pin none static void setIdlePin(const char *pinName) { - setIndividualPin(pinName, &boardConfiguration->idle.solenoidPin, "idle"); + setIndividualPin(pinName, &CONFIGB(idle).solenoidPin, "idle"); } static void setMainRelayPin(const char *pinName) { - setIndividualPin(pinName, &boardConfiguration->mainRelayPin, "main relay"); + setIndividualPin(pinName, &CONFIGB(mainRelayPin), "main relay"); } static void setAlternatorPin(const char *pinName) { - setIndividualPin(pinName, &boardConfiguration->alternatorControlPin, "alternator"); + setIndividualPin(pinName, &CONFIGB(alternatorControlPin), "alternator"); } static void setACPin(const char *pinName) { - setIndividualPin(pinName, &boardConfiguration->acRelayPin, "A/C"); + setIndividualPin(pinName, &CONFIGB(acRelayPin), "A/C"); } static void setFuelPumpPin(const char *pinName) { - setIndividualPin(pinName, &boardConfiguration->fuelPumpPin, "fuelPump"); + setIndividualPin(pinName, &CONFIGB(fuelPumpPin), "fuelPump"); } static void setInjectionPin(const char *indexStr, const char *pinName) { @@ -701,7 +701,7 @@ static void setInjectionPin(const char *indexStr, const char *pinName) { return; } scheduleMsg(&logger, "setting injection pin[%d] to %s please save&restart", index, hwPortname(pin)); - boardConfiguration->injectionPins[index] = pin; + CONFIGB(injectionPins)[index] = pin; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -716,7 +716,7 @@ static void setTriggerInputPin(const char *indexStr, const char *pinName) { return; } scheduleMsg(&logger, "setting trigger pin[%d] to %s please save&restart", index, hwPortname(pin)); - boardConfiguration->triggerInputPins[index] = pin; + CONFIGB(triggerInputPins)[index] = pin; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -729,7 +729,7 @@ static void setTriggerSimulatorMode(const char *indexStr, const char *modeCode) if (absI(mode) == ERROR_CODE) { return; } - boardConfiguration->triggerSimulatorPinModes[index] = (pin_output_mode_e) mode; + CONFIGB(triggerSimulatorPinModes)[index] = (pin_output_mode_e) mode; } static void setEgtCSPin(const char *indexStr, const char *pinName) { @@ -742,7 +742,7 @@ static void setEgtCSPin(const char *indexStr, const char *pinName) { return; } scheduleMsg(&logger, "setting EGT CS pin[%d] to %s please save&restart", index, hwPortname(pin)); - boardConfiguration->max31855_cs[index] = pin; + CONFIGB(max31855_cs)[index] = pin; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -756,7 +756,7 @@ static void setTriggerSimulatorPin(const char *indexStr, const char *pinName) { return; } scheduleMsg(&logger, "setting trigger simulator pin[%d] to %s please save&restart", index, hwPortname(pin)); - boardConfiguration->triggerSimulatorPins[index] = pin; + CONFIGB(triggerSimulatorPins)[index] = pin; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); } @@ -800,7 +800,7 @@ static void setLogicInputPin(const char *indexStr, const char *pinName) { return; } scheduleMsg(&logger, "setting logic input pin[%d] to %s please save&restart", index, hwPortname(pin)); - boardConfiguration->logicAnalyzerPins[index] = pin; + CONFIGB(logicAnalyzerPins)[index] = pin; } static void showPinFunction(const char *pinName) { @@ -845,13 +845,13 @@ static void setFuelMap(const char * rpmStr, const char *loadStr, const char *val static void setSpiMode(int index, bool mode) { switch (index) { case 1: - boardConfiguration->is_enabled_spi_1 = mode; + CONFIGB(is_enabled_spi_1) = mode; break; case 2: - boardConfiguration->is_enabled_spi_2 = mode; + CONFIGB(is_enabled_spi_2) = mode; break; case 3: - boardConfiguration->is_enabled_spi_3 = mode; + CONFIGB(is_enabled_spi_3) = mode; break; default: scheduleMsg(&logger, "invalid spi index %d", index); @@ -862,19 +862,19 @@ static void setSpiMode(int index, bool mode) { static void enableOrDisable(const char *param, bool isEnabled) { if (strEqualCaseInsensitive(param, "fastadc")) { - boardConfiguration->isFastAdcEnabled = isEnabled; + CONFIGB(isFastAdcEnabled) = isEnabled; } else if (strEqualCaseInsensitive(param, "etb_auto")) { engine->etbAutoTune = isEnabled; } else if (strEqualCaseInsensitive(param, "constant_dwell")) { engineConfiguration->useConstantDwellDuringCranking = isEnabled; } else if (strEqualCaseInsensitive(param, "binary_mode_console")) { - boardConfiguration->startConsoleInBinaryMode = isEnabled; + CONFIGB(startConsoleInBinaryMode) = isEnabled; } else if (strEqualCaseInsensitive(param, "cj125")) { - boardConfiguration->isCJ125Enabled = isEnabled; + CONFIGB(isCJ125Enabled) = isEnabled; } else if (strEqualCaseInsensitive(param, "engine_sniffer")) { engineConfiguration->isEngineChartEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "step1limimter")) { - boardConfiguration->enabledStep1Limiter = isEnabled; + CONFIGB(enabledStep1Limiter) = isEnabled; #if EFI_PROD_CODE || defined(__DOXYGEN__) } else if (strEqualCaseInsensitive(param, "auto_idle")) { #if EFI_IDLE_CONTROL || defined(__DOXYGEN__) @@ -882,9 +882,9 @@ static void enableOrDisable(const char *param, bool isEnabled) { #endif /* EFI_IDLE_CONTROL */ #endif /* EFI_PROD_CODE */ } else if (strEqualCaseInsensitive(param, "serial")) { - boardConfiguration->useSerialPort = isEnabled; + CONFIGB(useSerialPort) = isEnabled; } else if (strEqualCaseInsensitive(param, "stepperidle")) { - boardConfiguration->useStepperIdle = isEnabled; + CONFIGB(useStepperIdle) = isEnabled; } else if (strEqualCaseInsensitive(param, "trigger_only_front")) { engineConfiguration->useOnlyRisingEdgeForTrigger = isEnabled; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); @@ -898,7 +898,7 @@ static void enableOrDisable(const char *param, bool isEnabled) { engineConfiguration->twoWireBatchIgnition = isEnabled; incrementGlobalConfigurationVersion(PASS_ENGINE_PARAMETER_SIGNATURE); } else if (strEqualCaseInsensitive(param, "HIP9011")) { - boardConfiguration->isHip9011Enabled = isEnabled; + CONFIGB(isHip9011Enabled) = isEnabled; } else if (strEqualCaseInsensitive(param, "verbose_etb")) { engineConfiguration->isVerboseETB = isEnabled; } else if (strEqualCaseInsensitive(param, "verbose_idle")) { @@ -912,15 +912,15 @@ static void enableOrDisable(const char *param, bool isEnabled) { } else if (strEqualCaseInsensitive(param, "auxdebug4")) { engineConfiguration->isVerboseAuxPid4 = isEnabled; } else if (strEqualCaseInsensitive(param, "altdebug")) { - boardConfiguration->isVerboseAlternator = isEnabled; + CONFIGB(isVerboseAlternator) = isEnabled; } else if (strEqualCaseInsensitive(param, "tpic_advanced_mode")) { - boardConfiguration->useTpicAdvancedMode = isEnabled; + CONFIGB(useTpicAdvancedMode) = isEnabled; } else if (strEqualCaseInsensitive(param, "knockdebug")) { engine->knockDebug = isEnabled; } else if (strEqualCaseInsensitive(param, "altcontrol")) { engineConfiguration->isAlternatorControlEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "sd")) { - boardConfiguration->isSdCardEnabled = isEnabled; + CONFIGB(isSdCardEnabled) = isEnabled; } else if (strEqualCaseInsensitive(param, "test_mode")) { engine->isTestMode = isEnabled; } else if (strEqualCaseInsensitive(param, "can_read")) { @@ -936,7 +936,7 @@ static void enableOrDisable(const char *param, bool isEnabled) { } else if (strEqualCaseInsensitive(param, "self_stimulation")) { engineConfiguration->directSelfStimulation = isEnabled; } else if (strEqualCaseInsensitive(param, "engine_control")) { - boardConfiguration->isEngineControlEnabled = isEnabled; + CONFIGB(isEngineControlEnabled) = isEnabled; } else if (strEqualCaseInsensitive(param, "map_avg")) { engineConfiguration->isMapAveragingEnabled = isEnabled; } else if (strEqualCaseInsensitive(param, "tunerstudio")) { @@ -1049,7 +1049,7 @@ const plain_get_integer_s getI_plain[] = { const plain_get_float_s getF_plain[] = { {"cranking_dwell", &engineConfiguration->ignitionDwellForCrankingMs}, - {"idle_position", &boardConfiguration->manIdlePosition}, + {"idle_position", &CONFIGB(manIdlePosition)}, {"ignition_offset", &engineConfiguration->ignitionOffset}, {"injection_offset", &engineConfiguration->extraInjectionOffset}, {"global_trigger_offset_angle", &engineConfiguration->globalTriggerAngleOffset}, @@ -1089,7 +1089,7 @@ static void getValue(const char *paramStr) { if (strEqualCaseInsensitive(paramStr, "isCJ125Enabled")) { - scheduleMsg(&logger, "isCJ125Enabled=%d", boardConfiguration->isCJ125Enabled); + scheduleMsg(&logger, "isCJ125Enabled=%d", CONFIGB(isCJ125Enabled)); #if EFI_PROD_CODE || defined(__DOXYGEN__) } else if (strEqualCaseInsensitive(paramStr, "bor")) { showBor(); @@ -1099,7 +1099,7 @@ static void getValue(const char *paramStr) { } else if (strEqualCaseInsensitive(paramStr, "global_trigger_offset_angle")) { scheduleMsg(&logger, "global_trigger_offset=%.2f", engineConfiguration->globalTriggerAngleOffset); } else if (strEqualCaseInsensitive(paramStr, "isHip9011Enabled")) { - scheduleMsg(&logger, "isHip9011Enabled=%d", boardConfiguration->isHip9011Enabled); + scheduleMsg(&logger, "isHip9011Enabled=%d", CONFIGB(isHip9011Enabled)); } #if EFI_RTC || defined(__DOXYGEN__)