From 9a8c2516ee9acaf720d8e8b3f0ccef3d2f4a42f9 Mon Sep 17 00:00:00 2001 From: slowriot Date: Sat, 6 Mar 2021 00:28:17 +0000 Subject: [PATCH] Add two new V8 firing orders (#2423) * fix typos, spelling * add two V8 firing orders * use the available number of CPU cores, not just 4 * add new firing orders to config * updating generated files to include new v8 firing orders * reverting update of auto-generated files * correct firing order labels for new firing orders --- firmware/clean_compile_two_versions.sh | 4 ++-- firmware/controllers/algo/firing_order.h | 4 +++- firmware/controllers/math/engine_math.cpp | 9 +++++++++ firmware/integration/rusefi_config.txt | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/firmware/clean_compile_two_versions.sh b/firmware/clean_compile_two_versions.sh index af168a94e0..04da7154c8 100755 --- a/firmware/clean_compile_two_versions.sh +++ b/firmware/clean_compile_two_versions.sh @@ -10,7 +10,7 @@ mkdir deliver #echo "TIMESTAMP $(date "+%D %T.%2N")" #EXTRA_PARAMS="-DDUMMY -DFIRMWARE_ID=\\\"default_no_assert\\\" -DEFI_ENABLE_ASSERTS=FALSE -DCH_DBG_ENABLE_ASSERTS=FALSE -DCH_DBG_ENABLE_STACK_CHECK=FALSE -DCH_DBG_FILL_THREADS=FALSE -DCH_DBG_THREADS_PROFILING=FALSE" -#make -j4 DEBUG_LEVEL_OPT='-O2' +#make -j$(nproc) DEBUG_LEVEL_OPT='-O2' #EXTRA_PARAMS="" # mv build/rusefi.elf deliver/rusefi_no_asserts.elf @@ -25,7 +25,7 @@ mkdir deliver bash clean.sh echo "TIMESTAMP $(date "+%D %T.%2N")" EXTRA_PARAMS="-DDUMMY -DFIRMWARE_ID=\\\"default\\\"" -make -j4 +make -j$(nproc) EXTRA_PARAMS="" mv build/rusefi.elf deliver/rusefi.elf diff --git a/firmware/controllers/algo/firing_order.h b/firmware/controllers/algo/firing_order.h index 51fe262d27..156cd04079 100644 --- a/firmware/controllers/algo/firing_order.h +++ b/firmware/controllers/algo/firing_order.h @@ -44,6 +44,8 @@ typedef enum { FO_1_5_4_2_6_3_7_8 = 12, FO_1_2_7_8_4_5_6_3 = 19, FO_1_3_7_2_6_5_4_8 = 20, // Ford 5.0 HO and 351W + FO_1_2_3_4_5_6_7_8 = 25, // linearly incrementing, for V8 testing + FO_1_5_4_8_6_3_7_2 = 26, // Audi 4.2 40v V8 // 9 cylinder - for instance radial :) // PS: Matt says that 9cyl is actually 1-3-5-7-9-2-4-6-8 or 1-8-6-4-2-9-7-5-3 for reverse rotation @@ -63,7 +65,7 @@ typedef enum { // unfortunately not supported by default firmware because INJECTION_PIN_COUNT=IGNITION_PIN_COUNT=12 by default FO_1_14_9_4_7_12_15_6_13_8_3_16_11_2_5_10 = 22, // WR16 - // max used = 24 + // max used = 26 Force_4b_firing_order = ENUM_32_BITS, } firing_order_e; diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index 7b8d55da5c..7e73d99c4a 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -158,6 +158,8 @@ static const int order_1_8_7_2_6_5_4_3[] = { 1, 8, 7, 2, 6, 5, 4, 3 }; static const int order_1_5_4_2_6_3_7_8[] = { 1, 5, 4, 2, 6, 3, 7, 8 }; static const int order_1_2_7_8_4_5_6_3[] = { 1, 2, 7, 8, 4, 5, 6, 3 }; static const int order_1_3_7_2_6_5_4_8[] = { 1, 3, 7, 2, 6, 5, 4, 8 }; +static const int order_1_2_3_4_5_6_7_8[] = { 1, 2, 3, 4, 5, 6, 7, 8 }; +static const int order_1_5_4_8_6_3_7_2[] = { 1, 5, 4, 8, 6, 3, 7, 2 }; // 9 cylinder static const int order_1_2_3_4_5_6_7_8_9[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; @@ -209,6 +211,8 @@ static int getFiringOrderLength(DECLARE_ENGINE_PARAMETER_SIGNATURE) { case FO_1_5_4_2_6_3_7_8: case FO_1_2_7_8_4_5_6_3: case FO_1_3_7_2_6_5_4_8: + case FO_1_2_3_4_5_6_7_8: + case FO_1_5_4_8_6_3_7_2: return 8; // 9 cylinder radial @@ -305,7 +309,12 @@ int getCylinderId(int index DECLARE_ENGINE_PARAMETER_SUFFIX) { return order_1_2_7_8_4_5_6_3[index]; case FO_1_3_7_2_6_5_4_8: return order_1_3_7_2_6_5_4_8[index]; + case FO_1_2_3_4_5_6_7_8: + return order_1_2_3_4_5_6_7_8[index]; + case FO_1_5_4_8_6_3_7_2: + return order_1_5_4_8_6_3_7_2[index]; +// 9 cylinder case FO_1_2_3_4_5_6_7_8_9: return order_1_2_3_4_5_6_7_8_9[index]; diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 9a2318ab7e..7b81593fa2 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -575,7 +575,7 @@ cylinders_count_t cylindersCount; ! FO_1_8_4_3_6_5_7_2 = 5 ! FO_1_2_4_5_3 = 6 -custom firing_order_e 4 bits, U32, @OFFSET@, [0:4], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1_2_3_4_5_6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "INVALID", "INVALID" +custom firing_order_e 4 bits, U32, @OFFSET@, [0:4], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1-2-3-4-5-6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "1-10-9-4-3-6-5-8-7_2", "1-7-5-11-3-9-6-12-2-8-4-10", "1-7-4-10-2-8-6-12-3-9-5-11", "1-4-3-2", "1-12-5-8-3-10-6-7-2-11-4-9", "1-2-7-8-4-5-6-3", "1-3-7-2-6-5-4-8", "1-2-3-4-5-6-7-8-9", "INVALID", "1-2-3-4-5-6-7-8-9-10-11-12", "1-3-2", "1-2-3-4-5-6-7-8", "1-5-4-8-6-3-7-2" firing_order_e firingOrder; end_struct