diff --git a/firmware/config/boards/hellen/hellen-gm-e67/board.mk b/firmware/config/boards/hellen/hellen-gm-e67/board.mk new file mode 100644 index 0000000000..7e77aa3464 --- /dev/null +++ b/firmware/config/boards/hellen/hellen-gm-e67/board.mk @@ -0,0 +1,18 @@ +# Combine the related files for a specific platform and MCU. + +# Target ECU board design +BOARDCPPSRC = $(BOARDS_DIR)/hellen/hellen-gm-e67/board_configuration.cpp +BOARDINC = $(BOARDS_DIR)/hellen/hellen-gm-e67 + + +DDEFS += -DEFI_MAIN_RELAY_CONTROL=TRUE + +# Add them all together +DDEFS += -DFIRMWARE_ID=\"hellenE67\" $(VAR_DEF_ENGINE_TYPE) +DDEFS += -DEFI_SOFTWARE_KNOCK=TRUE -DSTM32_ADC_USE_ADC3=TRUE +DDEFS += -DHAL_TRIGGER_USE_PAL=TRUE + +include $(BOARDS_DIR)/hellen/hellen-common144.mk + + +DDEFS += -DSHORT_BOARD_NAME=hellen-gm-e67 diff --git a/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp b/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp new file mode 100644 index 0000000000..70604e7b91 --- /dev/null +++ b/firmware/config/boards/hellen/hellen-gm-e67/board_configuration.cpp @@ -0,0 +1,159 @@ +/** + * @file boards/hellen/hellen-nb1/board_configuration.cpp + * + * + * @brief Configuration defaults for the hellen-nb1 board + * + * See http://rusefi.com/s/hellenNB1 + * + * @author andreika + * @author Andrey Belomutskiy, (c) 2012-2020 + */ + +#include "pch.h" +#include "custom_engine.h" +#include "hellen_meta.h" + +static void setInjectorPins() { + engineConfiguration->injectionPins[0] = H144_LS_1; + engineConfiguration->injectionPins[1] = H144_LS_2; + engineConfiguration->injectionPins[2] = H144_LS_3; + engineConfiguration->injectionPins[3] = H144_LS_4; + + // Disable remainder + for (int i = 4; i < MAX_CYLINDER_COUNT;i++) { + engineConfiguration->injectionPins[i] = Gpio::Unassigned; + } + + engineConfiguration->injectionPinMode = OM_DEFAULT; + + engineConfiguration->clutchDownPin = Gpio::C4; // Clutch switch input + engineConfiguration->clutchDownPinMode = PI_PULLDOWN; + engineConfiguration->launchActivationMode = CLUTCH_INPUT_LAUNCH; + engineConfiguration->malfunctionIndicatorPin = H144_OUT_IO8; +} + +static void setIgnitionPins() { + engineConfiguration->ignitionPins[0] = H144_IGN_1; + engineConfiguration->ignitionPins[1] = Gpio::Unassigned; + engineConfiguration->ignitionPins[2] = H144_IGN_2; + engineConfiguration->ignitionPins[3] = Gpio::Unassigned; + + // disable remainder + for (int i = 4; i < MAX_CYLINDER_COUNT; i++) { + engineConfiguration->ignitionPins[i] = Gpio::Unassigned; + } + + engineConfiguration->ignitionPinMode = OM_DEFAULT; +} + +static void setupVbatt() { + // 4.7k high side/4.7k low side = 2.0 ratio divider + engineConfiguration->analogInputDividerCoefficient = 2.0f; + + // set vbatt_divider 5.835 + // 33k / 6.8k + engineConfiguration->vbattDividerCoeff = (33 + 6.8) / 6.8; // 5.835 + + // pin input +12 from Main Relay + engineConfiguration->vbattAdcChannel = EFI_ADC_5; // 4T + + engineConfiguration->adcVcc = 3.29f; +} + +static void setupDefaultSensorInputs() { + // trigger inputs, hall + engineConfiguration->triggerInputPins[0] = H144_IN_CRANK; + engineConfiguration->triggerInputPins[1] = Gpio::Unassigned; + engineConfiguration->triggerInputPins[2] = Gpio::Unassigned; + engineConfiguration->camInputs[0] = H144_IN_CAM; + + engineConfiguration->tps1_1AdcChannel = EFI_ADC_4; + engineConfiguration->tps2_1AdcChannel = EFI_ADC_NONE; + + engineConfiguration->mafAdcChannel = EFI_ADC_10; + engineConfiguration->map.sensor.hwChannel = EFI_ADC_11; + + engineConfiguration->afr.hwChannel = EFI_ADC_1; + + engineConfiguration->clt.adcChannel = H144_IN_CLT; + + engineConfiguration->iat.adcChannel = H144_IN_IAT; + + engineConfiguration->auxTempSensor1.adcChannel = EFI_ADC_NONE; + engineConfiguration->auxTempSensor2.adcChannel = EFI_ADC_NONE; +} + +void setBoardConfigOverrides() { + setHellen144LedPins(); + setupVbatt(); + setSdCardConfigurationOverrides(); + + engineConfiguration->clt.config.bias_resistor = 4700; + engineConfiguration->iat.config.bias_resistor = 4700; + + engineConfiguration->canTxPin = Gpio::D1; + engineConfiguration->canRxPin = Gpio::D0; + +} + +void setSerialConfigurationOverrides() { + engineConfiguration->useSerialPort = false; +} + + +/** + * @brief Board-specific configuration defaults. + * + * See also setDefaultEngineConfiguration + * + * @todo Add your board-specific code, if any. + */ +void setBoardDefaultConfiguration() { + setInjectorPins(); + setIgnitionPins(); + + engineConfiguration->isSdCardEnabled = true; + + engineConfiguration->enableSoftwareKnock = true; + + engineConfiguration->boostControlPin = H144_LS_6; + engineConfiguration->acSwitch = H144_IN_D_AUX3; + engineConfiguration->acRelayPin = H144_OUT_IO6; + engineConfiguration->fuelPumpPin = Gpio::G2; // OUT_IO9 + engineConfiguration->idle.solenoidPin = Gpio::D14; // OUT_PWM5 + engineConfiguration->fanPin = Gpio::D12; // OUT_PWM8 + engineConfiguration->mainRelayPin = Gpio::I2; // OUT_LOW3 + engineConfiguration->tachOutputPin = H144_OUT_PWM1; + engineConfiguration->alternatorControlPin = H144_OUT_PWM7; + engineConfiguration->fan2Pin = H144_OUT_IO2; + + // "required" hardware is done - set some reasonable defaults + setupDefaultSensorInputs(); + + engineConfiguration->specs.cylindersCount = 4; + engineConfiguration->specs.firingOrder = FO_1_3_4_2; + + engineConfiguration->ignitionMode = IM_INDIVIDUAL_COILS; // IM_WASTED_SPARK + engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; + engineConfiguration->injectionMode = IM_SIMULTANEOUS;//IM_BATCH;// IM_SEQUENTIAL; + + engineConfiguration->clutchDownPin = H144_IN_D_2; + engineConfiguration->clutchDownPinMode = PI_PULLDOWN; + engineConfiguration->launchActivationMode = CLUTCH_INPUT_LAUNCH; +// ? engineConfiguration->malfunctionIndicatorPin = Gpio::G4; //1E - Check Engine Light +} + +/** + * @brief Board-specific SD card configuration code overrides. Needed by bootloader code. + * @todo Add your board-specific code, if any. + */ +void setSdCardConfigurationOverrides() { + engineConfiguration->sdCardSpiDevice = SPI_DEVICE_2; + + engineConfiguration->spi2mosiPin = H_SPI2_MOSI; + engineConfiguration->spi2misoPin = H_SPI2_MISO; + engineConfiguration->spi2sckPin = H_SPI2_SCK; + engineConfiguration->sdCardCsPin = H_SPI2_CS; + engineConfiguration->is_enabled_spi_2 = true; +} diff --git a/firmware/config/boards/hellen/hellen-gm-e67/compile_hellen-gm-e67.sh b/firmware/config/boards/hellen/hellen-gm-e67/compile_hellen-gm-e67.sh new file mode 100644 index 0000000000..7534766083 --- /dev/null +++ b/firmware/config/boards/hellen/hellen-gm-e67/compile_hellen-gm-e67.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cd .. +bash ../common_make.sh hellen/hellen-gm-e67 ARCH_STM32F4 diff --git a/firmware/config/boards/hellen/hellen-gm-e67/knock_config.h b/firmware/config/boards/hellen/hellen-gm-e67/knock_config.h new file mode 100644 index 0000000000..d03cdec9a4 --- /dev/null +++ b/firmware/config/boards/hellen/hellen-gm-e67/knock_config.h @@ -0,0 +1 @@ +#include "../hellen_knock_config.h" \ No newline at end of file diff --git a/firmware/config/boards/hellen/hellen-gm-e67/prepend.txt b/firmware/config/boards/hellen/hellen-gm-e67/prepend.txt new file mode 100644 index 0000000000..652a8a5de3 --- /dev/null +++ b/firmware/config/boards/hellen/hellen-gm-e67/prepend.txt @@ -0,0 +1,28 @@ +#define MAIN_HELP_URL "https://rusefi.com/s/hellenNB1" + +#define ts_show_hip9011 false +#define ts_show_cj125 false + + + + +#define ts_show_lcd false +#define ts_show_joystick false +#define ts_show_egt false +#define ts_show_gps false +#define ts_show_etb_pins false +#define ts_show_analog_divider false +#define ts_show_spi true +#define ts_show_sd_card true +#define ts_show_can_pins false +#define ts_show_tunerstudio_port true +#define ts_show_can2 false +#define ts_show_software_knock true +#define ts_show_hardware_simulator false +#define ts_show_sd_pins false + +#define show_test_presets false +#define show_Frankenso_presets false +#define show_microRusEFI_presets false +#define show_Proteus_presets false +#define show_Hellen_presets true diff --git a/firmware/gen_config.sh b/firmware/gen_config.sh index c1588ceafe..cec6944ae4 100755 --- a/firmware/gen_config.sh +++ b/firmware/gen_config.sh @@ -25,6 +25,7 @@ for BOARD in \ "hellen/hellen72 hellen72" \ "hellen/hellen81 hellen81" \ "hellen/hellen-nb1 hellen-nb1" \ + "hellen/hellen-gm-e67 hellen-gm-e67" \ "hellen/hellen64_miataNA6_94 hellenNA6" \ "hellen/hellenNA8_96 hellenNA8_96" \ "microrusefi mre_f7" \