diff --git a/firmware/config/engines/GY6_139QMB.cpp b/firmware/config/engines/GY6_139QMB.cpp index e0fef8ea49..d637d56fe1 100644 --- a/firmware/config/engines/GY6_139QMB.cpp +++ b/firmware/config/engines/GY6_139QMB.cpp @@ -9,25 +9,33 @@ #include "main.h" #include "GY6_139QMB.h" +#include "engine_math.h" + +void setGy6139qmbDefaultEngineConfiguration( + engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; -void setGy6139qmbDefaultEngineConfiguration(engine_configuration_s *engineConfiguration) { engineConfiguration->rpmHardLimit = 9000; - engineConfiguration->cranking.rpm = 800; + engineConfiguration->cranking.rpm = 1100; engineConfiguration->analogInputDividerCoefficient = 1.52; engineConfiguration->algorithm = LM_MAP; - engineConfiguration->globalTriggerAngleOffset = 15; + engineConfiguration->globalTriggerAngleOffset = 45; engineConfiguration->bc.analogChartMode = AC_MAP; + engineConfiguration->specs.displacement = 0.072; // 72cc engineConfiguration->cylindersCount = 1; setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); engineConfiguration->firingOrder = FO_ONE_CYLINDER; /** - * We treat the trigger as 1/0 toothed wheel + * We treat the trigger as 8-1 toothed wheel */ engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; - engineConfiguration->trigger.customTotalToothCount = 1; - engineConfiguration->trigger.customSkippedToothCount = 0; - engineConfiguration->trigger.customIsSynchronizationNeeded = false; + engineConfiguration->trigger.customTotalToothCount = 8; + engineConfiguration->trigger.customSkippedToothCount = 1; + engineConfiguration->trigger.customIsSynchronizationNeeded = true; engineConfiguration->trigger.customNeedSecondTriggerInput = false; + + boardConfiguration->injectionPins[0] = GPIOC_9; + boardConfiguration->ignitionPins[0] = GPIOC_8; } diff --git a/firmware/config/engines/MiniCooperR50.cpp b/firmware/config/engines/MiniCooperR50.cpp index 96ce89d385..f5b6bfb243 100644 --- a/firmware/config/engines/MiniCooperR50.cpp +++ b/firmware/config/engines/MiniCooperR50.cpp @@ -9,7 +9,7 @@ #include "MiniCooperR50.h" -void setMiniCooperR50(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void setMiniCooperR50(engine_configuration_s *engineConfiguration) { engineConfiguration->trigger.type = TT_MINI_COOPER_R50; } diff --git a/firmware/config/engines/MiniCooperR50.h b/firmware/config/engines/MiniCooperR50.h index 976c85b75f..52366e67ed 100644 --- a/firmware/config/engines/MiniCooperR50.h +++ b/firmware/config/engines/MiniCooperR50.h @@ -11,6 +11,6 @@ #include "main.h" #include "engine_configuration.h" -void setMiniCooperR50(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); +void setMiniCooperR50(engine_configuration_s *engineConfiguration); #endif /* MINICOOPERR50_H_ */ diff --git a/firmware/config/engines/citroenBerlingoTU3JP.cpp b/firmware/config/engines/citroenBerlingoTU3JP.cpp index 9336aa93a6..621a3c597b 100644 --- a/firmware/config/engines/citroenBerlingoTU3JP.cpp +++ b/firmware/config/engines/citroenBerlingoTU3JP.cpp @@ -54,7 +54,9 @@ static const ignition_table_t tps_advance_table = { }; -void setCitroenBerlingoTU3JPConfiguration(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void setCitroenBerlingoTU3JPConfiguration(engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; + engineConfiguration->engineType = CITROEN_TU3JP; /** diff --git a/firmware/config/engines/citroenBerlingoTU3JP.h b/firmware/config/engines/citroenBerlingoTU3JP.h index c43ef860e3..21ad5620e4 100644 --- a/firmware/config/engines/citroenBerlingoTU3JP.h +++ b/firmware/config/engines/citroenBerlingoTU3JP.h @@ -10,6 +10,6 @@ #include "engine_configuration.h" -void setCitroenBerlingoTU3JPConfiguration(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); +void setCitroenBerlingoTU3JPConfiguration(engine_configuration_s *engineConfiguration); #endif /* CITROENBERLINGOTU3JP_H_ */ diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index bd6609bfc3..f75abb3535 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -198,7 +198,9 @@ static void common079721_2351(engine_configuration_s *engineConfiguration, board } -void setMiata1990(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void setMiata1990(engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; + common079721_2351(engineConfiguration, boardConfiguration); commonMiataNa(engineConfiguration, boardConfiguration); @@ -402,7 +404,8 @@ static void setMiata1994_common(engine_configuration_s *engineConfiguration, * Frankenso board * set_engine_type 20 */ -void setMiata1994_d(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void setMiata1994_d(engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; setMiata1994_common(engineConfiguration, boardConfiguration); engineConfiguration->vbattDividerCoeff = ((float) (8.2 + 33)) / 8.2 * 2; /** @@ -417,7 +420,8 @@ void setMiata1994_d(engine_configuration_s *engineConfiguration, board_configura boardConfiguration->idleValvePin = GPIO_UNASSIGNED; } -void setMiata1994_s(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void setMiata1994_s(engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; setMiata1994_common(engineConfiguration, boardConfiguration); engineConfiguration->vbattDividerCoeff = ((float) (10.0 + 33)) / 10 * 2; @@ -459,7 +463,8 @@ void setMiata1994_s(engine_configuration_s *engineConfiguration, board_configura /** * Tom tomiata, Frankenstein board */ -void setMiata1996(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration) { +void setMiata1996(engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; commonMiataNa(engineConfiguration, boardConfiguration); engineConfiguration->specs.displacement = 1.839; diff --git a/firmware/config/engines/mazda_miata.h b/firmware/config/engines/mazda_miata.h index d9cc7e73c8..ebd6a80f92 100644 --- a/firmware/config/engines/mazda_miata.h +++ b/firmware/config/engines/mazda_miata.h @@ -15,9 +15,9 @@ #include "engine_configuration.h" void setFordEscortGt(engine_configuration_s *engineConfiguration); -void setMiata1990(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); -void setMiata1994_d(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); -void setMiata1994_s(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); -void setMiata1996(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); +void setMiata1990(engine_configuration_s *engineConfiguration); +void setMiata1994_d(engine_configuration_s *engineConfiguration); +void setMiata1994_s(engine_configuration_s *engineConfiguration); +void setMiata1996(engine_configuration_s *engineConfiguration); #endif /* MAZDA_MIATA_H_ */ diff --git a/firmware/config/engines/mazda_miata_nb.cpp b/firmware/config/engines/mazda_miata_nb.cpp index 84cd3dae3e..79c3769b8e 100644 --- a/firmware/config/engines/mazda_miata_nb.cpp +++ b/firmware/config/engines/mazda_miata_nb.cpp @@ -10,8 +10,8 @@ #include "mazda_miata_nb.h" #include "thermistors.h" -void setMazdaMiataNbEngineConfiguration(engine_configuration_s *engineConfiguration, - board_configuration_s *boardConfiguration) { +void setMazdaMiataNbEngineConfiguration(engine_configuration_s *engineConfiguration) { + board_configuration_s *boardConfiguration = &engineConfiguration->bc; // set_rpm_hard_limit 3000 engineConfiguration->rpmHardLimit = 3000; // yes, 3k. let's play it safe for now diff --git a/firmware/config/engines/mazda_miata_nb.h b/firmware/config/engines/mazda_miata_nb.h index 200dfff467..19e852eab6 100644 --- a/firmware/config/engines/mazda_miata_nb.h +++ b/firmware/config/engines/mazda_miata_nb.h @@ -11,6 +11,6 @@ #include "main.h" #include "engine_configuration.h" -void setMazdaMiataNbEngineConfiguration(engine_configuration_s *engineConfiguration, board_configuration_s *boardConfiguration); +void setMazdaMiataNbEngineConfiguration(engine_configuration_s *engineConfiguration); #endif /* MAZDA_MIATA_NB_H_ */ diff --git a/firmware/config/engines/rover_v8.cpp b/firmware/config/engines/rover_v8.cpp index 279c5e5402..8a9bbbdf25 100644 --- a/firmware/config/engines/rover_v8.cpp +++ b/firmware/config/engines/rover_v8.cpp @@ -23,7 +23,8 @@ 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 = &engineConfiguration->bc; setOperationMode(engineConfiguration, FOUR_STROKE_CRANK_SENSOR); engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_36_1; diff --git a/firmware/config/engines/rover_v8.h b/firmware/config/engines/rover_v8.h index c060633b32..6a1fcbd280 100644 --- a/firmware/config/engines/rover_v8.h +++ b/firmware/config/engines/rover_v8.h @@ -10,7 +10,6 @@ #include "engine_configuration.h" void setFrankenstein_01_LCD(board_configuration_s *boardConfiguration); -void setRoverv8(engine_configuration_s *engineConfiguration, - board_configuration_s *boardConfiguration); +void setRoverv8(engine_configuration_s *engineConfiguration); #endif /* ROVER_V8_H_ */ diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 0b02a31094..b2d6f8cb39 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -592,7 +592,7 @@ void resetConfigurationExt(Logging * logger, engine_type_e engineType, Engine *e setGy6139qmbDefaultEngineConfiguration(engineConfiguration); break; case MAZDA_MIATA_NB: - setMazdaMiataNbEngineConfiguration(engineConfiguration, boardConfiguration); + setMazdaMiataNbEngineConfiguration(engineConfiguration); break; case MAZDA_323: setMazda323EngineConfiguration(engineConfiguration); @@ -604,28 +604,28 @@ void resetConfigurationExt(Logging * logger, engine_type_e engineType, Engine *e setSaturnIonEngineConfiguration(engineConfiguration); break; case MINI_COOPER_R50: - setMiniCooperR50(engineConfiguration, boardConfiguration); + setMiniCooperR50(engineConfiguration); break; case FORD_ESCORT_GT: setFordEscortGt(engineConfiguration); break; case MIATA_1990: - setMiata1990(engineConfiguration, boardConfiguration); + setMiata1990(engineConfiguration); break; case MIATA_1994_DEVIATOR: - setMiata1994_d(engineConfiguration, boardConfiguration); + setMiata1994_d(engineConfiguration); break; case MIATA_1994_SPAGS: - setMiata1994_s(engineConfiguration, boardConfiguration); + setMiata1994_s(engineConfiguration); break; case MIATA_1996: - setMiata1996(engineConfiguration, boardConfiguration); + setMiata1996(engineConfiguration); break; case CITROEN_TU3JP: - setCitroenBerlingoTU3JPConfiguration(engineConfiguration, boardConfiguration); + setCitroenBerlingoTU3JPConfiguration(engineConfiguration); break; case ROVER_V8: - setRoverv8(engineConfiguration, boardConfiguration); + setRoverv8(engineConfiguration); break; case SUBARU_2003_WRX: setSubaru2003Wrx(engineConfiguration); diff --git a/firmware/temp.bat b/firmware/temp.bat new file mode 100644 index 0000000000..afce8f872e --- /dev/null +++ b/firmware/temp.bat @@ -0,0 +1,10 @@ + +rem this is about programming stm32 directly - i.e. without ST Link/SWD or anything. +rem you need this if you've burned your st-link or if you have naked stm32 chip soldered somewhere + + +arm-none-eabi-objcopy -O binary rusefi.elf rusefi.dfu + + + +rem dfu-util-static.exe -a 0 -D fm_rusefi.dfu \ No newline at end of file diff --git a/unit_tests/main.cpp b/unit_tests/main.cpp index 46dc8aec4b..647f2763a6 100644 --- a/unit_tests/main.cpp +++ b/unit_tests/main.cpp @@ -144,7 +144,7 @@ int main(void) { testMenuTree(); // resizeMap(); - printf("Success 20150127\r\n"); + printf("Success 20150207\r\n"); return EXIT_SUCCESS; } diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index db8176a481..21cb4b7ef2 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -313,32 +313,6 @@ static void testTriggerDecoder3(const char *msg, engine_type_e type, int synchPo printGapRatio = false; } -void testGY6_139QMB(void) { - printf("*************************************************** testGY6_139QMB\r\n"); - - EngineTestHelper eth(GY6_139QMB); - engine_configuration_s *ec = eth.ec; - Engine *engine = ð.engine; - engine_configuration_s *engineConfiguration = ec; - - TriggerState state; - assertFalseM("shaft_is_synchronized", state.shaft_is_synchronized); - - TriggerShape * shape = ð.engine.triggerShape; - - assertFalseM("shaft_is_synchronized", state.shaft_is_synchronized); - assertEquals(0, state.getCurrentIndex()); - - int now = 0; - state.decodeTriggerEvent(SHAFT_PRIMARY_UP, now++ PASS_ENGINE_PARAMETER); - assertTrueM("shaft_is_synchronized", state.shaft_is_synchronized); - assertEquals(0, state.getCurrentIndex()); - - state.decodeTriggerEvent(SHAFT_PRIMARY_DOWN, now++ PASS_ENGINE_PARAMETER); - assertTrueM("shaft_is_synchronized", state.shaft_is_synchronized); - assertEquals(1, state.getCurrentIndex()); -} - extern EventQueue schedulingQueue; extern int mockTps; @@ -517,7 +491,8 @@ void testTriggerDecoder(void) { test1995FordInline6TriggerDecoder(); testMazdaMianaNbDecoder(); - testGY6_139QMB(); + testTriggerDecoder2("testGY6_139QMB", GY6_139QMB, 0, 0.4375, 0.0); + testTriggerDecoder2("testFordEscortGt", FORD_ESCORT_GT, 0, 0.8096, 0.3844); testTriggerDecoder2("testMiniCooper", MINI_COOPER_R50, 121, 0.5222, 0.4959); testTriggerDecoder2("testRoverV8", ROVER_V8, 0, 0.4861, 0);