diff --git a/firmware/config/engines/custom_engine.cpp b/firmware/config/engines/custom_engine.cpp index 10848e54ba..d9a0dd7ecd 100644 --- a/firmware/config/engines/custom_engine.cpp +++ b/firmware/config/engines/custom_engine.cpp @@ -58,10 +58,13 @@ void setCustomEngineConfiguration(engine_configuration_s *engineConfiguration) { 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; + /** * We want to initialize all outputs for test */ - engineConfiguration->cylindersCount = 10; + engineConfiguration->cylindersCount = 12; engineConfiguration->displayMode = DM_NONE; #else @@ -71,10 +74,15 @@ void setCustomEngineConfiguration(engine_configuration_s *engineConfiguration) { boardConfiguration->injectionPins[7] = GPIO_UNASSIGNED; boardConfiguration->injectionPins[8] = GPIO_UNASSIGNED; boardConfiguration->injectionPins[9] = GPIO_UNASSIGNED; -#endif - boardConfiguration->injectionPins[10] = GPIO_UNASSIGNED; boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED; + + boardConfiguration->ignitionPins[0] = GPIOC_7; + boardConfiguration->ignitionPins[1] = GPIOE_4; // todo: update this value + boardConfiguration->ignitionPins[2] = GPIOE_0; // todo: update this value + boardConfiguration->ignitionPins[3] = GPIOE_1; // todo: update this value +#endif + } #endif /* CONFIG_ENGINES_CUSTOM_ENGINE_CPP_ */ diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index 59529c7bf3..93995aebdc 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -381,7 +381,7 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat engineConfiguration->canWriteEnabled = true; engineConfiguration->canReadEnabled = false; engineConfiguration->canNbcType = CAN_BUS_NBC_BMW; -// engineConfiguration->can_nbc_type = CAN_BUS_MAZDA_RX8; +// engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8; } #endif /* EFI_SUPPORT_DODGE_NEON */ diff --git a/firmware/config/engines/rover_v8.cpp b/firmware/config/engines/rover_v8.cpp index f9624e9ad3..745125320e 100644 --- a/firmware/config/engines/rover_v8.cpp +++ b/firmware/config/engines/rover_v8.cpp @@ -23,8 +23,7 @@ void setFrankenstein_01_LCD(board_configuration_s *boardConfiguration) { boardConfiguration->HD44780_db7 = GPIOB_13; } -void setRoverv8(engine_configuration_s *engineConfiguration, - board_configuration_s *boardConfiguration) { +void setRoverv8(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); engineConfiguration->triggerConfig.triggerType = TT_TOOTHED_WHEEL_36_1; @@ -41,15 +40,13 @@ void setRoverv8(engine_configuration_s *engineConfiguration, // set_whole_fuel_map 3 setWholeFuelMap(engineConfiguration, 3); - - // set_cranking_injection_mode 0 + // set_cranking_injection_mode 0 engineConfiguration->crankingInjectionMode = IM_SIMULTANEOUS; // set_injection_mode 1 engineConfiguration->injectionMode = IM_SEQUENTIAL; // set_ignition_mode 2 engineConfiguration->ignitionMode = IM_WASTED_SPARK; - // Frankenstein: low side - out #1: PC14 // Frankenstein: low side - out #2: PC15 @@ -75,5 +72,10 @@ void setRoverv8(engine_configuration_s *engineConfiguration, // set_injection_pin_mode 0 boardConfiguration->injectionPinMode = OM_DEFAULT; - + boardConfiguration->canTxPin = GPIOB_6; + boardConfiguration->canRxPin = GPIOB_12; + engineConfiguration->canWriteEnabled = true; + engineConfiguration->canReadEnabled = false; + engineConfiguration->isCanEnabled = true; + engineConfiguration->canNbcType = CAN_BUS_MAZDA_RX8; } diff --git a/firmware/controllers/PwmTester.cpp b/firmware/controllers/PwmTester.cpp index 1ebb018e89..5961f6bd86 100644 --- a/firmware/controllers/PwmTester.cpp +++ b/firmware/controllers/PwmTester.cpp @@ -48,17 +48,24 @@ static void startPwmTest(int freq) { static scheduling_s ioTest; -static OutputSignal outSignals[4]; +static OutputSignal outSignals[8]; static void testCallback(void *arg) { /** * 0.1ms from now please squirt for 1.6ms */ - scheduleOutput(&outSignals[0], 0.1, 1.6); - scheduleOutput(&outSignals[1], 0.1, 1.6); - scheduleOutput(&outSignals[2], 0.1, 1.6); - scheduleOutput(&outSignals[3], 0.1, 1.6); + float delayMs = 0.1; + float durationMs = 1.6; + scheduleOutput(&outSignals[0], delayMs, durationMs); + scheduleOutput(&outSignals[1], delayMs, durationMs); + scheduleOutput(&outSignals[2], delayMs, durationMs); + scheduleOutput(&outSignals[3], delayMs, durationMs); + + scheduleOutput(&outSignals[4], delayMs, durationMs); + scheduleOutput(&outSignals[5], delayMs, durationMs); + scheduleOutput(&outSignals[6], delayMs, durationMs); + scheduleOutput(&outSignals[7], delayMs, durationMs); /** * this would re-schedule another callback in 2ms from now @@ -74,10 +81,15 @@ void initPwmTester(void) { /** * injector channels #4-#8 are used for individual squirt test */ + // todo: yet, it's some horrible code duplication outSignals[0].output = &enginePins.injectors[4]; outSignals[1].output = &enginePins.injectors[5]; outSignals[2].output = &enginePins.injectors[6]; outSignals[3].output = &enginePins.injectors[7]; + outSignals[4].output = &enginePins.injectors[8]; + outSignals[5].output = &enginePins.injectors[9]; + outSignals[6].output = &enginePins.injectors[10]; + outSignals[7].output = &enginePins.injectors[11]; /** * this would schedule a callback in 2ms from now diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index d2fb574f8d..5199e6d239 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -411,10 +411,11 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_ boardConfiguration->injectionPins[11] = GPIO_UNASSIGNED; boardConfiguration->injectionPinMode = OM_DEFAULT; - boardConfiguration->ignitionPins[0] = GPIOC_7; - boardConfiguration->ignitionPins[1] = GPIOE_4; // todo: update this value - boardConfiguration->ignitionPins[2] = GPIOE_0; // todo: update this value - boardConfiguration->ignitionPins[3] = GPIOE_1; // todo: update this value + + boardConfiguration->ignitionPins[0] = GPIO_UNASSIGNED; + boardConfiguration->ignitionPins[1] = GPIO_UNASSIGNED; + boardConfiguration->ignitionPins[2] = GPIO_UNASSIGNED; + boardConfiguration->ignitionPins[3] = GPIO_UNASSIGNED; boardConfiguration->ignitionPins[4] = GPIO_UNASSIGNED; boardConfiguration->ignitionPins[5] = GPIO_UNASSIGNED; boardConfiguration->ignitionPins[6] = GPIO_UNASSIGNED;