diff --git a/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp b/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp index 46230c04ac..f80ca5f4de 100644 --- a/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp +++ b/firmware/config/boards/hellen/alphax-4chan/board_configuration.cpp @@ -224,6 +224,10 @@ static Gpio OUTPUTS[] = { Gpio::H144_LS_2, Gpio::H144_LS_3, Gpio::H144_LS_4, + // vvt1 + Gpio::H144_IGN_7, + // vvt2 + Gpio::H144_IGN_8, }; int getBoardMetaOutputsCount() { diff --git a/firmware/config/boards/proteus/board_configuration.cpp b/firmware/config/boards/proteus/board_configuration.cpp index d32f9db008..cf43b171ff 100644 --- a/firmware/config/boards/proteus/board_configuration.cpp +++ b/firmware/config/boards/proteus/board_configuration.cpp @@ -201,6 +201,10 @@ void boardPrepareForStop() { palEnableLineEvent(PAL_LINE(GPIOD, 0), PAL_EVENT_MODE_RISING_EDGE); } +int getBoardMetaLowSideOutputsCount() { + return 16; +} + int getBoardMetaOutputsCount() { return efi::size(PROTEUS_OUTPUTS); } diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index b5b3197776..2e17698fcf 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -1060,4 +1060,6 @@ __attribute__((weak)) void setBoardConfigOverrides() { } __attribute__((weak)) void onBoardStandBy() { } __attribute__((weak)) int getBoardMetaOutputsCount() { return 0; } +// default implementation: treat all outputs as low side +__attribute__((weak)) int getBoardMetaLowSideOutputsCount() { return getBoardMetaOutputsCount(); } __attribute__((weak)) Gpio* getBoardMetaOutputs() { return nullptr; } diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index bd006349b5..3a25136c35 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -97,5 +97,7 @@ extern bool isActiveConfigurationVoid; #define isPinOrModeChanged(pin, mode) (isConfigurationChanged(pin) || isConfigurationChanged(mode)) +// total number of outputs: low side + high side int getBoardMetaOutputsCount(); +int getBoardMetaLowSideOutputsCount(); Gpio* getBoardMetaOutputs(); diff --git a/firmware/controllers/can/can_bench_test.cpp b/firmware/controllers/can/can_bench_test.cpp index 15ea83a46e..29b8cfe0be 100644 --- a/firmware/controllers/can/can_bench_test.cpp +++ b/firmware/controllers/can/can_bench_test.cpp @@ -98,6 +98,7 @@ static void sendOutBoardMeta() { msg[0] = CAN_BENCH_HEADER; msg[1] = 0; msg[2] = getBoardMetaOutputsCount(); + msg[3] = getBoardMetaLowSideOutputsCount(); #endif // EFI_PROD_CODE }