Merge remote-tracking branch 'origin/master' into master

This commit is contained in:
rusefi 2020-12-04 21:52:22 -05:00
commit 07a8e237a5
102 changed files with 1722 additions and 620 deletions

View File

@ -27,7 +27,15 @@ All notable user-facing or behavior-altering changes will be documented in this
## XXX 202X Release
### Added
- DAIHATSU 3/4 cylinder trigger https://rusefi.com/images/triggers/trigger_6.png
- Ford ST170 VVT cam trigger https://rusefi.com/images/triggers/trigger_42.png
## December 2020 National Mutt Day
### Fixed
- minor bugfix - engine sniffer missing pin names #1995
## November 2020 Release - "Black Friday"
### Breaking Changes
@ -41,7 +49,7 @@ All notable user-facing or behavior-altering changes will be documented in this
- Improved setting ECU presets/defaults from TunerStudio
### Fixed
- Improved TunerStudio protocol reliability - should see fewer CRC errors now
- Improved TunerStudio protocol reliability - should see fewer CRC errors now #1943
## October 2020 Release - "Sausage Pizza Day"

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "rusefi_enums.h"
#include "rusefi_hw_enums.h"
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 29 03:50:35 UTC 2020
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Fri Dec 04 00:17:48 EST 2020
// see also gen_config_and_enums.bat
@ -1337,6 +1337,10 @@ case TT_3_1_CAM:
return "TT_3_1_CAM";
case TT_60_2_VW:
return "TT_60_2_VW";
case TT_CHRYSLER_NGC_36_2_2:
return "TT_CHRYSLER_NGC_36_2_2";
case TT_DAIHATSU:
return "TT_DAIHATSU";
case TT_DODGE_NEON_1995:
return "TT_DODGE_NEON_1995";
case TT_DODGE_NEON_1995_ONLY_CRANK:
@ -1353,6 +1357,8 @@ case TT_FIAT_IAW_P8:
return "TT_FIAT_IAW_P8";
case TT_FORD_ASPIRE:
return "TT_FORD_ASPIRE";
case TT_FORD_ST170:
return "TT_FORD_ST170";
case TT_GM_7X:
return "TT_GM_7X";
case TT_GM_LS_24:
@ -1369,8 +1375,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
return "TT_HONDA_ACCORD_1_24_SHIFTED";
case TT_HONDA_CBR_600:
return "TT_HONDA_CBR_600";
case TT_HONDA_CBR_600_CUSTOM:
return "TT_HONDA_CBR_600_CUSTOM";
case TT_HONDA_K_12_1:
return "TT_HONDA_K_12_1";
case TT_JEEP_18_2_2_2:
@ -1387,12 +1391,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
return "TT_MAZDA_MIATA_VVT_TEST";
case TT_MAZDA_SOHC_4:
return "TT_MAZDA_SOHC_4";
case TT_MAZDA_Z5:
return "TT_MAZDA_Z5";
case TT_MIATA_VVT:
return "TT_MIATA_VVT";
case TT_MINI_COOPER_R50:
return "TT_MINI_COOPER_R50";
case TT_MITSUBISHI:
return "TT_MITSUBISHI";
case TT_NISSAN_SR20VE:
@ -1494,6 +1494,8 @@ case VVT_BOSCH_QUICK_START:
return "VVT_BOSCH_QUICK_START";
case VVT_FIRST_HALF:
return "VVT_FIRST_HALF";
case VVT_FORD_ST170:
return "VVT_FORD_ST170";
case VVT_INACTIVE:
return "VVT_INACTIVE";
case VVT_SECOND_HALF:

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:22:10 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:43 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
bool fuelClosedLoopCorrectionEnabled : 1;
/**
* Print details into rusEfi console
* enable verbose_idle
offset 1464 bit 2 */
bool isVerboseIAC : 1;
/**
@ -3777,4 +3778,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:22:10 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:43 UTC 2020

View File

@ -373,7 +373,7 @@
#define ENGINE_MAKE_VAG "VAG"
#define ENGINE_NOISE_CURVE_SIZE 8
#define ENGINE_SNIFFER_UNIT_US 10
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MIATA_1994_DEVIATOR", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
#define engineChartSize_offset 1480
#define engineCode_offset 1128
#define engineConfiguration_offset 0
@ -1212,8 +1212,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD hellen_cypress
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 3486056747
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3827438289
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1410,7 +1410,7 @@
#define TRIGGER_SIMULATOR_PIN_COUNT 3
#define trigger_todoRemoveMeOneDay0_offset 528
#define trigger_todoRemoveMeOneDay1_offset 528
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_MINI_COOPER_R50", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_HONDA_CBR_600_CUSTOM", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_MAZDA_Z5", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
#define trigger_type_offset 524
#define trigger_unusedBit_4_10_offset 528
@ -1492,7 +1492,7 @@
#define TS_ONLINE_PROTOCOL_char z
#define TS_OUTPUT_COMMAND 'O'
#define TS_OUTPUT_COMMAND_char O
#define TS_OUTPUT_SIZE 288
#define TS_OUTPUT_SIZE 340
#define TS_PAGE_COMMAND 'P'
#define TS_PAGE_COMMAND_char P
#define TS_PERF_TRACE_BEGIN '_'
@ -1543,16 +1543,46 @@
#define ts_show_spi true
#define ts_show_trigger_comparator false
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.11.29.hellen_cypress.3486056747"
#define TS_SIGNATURE "rusEFI 2020.12.04.hellen_cypress.3827438289"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define TS_SINGLE_WRITE_COMMAND_char W
#define TS_TEST_COMMAND 't' // 0x74
#define TT_TT_1_16 50
#define TT_TT_2JZ_1_12 29
#define TT_TT_2JZ_3_34 25
#define TT_TT_36_2_2_2 23
#define TT_TT_3_1_CAM 31
#define TT_TT_60_2_VW 20
#define TT_TT_CHRYSLER_NGC_36_2_2 30
#define TT_TT_DAIHATSU 6
#define TT_TT_FORD_ASPIRE 1
#define TT_TT_FORD_ST170 42
#define TT_TT_GM_7X 5
#define TT_TT_GM_LS_24 27
#define TT_TT_HONDA_1_24 21
#define TT_TT_HONDA_1_4_24 13
#define TT_TT_HONDA_4_24_1 10
#define TT_TT_HONDA_CBR_600 28
#define TT_TT_HONDA_K_12_1 46
#define TT_TT_JEEP_18_2_2_2 37
#define TT_TT_JEEP_4_CYL 40
#define TT_TT_MAZDA_DOHC_1_4 15
#define TT_TT_MAZDA_MIATA_NA 3
#define TT_TT_MAZDA_MIATA_NB1 4
#define TT_TT_MAZDA_SOHC_4 7
#define TT_TT_MIATA_VVT 33
#define TT_TT_ONE 18
#define TT_TT_RENIX_44_2_2 44
#define TT_TT_RENIX_66_2_2_2 45
#define TT_TT_ROVER_K 26
#define TT_TT_SUBARU_7_6 36
#define TT_TT_SUBARU_SVX 49
#define TT_TT_TOOTHED_WHEEL 0
#define TT_TT_TOOTHED_WHEEL_36_1 9
#define TT_TT_TOOTHED_WHEEL_36_2 48
#define TT_TT_TOOTHED_WHEEL_60_2 8
#define TT_TT_VVT_BOSCH_QUICK_START 47
#define TT_TT_VVT_JZ 17
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476
#define twoWireBatchInjection_offset 1476
@ -1691,7 +1721,7 @@
#define veTable_offset 17440
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
#define vRefAdcChannel_offset 1470
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1"
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1", "VVT_FORD_ST170"
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
#define vvtCamSensorUseRise_offset 744
#define vvtMode_offset 2328

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "rusefi_enums.h"
#include "rusefi_hw_enums.h"
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 29 03:50:34 UTC 2020
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Fri Dec 04 00:17:47 EST 2020
// see also gen_config_and_enums.bat
@ -1133,6 +1133,10 @@ case TT_3_1_CAM:
return "TT_3_1_CAM";
case TT_60_2_VW:
return "TT_60_2_VW";
case TT_CHRYSLER_NGC_36_2_2:
return "TT_CHRYSLER_NGC_36_2_2";
case TT_DAIHATSU:
return "TT_DAIHATSU";
case TT_DODGE_NEON_1995:
return "TT_DODGE_NEON_1995";
case TT_DODGE_NEON_1995_ONLY_CRANK:
@ -1149,6 +1153,8 @@ case TT_FIAT_IAW_P8:
return "TT_FIAT_IAW_P8";
case TT_FORD_ASPIRE:
return "TT_FORD_ASPIRE";
case TT_FORD_ST170:
return "TT_FORD_ST170";
case TT_GM_7X:
return "TT_GM_7X";
case TT_GM_LS_24:
@ -1165,8 +1171,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
return "TT_HONDA_ACCORD_1_24_SHIFTED";
case TT_HONDA_CBR_600:
return "TT_HONDA_CBR_600";
case TT_HONDA_CBR_600_CUSTOM:
return "TT_HONDA_CBR_600_CUSTOM";
case TT_HONDA_K_12_1:
return "TT_HONDA_K_12_1";
case TT_JEEP_18_2_2_2:
@ -1183,12 +1187,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
return "TT_MAZDA_MIATA_VVT_TEST";
case TT_MAZDA_SOHC_4:
return "TT_MAZDA_SOHC_4";
case TT_MAZDA_Z5:
return "TT_MAZDA_Z5";
case TT_MIATA_VVT:
return "TT_MIATA_VVT";
case TT_MINI_COOPER_R50:
return "TT_MINI_COOPER_R50";
case TT_MITSUBISHI:
return "TT_MITSUBISHI";
case TT_NISSAN_SR20VE:
@ -1290,6 +1290,8 @@ case VVT_BOSCH_QUICK_START:
return "VVT_BOSCH_QUICK_START";
case VVT_FIRST_HALF:
return "VVT_FIRST_HALF";
case VVT_FORD_ST170:
return "VVT_FORD_ST170";
case VVT_INACTIVE:
return "VVT_INACTIVE";
case VVT_SECOND_HALF:

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:22:08 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:41 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
bool fuelClosedLoopCorrectionEnabled : 1;
/**
* Print details into rusEfi console
* enable verbose_idle
offset 1464 bit 2 */
bool isVerboseIAC : 1;
/**
@ -3777,4 +3778,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:22:08 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:41 UTC 2020

View File

@ -373,7 +373,7 @@
#define ENGINE_MAKE_VAG "VAG"
#define ENGINE_NOISE_CURVE_SIZE 8
#define ENGINE_SNIFFER_UNIT_US 10
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MIATA_1994_DEVIATOR", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
#define engineChartSize_offset 1480
#define engineCode_offset 1128
#define engineConfiguration_offset 0
@ -1212,8 +1212,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 2664774609
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3040749611
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1410,7 +1410,7 @@
#define TRIGGER_SIMULATOR_PIN_COUNT 3
#define trigger_todoRemoveMeOneDay0_offset 528
#define trigger_todoRemoveMeOneDay1_offset 528
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_MINI_COOPER_R50", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_HONDA_CBR_600_CUSTOM", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_MAZDA_Z5", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
#define trigger_type_offset 524
#define trigger_unusedBit_4_10_offset 528
@ -1492,7 +1492,7 @@
#define TS_ONLINE_PROTOCOL_char z
#define TS_OUTPUT_COMMAND 'O'
#define TS_OUTPUT_COMMAND_char O
#define TS_OUTPUT_SIZE 288
#define TS_OUTPUT_SIZE 340
#define TS_PAGE_COMMAND 'P'
#define TS_PAGE_COMMAND_char P
#define TS_PERF_TRACE_BEGIN '_'
@ -1543,16 +1543,46 @@
#define ts_show_spi true
#define ts_show_trigger_comparator true
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.11.29.kin.2664774609"
#define TS_SIGNATURE "rusEFI 2020.12.04.kin.3040749611"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define TS_SINGLE_WRITE_COMMAND_char W
#define TS_TEST_COMMAND 't' // 0x74
#define TT_TT_1_16 50
#define TT_TT_2JZ_1_12 29
#define TT_TT_2JZ_3_34 25
#define TT_TT_36_2_2_2 23
#define TT_TT_3_1_CAM 31
#define TT_TT_60_2_VW 20
#define TT_TT_CHRYSLER_NGC_36_2_2 30
#define TT_TT_DAIHATSU 6
#define TT_TT_FORD_ASPIRE 1
#define TT_TT_FORD_ST170 42
#define TT_TT_GM_7X 5
#define TT_TT_GM_LS_24 27
#define TT_TT_HONDA_1_24 21
#define TT_TT_HONDA_1_4_24 13
#define TT_TT_HONDA_4_24_1 10
#define TT_TT_HONDA_CBR_600 28
#define TT_TT_HONDA_K_12_1 46
#define TT_TT_JEEP_18_2_2_2 37
#define TT_TT_JEEP_4_CYL 40
#define TT_TT_MAZDA_DOHC_1_4 15
#define TT_TT_MAZDA_MIATA_NA 3
#define TT_TT_MAZDA_MIATA_NB1 4
#define TT_TT_MAZDA_SOHC_4 7
#define TT_TT_MIATA_VVT 33
#define TT_TT_ONE 18
#define TT_TT_RENIX_44_2_2 44
#define TT_TT_RENIX_66_2_2_2 45
#define TT_TT_ROVER_K 26
#define TT_TT_SUBARU_7_6 36
#define TT_TT_SUBARU_SVX 49
#define TT_TT_TOOTHED_WHEEL 0
#define TT_TT_TOOTHED_WHEEL_36_1 9
#define TT_TT_TOOTHED_WHEEL_36_2 48
#define TT_TT_TOOTHED_WHEEL_60_2 8
#define TT_TT_VVT_BOSCH_QUICK_START 47
#define TT_TT_VVT_JZ 17
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476
#define twoWireBatchInjection_offset 1476
@ -1691,7 +1721,7 @@
#define veTable_offset 17440
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
#define vRefAdcChannel_offset 1470
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1"
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1", "VVT_FORD_ST170"
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
#define vvtCamSensorUseRise_offset 744
#define vvtMode_offset 2328

View File

@ -47,7 +47,7 @@ static void setDefaultCustomMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->trigger.type = TT_HONDA_CBR_600_CUSTOM;
engineConfiguration->trigger.type = TT_HONDA_CBR_600;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
// upside down wiring

View File

@ -259,7 +259,6 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
engineConfiguration->isHip9011Enabled = false;
CONFIG(isSdCardEnabled) = false;
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
@ -372,6 +371,9 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
#endif /* BOARD_TLE8888_COUNT */
}
/**
* set engine_type 66
*/
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
@ -388,7 +390,7 @@ void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->useIacTableForCoasting = true;
engineConfiguration->idlePidDeactivationTpsThreshold = 90;
engineConfiguration->isVerboseIAC = true;
// engineConfiguration->isVerboseIAC = true;
engineConfiguration->idleRpmPid.pFactor = 0.01;
engineConfiguration->idleRpmPid.iFactor = 0.02;
@ -462,6 +464,11 @@ void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
setMiataNA6_MAP_MRE(PASS_CONFIG_PARAMETER_SIGNATURE);
#if (BOARD_TLE8888_COUNT > 0)
// "35 - GP Out 1"
engineConfiguration->fuelPumpPin = TLE8888_PIN_21;
#endif /* BOARD_TLE8888_COUNT */
engineConfiguration->injectionMode = IM_SEQUENTIAL;
engineConfiguration->specs.displacement = 1.8;
strcpy(CONFIG(engineMake), ENGINE_MAKE_MAZDA);

View File

@ -22,5 +22,7 @@ void miataNAcommon(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
/**
* set engine_type 20
*/
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);

View File

@ -15,6 +15,8 @@
#define EFI_LAUNCH_CONTROL TRUE
#define EFI_DYNO_VIEW TRUE
#define EFI_FSIO TRUE
#ifndef EFI_CDM_INTEGRATION

View File

@ -259,7 +259,9 @@ typedef struct {
scaled_lambda targetLambda; // 280
scaled_afr airFuelRatio; // 282
uint8_t unusedAtTheEnd[4]; // we have some unused bytes to allow compatible TS changes
scaled_ms VssAcceleration; //284
//288
uint8_t unusedAtTheEnd[54]; // we have some unused bytes to allow compatible TS changes
// Temporary - will remove soon
TsDebugChannels* getDebugChannels() {

View File

@ -62,6 +62,7 @@
#include "cdm_ion_sense.h"
#include "binary_logging.h"
#include "buffered_writer.h"
#include "dynoview.h"
extern bool main_loop_started;
@ -167,7 +168,7 @@ static LoggingWithStorage logger2("main event handler");
* Time when the firmware version was reported last time, in seconds
* TODO: implement a request/response instead of just constantly sending this out
*/
static systime_t timeOfPreviousPrintVersion = (systime_t) -1;
static systime_t timeOfPreviousPrintVersion = 0;
#if EFI_PROD_CODE
static void printOutPin(const char *pinName, brain_pin_e hwPin) {
@ -611,6 +612,10 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
tsOutputChannels->manifoldAirPressure = mapValue;
}
#if EFI_DYNO_VIEW
tsOutputChannels->VssAcceleration = getDynoviewAcceleration(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif
//tsOutputChannels->knockCount = engine->knockCount;
//tsOutputChannels->knockLevel = engine->knockVolts;

View File

@ -250,8 +250,9 @@ size_t getMultiSparkCount(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
floatus_t multiDelay = CONFIG(multisparkSparkDuration);
floatus_t multiDwell = CONFIG(multisparkDwell);
ENGINE(engineState.multispark.delay) = US2NT(multiDelay);
ENGINE(engineState.multispark.dwell) = US2NT(multiDwell);
// dwell times are below 10 seconds here so we use 32 bit type for performance reasons
ENGINE(engineState.multispark.delay) = (uint32_t)USF2NT(multiDelay);
ENGINE(engineState.multispark.dwell) = (uint32_t)USF2NT(multiDwell);
constexpr float usPerDegreeAt1Rpm = 60e6 / 360;
floatus_t usPerDegree = usPerDegreeAt1Rpm / rpm;

View File

@ -6,6 +6,7 @@ CONTROLLERS_ALGO_SRC_CPP = $(PROJECT_DIR)/controllers/algo/advance_map.cpp \
$(PROJECT_DIR)/controllers/algo/fuel_math.cpp \
$(PROJECT_DIR)/controllers/algo/accel_enrichment.cpp \
$(PROJECT_DIR)/controllers/algo/launch_control.cpp \
$(PROJECT_DIR)/controllers/algo/dynoview.cpp \
$(PROJECT_DIR)/controllers/algo/engine_configuration.cpp \
$(PROJECT_DIR)/controllers/algo/engine.cpp \
$(PROJECT_DIR)/controllers/algo/engine2.cpp \

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "rusefi_enums.h"
#include "rusefi_hw_enums.h"
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 29 03:50:34 UTC 2020
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Fri Dec 04 00:17:47 EST 2020
// see also gen_config_and_enums.bat
@ -1279,6 +1279,10 @@ case TT_3_1_CAM:
return "TT_3_1_CAM";
case TT_60_2_VW:
return "TT_60_2_VW";
case TT_CHRYSLER_NGC_36_2_2:
return "TT_CHRYSLER_NGC_36_2_2";
case TT_DAIHATSU:
return "TT_DAIHATSU";
case TT_DODGE_NEON_1995:
return "TT_DODGE_NEON_1995";
case TT_DODGE_NEON_1995_ONLY_CRANK:
@ -1295,6 +1299,8 @@ case TT_FIAT_IAW_P8:
return "TT_FIAT_IAW_P8";
case TT_FORD_ASPIRE:
return "TT_FORD_ASPIRE";
case TT_FORD_ST170:
return "TT_FORD_ST170";
case TT_GM_7X:
return "TT_GM_7X";
case TT_GM_LS_24:
@ -1311,8 +1317,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
return "TT_HONDA_ACCORD_1_24_SHIFTED";
case TT_HONDA_CBR_600:
return "TT_HONDA_CBR_600";
case TT_HONDA_CBR_600_CUSTOM:
return "TT_HONDA_CBR_600_CUSTOM";
case TT_HONDA_K_12_1:
return "TT_HONDA_K_12_1";
case TT_JEEP_18_2_2_2:
@ -1329,12 +1333,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
return "TT_MAZDA_MIATA_VVT_TEST";
case TT_MAZDA_SOHC_4:
return "TT_MAZDA_SOHC_4";
case TT_MAZDA_Z5:
return "TT_MAZDA_Z5";
case TT_MIATA_VVT:
return "TT_MIATA_VVT";
case TT_MINI_COOPER_R50:
return "TT_MINI_COOPER_R50";
case TT_MITSUBISHI:
return "TT_MITSUBISHI";
case TT_NISSAN_SR20VE:
@ -1436,6 +1436,8 @@ case VVT_BOSCH_QUICK_START:
return "VVT_BOSCH_QUICK_START";
case VVT_FIRST_HALF:
return "VVT_FIRST_HALF";
case VVT_FORD_ST170:
return "VVT_FORD_ST170";
case VVT_INACTIVE:
return "VVT_INACTIVE";
case VVT_SECOND_HALF:

View File

@ -0,0 +1,179 @@
/*
* @file dynoview.cpp
*
* @date Nov 29, 2020
* @author Alexandru Miculescu, (c) 2012-2020
*/
#include "engine.h"
#if EFI_DYNO_VIEW
#include "dynoview.h"
#include "vehicle_speed.h"
static Logging *logger;
#if EFI_TUNER_STUDIO
#include "tunerstudio_outputs.h"
extern TunerStudioOutputChannels tsOutputChannels;
#endif /* EFI_TUNER_STUDIO */
EXTERN_ENGINE;
DynoView dynoInstance;
void DynoView::update(vssSrc src) {
efitimeus_t timeNow, deltaTime = 0.0;
float speed,deltaSpeed = 0.0;
timeNow = getTimeNowUs();
speed = getVehicleSpeed();
if (src == ICU) {
speed = efiRound(speed,1.0);
} else {
//use speed with 0.001 precision from source CAN
speed = efiRound(speed,0.001);
}
if(timeStamp != 0) {
if (vss != speed) {
deltaTime = timeNow - timeStamp;
if (vss > speed) {
deltaSpeed = (vss - speed);
direction = 1; //decceleration
} else {
deltaSpeed = speed - vss;
direction = 0; //acceleration
}
//save data
timeStamp = timeNow;
vss = speed;
}
//updating here would display acceleration = 0 at constant speed
updateAcceleration(deltaTime, deltaSpeed);
#if EFI_TUNER_STUDIO
if (CONFIG(debugMode) == DBG_44) {
tsOutputChannels.debugIntField1 = deltaTime;
tsOutputChannels.debugFloatField1 = vss;
tsOutputChannels.debugFloatField2 = speed;
tsOutputChannels.debugFloatField3 = deltaSpeed;
tsOutputChannels.debugFloatField4 = acceleration;
}
#endif /* EFI_TUNER_STUDIO */
updateHP();
} else {
//ensure we grab init values
timeStamp = timeNow;
vss = speed;
}
}
/**
* input units: deltaSpeed in km/h
* deltaTime in uS
*/
void DynoView::updateAcceleration(efitimeus_t deltaTime, float deltaSpeed) {
if (deltaSpeed != 0.0) {
acceleration = ((deltaSpeed / 3.6) / (deltaTime / 1000000.0));
if (direction) {
//decceleration
acceleration *= -1;
}
} else {
acceleration = 0.0;
}
}
/**
* E = m*a
* ex. 900 (kg) * 1.5 (m/s^2) = 1350N
* P = F*V
* 1350N * 35(m/s) = 47250Watt (35 m/s is the final velocity)
* 47250 * (1HP/746W) = 63HP
* https://www.youtube.com/watch?v=FnN2asvFmIs
* we do not take resistence into account right now.
*/
void DynoView::updateHP() {
//these are actually at the wheel
//we would need final drive to calcualte the correct torque at the wheel
if (acceleration != 0) {
engineForce = CONFIG(vehicleWeight) * acceleration;
enginePower = engineForce * (vss / 3.6);
engineHP = enginePower / 746;
if (isValidRpm(GET_RPM())) {
engineTorque = ((engineHP * 5252) / GET_RPM());
}
} else {
//we should calculate static power
}
}
#if EFI_UNIT_TEST
void DynoView::setAcceleration(float a) {
acceleration = a;
}
#endif
float DynoView::getAcceleration() {
return acceleration;
}
int DynoView::getEngineForce() {
return engineForce;
}
int DynoView::getEnginePower() {
return (enginePower/1000);
}
int DynoView::getEngineHP() {
return engineHP;
}
int DynoView::getEngineTorque() {
return (engineTorque/0.73756);
}
float getDynoviewAcceleration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
return dynoInstance.getAcceleration();
}
int getDynoviewPower(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
return dynoInstance.getEnginePower();
}
/**
* Periodic update function called from SlowCallback.
* Only updates if we have Vss from input pin.
*/
void updateDynoView(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if ((CONFIG(vehicleSpeedSensorInputPin) != GPIO_UNASSIGNED) &&
(!CONFIG(enableCanVss))) {
dynoInstance.update(ICU);
}
}
/**
* This function is called after every CAN msg received, we process it
* as soon as we can to be more acurate.
*/
void updateDynoViewCan(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (!CONFIG(enableCanVss)) {
return;
}
dynoInstance.update(CAN);
}
void initDynoView(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
logger = sharedLogger;
}
#endif /* EFI_DYNO_VIEW */

View File

@ -0,0 +1,59 @@
/*
* @file dynoview.h
*
* @date Nov 29, 2020
* @author Alexandru Miculescu, (c) 2012-2020
*/
#pragma once
#include "engine_ptr.h"
class Logging;
void initDynoView(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void updateDynoView(DECLARE_ENGINE_PARAMETER_SIGNATURE);
void updateDynoViewCan(DECLARE_ENGINE_PARAMETER_SIGNATURE);
float getDynoviewAcceleration(DECLARE_ENGINE_PARAMETER_SIGNATURE);
int getDynoviewPower(DECLARE_ENGINE_PARAMETER_SIGNATURE);
typedef enum{
ICU = 0,
CAN,
}vssSrc;
class DynoView {
public:
DECLARE_ENGINE_PTR;
// Update the state of the launch control system
void update(vssSrc src);
void updateAcceleration(efitick_t deltaTime, float deltaSpeed);
void updateHP();
float getAcceleration();
int getEngineForce();
//in KW
int getEnginePower();
int getEngineHP();
//in NM
int getEngineTorque();
#if EFI_UNIT_TEST
void setAcceleration(float a);
#endif
private:
efitimeus_t timeStamp = 0;
//km/h unit
float vss = 0;
//m/s/s unit
float acceleration = 0;
//engine force in N
int engineForce;
//engine power in W
int enginePower;
//engine powerin HP
int engineHP;
//Torque in lb-ft
int engineTorque;
//sign
uint8_t direction;
};

View File

@ -31,6 +31,7 @@
#include "sensor.h"
#include "gppwm.h"
#include "tachometer.h"
#include "dynoview.h"
#if EFI_MC33816
#include "mc33816.h"
#endif // EFI_MC33816
@ -93,6 +94,8 @@ trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) {
return TT_ONE;
case VVT_4_1:
return TT_ONE;
case VVT_FORD_ST170:
return TT_FORD_ST170;
default:
return TT_ONE;
}
@ -207,6 +210,10 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
}
#endif
#if EFI_DYNO_VIEW
updateDynoView(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif
slowCallBackWasInvoked = true;
#if HW_CHECK_MODE

View File

@ -80,6 +80,7 @@ public:
explicit Engine(persistent_config_s *config);
Engine();
bool isPwmEnabled = true;
int triggerActivitySecond = 0;
IEtbController *etbControllers[ETB_COUNT] = {nullptr};
IFuelComputer *fuelComputer = nullptr;

View File

@ -18,6 +18,8 @@
#include "perf_trace.h"
#include "closed_loop_fuel.h"
#include "sensor.h"
#include "launch_control.h"
#if EFI_PROD_CODE
#include "svnversion.h"
@ -174,6 +176,11 @@ void EngineState::periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
float ignitionLoad = getIgnitionLoad(PASS_ENGINE_PARAMETER_SIGNATURE);
timingAdvance = getAdvance(rpm, ignitionLoad PASS_ENGINE_PARAMETER_SUFFIX);
multispark.count = getMultiSparkCount(rpm PASS_ENGINE_PARAMETER_SUFFIX);
#if EFI_LAUNCH_CONTROL
updateLaunchConditions(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif //EFI_LAUNCH_CONTROL
#endif // EFI_ENGINE_CONTROL
}

View File

@ -24,8 +24,11 @@
#include "engine_state.h"
#include "advance_map.h"
static bool isInit = false;
static Logging *logger;
LaunchControlBase launchInstance;
#if EFI_TUNER_STUDIO
#include "tunerstudio_outputs.h"
extern TunerStudioOutputChannels tsOutputChannels;
@ -33,22 +36,8 @@ extern TunerStudioOutputChannels tsOutputChannels;
EXTERN_ENGINE;
#define RETART_THD_CALC CONFIG(launchRpm) +\
(CONFIG(enableLaunchRetard) ? CONFIG(launchAdvanceRpmRange) : 0) +\
CONFIG(hardCutRpmRange)
static int retardThresholdRpm;
class LaunchControlImpl : public LaunchControlBase, public PeriodicTimerController {
int getPeriodMs() override {
return 50;
}
void PeriodicTask() {
update();
}
};
/**
* We can have active condition from switch or from clutch.
* In case we are dependent on VSS we just return true.
@ -90,7 +79,8 @@ bool LaunchControlBase::isInsideSwitchCondition() const {
*/
bool LaunchControlBase::isInsideSpeedCondition() const {
int speed = getVehicleSpeed();
return (CONFIG(launchSpeedTreshold) > speed) || !engineConfiguration->launchDisableBySpeed;
return (CONFIG(launchSpeedTreshold) > speed) || (!(CONFIG(launchActivationMode) == ALWAYS_ACTIVE_LAUNCH));
}
/**
@ -134,32 +124,41 @@ bool LaunchControlBase::isLaunchConditionMet(int rpm) const {
return speedCondition && activateSwitchCondition && rpmCondition && tpsCondition;
}
void updateLaunchConditions(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
launchInstance.update();
}
void LaunchControlBase::update() {
if (!CONFIG(launchControlEnabled)) {
return;
}
#if ! EFI_UNIT_TEST
if(!isInit) {
return;
}
#endif
int rpm = GET_RPM();
bool combinedConditions = isLaunchConditionMet(rpm);
float timeDelay = CONFIG(launchActivateDelay);
int cutRpmRange = CONFIG(hardCutRpmRange);
int launchAdvanceRpmRange = CONFIG(launchTimingRpmRange);
//recalculate in periodic task, this way we save time in applyLaunchControlLimiting
//and still recalculat in case user changed the values
retardThresholdRpm = RETART_THD_CALC;
retardThresholdRpm = CONFIG(launchRpm) + (CONFIG(enableLaunchRetard) ?
CONFIG(launchAdvanceRpmRange) : 0) + CONFIG(hardCutRpmRange);
if (!combinedConditions) {
// conditions not met, reset timer
launchTimer = getTimeNowNt();
m_launchTimer.reset();
engine->isLaunchCondition = false;
engine->setLaunchBoostDuty = false;
engine->applyLaunchControlRetard = false;
engine->applyLaunchExtraFuel = false;
} else {
// If conditions are met...
if ((getTimeNowNt() - launchTimer > MS2NT(timeDelay * 1000)) && combinedConditions) {
if (m_launchTimer.hasElapsedMs(timeDelay*1000) && combinedConditions) {
engine->isLaunchCondition = true; // ...enable launch!
engine->applyLaunchExtraFuel = true;
}
@ -181,8 +180,6 @@ void LaunchControlBase::update() {
#endif /* EFI_TUNER_STUDIO */
}
static LaunchControlImpl Launch;
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->launchRpm = 4000; // Rpm to trigger Launch condition
engineConfiguration->launchTimingRetard = 10; // retard in absolute degrees ATDC
@ -198,20 +195,21 @@ void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
engineConfiguration->enableLaunchBoost = true;
engineConfiguration->launchSmoothRetard = true; //interpolates the advance linear from launchrpm to fully retarded at launchtimingrpmrange
engineConfiguration->antiLagRpmTreshold = 3000;
}
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX) {
if (retardThresholdRpm < GET_RPM()) {
if (( engine->isLaunchCondition ) && ( retardThresholdRpm < GET_RPM() )) {
*limitedSpark = engineConfiguration->launchSparkCutEnable;
*limitedFuel = engineConfiguration->launchFuelCutEnable;
}
}
}
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
logger = sharedLogger;
retardThresholdRpm = RETART_THD_CALC;
Launch.Start();
INJECT_ENGINE_REFERENCE(&launchInstance);
isInit = true;
}
#endif /* EFI_LAUNCH_CONTROL */

View File

@ -8,11 +8,13 @@
#pragma once
#include "engine_ptr.h"
#include "timer.h"
class Logging;
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX);
void updateLaunchConditions(DECLARE_ENGINE_PARAMETER_SIGNATURE);
class LaunchControlBase {
public:
@ -25,9 +27,8 @@ public:
bool isInsideTpsCondition() const;
bool isInsideSwitchCondition() const;
bool isInsideRPMCondition(int rpm) const;
bool isLaunchConditionMet(int rpm) const;
private:
efitick_t launchTimer = 0;
Timer m_launchTimer;
};

View File

@ -214,20 +214,21 @@ typedef enum {
* @see http://rusefi.com/wiki/index.php?title=Manual:Software:Trigger
*/
typedef enum {
TT_TOOTHED_WHEEL = TT_TT_TOOTHED_WHEEL,
TT_FORD_ASPIRE = 1,
TT_FORD_ASPIRE = TT_TT_FORD_ASPIRE,
TT_DODGE_NEON_1995 = 2,
/**
* https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger#Mazda_Miata_NA
*/
TT_MAZDA_MIATA_NA = 3,
TT_MAZDA_MIATA_NA = TT_TT_MAZDA_MIATA_NA,
/**
* NB1 means non-VVT NB, 99 and 00 1.8 engine
*/
TT_MAZDA_MIATA_NB1 = 4,
TT_GM_7X = 5,
TT_MINI_COOPER_R50 = 6,
TT_MAZDA_SOHC_4 = 7,
TT_MAZDA_MIATA_NB1 = TT_TT_MAZDA_MIATA_NB1,
TT_GM_7X = TT_TT_GM_7X,
TT_MAZDA_SOHC_4 = TT_TT_MAZDA_SOHC_4,
TT_DAIHATSU = TT_TT_DAIHATSU,
/**
* "60/2"
* See also TT_ONE_PLUS_TOOTHED_WHEEL_60_2
@ -235,19 +236,21 @@ typedef enum {
TT_TOOTHED_WHEEL_60_2 = TT_TT_TOOTHED_WHEEL_60_2,
TT_TOOTHED_WHEEL_36_1 = TT_TT_TOOTHED_WHEEL_36_1,
TT_HONDA_4_24_1 = 10,
// todo: remove this weird trigger?
TT_HONDA_4_24_1 = TT_TT_HONDA_4_24_1,
// todo: this really looks to be same as Miata_NA shall we remove?
TT_MITSUBISHI = 11,
// this makes sense because mechanical spark distribution does not require synchronization
TT_HONDA_4_24 = 12,
TT_HONDA_1_4_24 = 13,
TT_HONDA_1_4_24 = TT_TT_HONDA_1_4_24,
// cam-based
TT_DODGE_NEON_2003_CAM = 14,
TT_MAZDA_DOHC_1_4 = 15,
TT_MAZDA_DOHC_1_4 = TT_TT_MAZDA_DOHC_1_4,
/**
* "1+1" - one tooth on primary channel, one tooth on secondary channel
@ -256,7 +259,7 @@ typedef enum {
*/
TT_ONE_PLUS_ONE = 16,
// "1+60/2"
TT_VVT_JZ = 17,
TT_VVT_JZ = TT_TT_VVT_JZ,
// just one channel with just one tooth
TT_ONE = TT_TT_ONE,
@ -266,11 +269,11 @@ typedef enum {
*/
TT_60_2_VW = TT_TT_60_2_VW,
TT_HONDA_1_24 = 21,
TT_HONDA_1_24 = TT_TT_HONDA_1_24,
TT_DODGE_STRATUS = 22,
TT_36_2_2_2 = 23,
TT_36_2_2_2 = TT_TT_36_2_2_2,
/**
* only the 4 tooth signal, without the 360 signal
@ -279,17 +282,17 @@ typedef enum {
*/
TT_NISSAN_SR20VE = 24,
TT_2JZ_3_34 = 25,
TT_2JZ_3_34 = TT_TT_2JZ_3_34,
TT_ROVER_K = 26,
TT_GM_LS_24 = 27,
TT_GM_LS_24 = TT_TT_GM_LS_24,
TT_HONDA_CBR_600 = 28,
TT_2JZ_1_12 = 29,
TT_2JZ_1_12 = TT_TT_2JZ_1_12,
TT_HONDA_CBR_600_CUSTOM = 30,
TT_CHRYSLER_NGC_36_2_2 = TT_TT_CHRYSLER_NGC_36_2_2,
// skipped 3/1 with cam sensor for testing
TT_3_1_CAM = 31,
@ -302,7 +305,7 @@ typedef enum {
* for VVT simulated trigger signal we have https://github.com/rusefi/rusefi/issues/566 gap
* See also TT_MAZDA_MIATA_VVT_TEST
*/
TT_MIATA_VVT = 33,
TT_MIATA_VVT = TT_TT_MIATA_VVT,
/**
* This is a different version of TT_HONDA_ACCORD_1_24
@ -315,10 +318,10 @@ typedef enum {
*/
TT_MAZDA_MIATA_VVT_TEST = 35,
TT_SUBARU_7_6 = 36,
TT_SUBARU_7_6 = TT_TT_SUBARU_7_6,
// this one is 6 cylinder, see TT_JEEP_4_cyl for 4 cylinders
TT_JEEP_18_2_2_2 = 37,
TT_JEEP_18_2_2_2 = TT_TT_JEEP_18_2_2_2,
/*
* See also TT_NISSAN_SR20VE
@ -328,33 +331,33 @@ typedef enum {
TT_DODGE_NEON_1995_ONLY_CRANK = 39,
// Jeep XJ 2500cc 4 cylinder. See also TT_JEEP_18_2_2_2 for 6 cylinders
TT_JEEP_4_CYL = 40,
TT_JEEP_4_CYL = TT_TT_JEEP_4_CYL,
// magneti marelli Fiat/Lancia IAW P8 from the 90', 2.0 16 v turbo engine - Lancia Coupe
// https://rusefi.com/forum/viewtopic.php?f=5&t=1440
TT_FIAT_IAW_P8 = 41,
TT_MAZDA_Z5 = 42,
TT_FORD_ST170 = TT_TT_FORD_ST170,
/**
* cam sensor of Mazda Miata NB2 - the VVT signal shape
*/
TT_VVT_MIATA_NB2 = 43,
TT_RENIX_44_2_2 = 44,
TT_RENIX_44_2_2 = TT_TT_RENIX_44_2_2,
/**
* Same as TT_RENIX_44_2_2 but repeated three times, not two.
*/
TT_RENIX_66_2_2_2 = 45,
TT_RENIX_66_2_2_2 = TT_TT_RENIX_66_2_2_2,
TT_HONDA_K_12_1 = 46,
TT_HONDA_K_12_1 = TT_TT_HONDA_K_12_1,
TT_VVT_BOSCH_QUICK_START = 47,
TT_VVT_BOSCH_QUICK_START = TT_TT_VVT_BOSCH_QUICK_START,
TT_TOOTHED_WHEEL_36_2 = TT_TT_TOOTHED_WHEEL_36_2,
TT_SUBARU_SVX = 49,
TT_SUBARU_SVX = TT_TT_SUBARU_SVX,
TT_1_16 = 50,
@ -436,6 +439,8 @@ typedef enum {
*/
VVT_4_1 = 6,
VVT_FORD_ST170 = 7,
Force_4_bytes_size_vvt_mode = ENUM_32_BITS,
} vvt_mode_e;

View File

@ -13,6 +13,7 @@
#include "engine_configuration.h"
#include "engine.h"
#include "vehicle_speed.h"
#include "dynoview.h"
EXTERN_ENGINE;
@ -98,6 +99,9 @@ void processCanRxVss(const CANRxFrame& frame, efitick_t nowNt) {
break;
}
#if EFI_DYNO_VIEW
updateDynoViewCan(PASS_ENGINE_PARAMETER_SIGNATURE);
#endif
}
float getVehicleCanSpeed(void) {

View File

@ -56,6 +56,7 @@ typedef enum {
LE_METHOD_FSIO_DIGITAL_INPUT = 123,
LE_METHOD_FSIO_SETTING = 124,
LE_METHOD_PPS = 125,
LE_METHOD_TIME_SINCE_TRIGGER_EVENT = 126,
#include "fsio_enums_generated.def"

View File

@ -71,6 +71,7 @@ static LENameOrdinalPair leExhaustVVT(LE_METHOD_EXHAUST_VVT, "evvt");
static LENameOrdinalPair leCrankingRpm(LE_METHOD_CRANKING_RPM, "cranking_rpm");
static LENameOrdinalPair leStartupFuelPumpDuration(LE_METHOD_STARTUP_FUEL_PUMP_DURATION, "startup_fuel_pump_duration");
static LENameOrdinalPair leInShutdown(LE_METHOD_IN_SHUTDOWN, "in_shutdown");
static LENameOrdinalPair leTimeSinceTrigger(LE_METHOD_TIME_SINCE_TRIGGER_EVENT, "time_since_trigger");
#include "fsio_names.def"
@ -139,6 +140,8 @@ FsioValue getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) {
case LE_METHOD_EXHAUST_VVT:
return engine->triggerCentral.getVVTPosition();
#endif
case LE_METHOD_TIME_SINCE_TRIGGER_EVENT:
return engine->triggerCentral.getTimeSinceTriggerEvent();
case LE_METHOD_TIME_SINCE_BOOT:
#if EFI_MAIN_RELAY_CONTROL
// in main relay control mode, we return the number of seconds since the ignition is turned on
@ -781,7 +784,7 @@ void runHardcodedFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
}
// see FUEL_PUMP_LOGIC
if (CONFIG(fuelPumpPin) != GPIO_UNASSIGNED) {
enginePins.fuelPumpRelay.setValue((getTimeNowSeconds() < engineConfiguration->startUpFuelPumpDuration) || (engine->rpmCalculator.getRpm() > 0));
enginePins.fuelPumpRelay.setValue((getTimeNowSeconds() < engine->triggerActivitySecond + engineConfiguration->startUpFuelPumpDuration) || (engine->rpmCalculator.getRpm() > 0));
}
enginePins.o2heater.setValue(engine->rpmCalculator.isRunning());

View File

@ -1,2 +1,2 @@
#pragma once
#define VCS_DATE 20201129
#define VCS_DATE 20201205

View File

@ -59,6 +59,7 @@
#include "date_stamp.h"
#include "buttonshift.h"
#include "start_stop.h"
#include "dynoview.h"
#if EFI_SENSOR_CHART
#include "sensor_chart.h"
@ -605,6 +606,10 @@ void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_S
initLaunchControl(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
#endif
#if EFI_DYNO_VIEW
initDynoView(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
#endif
#if EFI_SHAFT_POSITION_INPUT
/**
* there is an implicit dependency on the fact that 'tachometer' listener is the 1st listener - this case
@ -708,7 +713,7 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
#define RAM_UNUSED_SIZE 3400
#endif
#ifndef CCM_UNUSED_SIZE
#define CCM_UNUSED_SIZE 2900
#define CCM_UNUSED_SIZE 2800
#endif
static char UNUSED_RAM_SIZE[RAM_UNUSED_SIZE];
static char UNUSED_CCM_SIZE[CCM_UNUSED_SIZE] CCM_OPTIONAL;

View File

@ -406,6 +406,14 @@ void mainTriggerCallback(uint32_t trgEventIndex, efitick_t edgeTimestamp DECLARE
int rpm = GET_RPM();
if (rpm == 0) {
// this happens while we just start cranking
/**
* While we have start-up priming pulse, we also want to start pumping fuel again as soon as possible.
* Hopefully battery would handle both cranking and fuel pump simultaneously?
*/
enginePins.fuelPumpRelay.setValue(true); // quickly set pin right from the callback here! todo: would it work OK for smart SPI pin?!
#if EFI_PROD_CODE
engine->triggerActivitySecond = getTimeNowSeconds();
#endif
// todo: check for 'trigger->is_synchnonized?'
// TODO: add 'pin shutdown' invocation somewhere - coils might be still open here!
return;

View File

@ -386,7 +386,8 @@ efitick_t scheduleByAngle(scheduling_s *timer, efitick_t edgeTimestamp, angle_t
action_s action DECLARE_ENGINE_PARAMETER_SUFFIX) {
float delayUs = ENGINE(rpmCalculator.oneDegreeUs) * angle;
efitime_t delayNt = US2NT(delayUs);
// 'delayNt' is below 10 seconds here so we use 32 bit type for performance reasons
int32_t delayNt = USF2NT(delayUs);
efitime_t delayedTime = edgeTimestamp + delayNt;
ENGINE(executor.scheduleByTimestampNt(timer, delayedTime, action));

View File

@ -1,4 +1,4 @@
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
// by class com.rusefi.output.CHeaderConsumer
// begin
#pragma once
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
bool fuelClosedLoopCorrectionEnabled : 1;
/**
* Print details into rusEfi console
* enable verbose_idle
offset 1464 bit 2 */
bool isVerboseIAC : 1;
/**
@ -3777,4 +3778,4 @@ struct persistent_config_s {
typedef struct persistent_config_s persistent_config_s;
// end
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
FSIO_SETTING_FANONTEMPERATURE = 1000,

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");

View File

@ -1,4 +1,4 @@
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
// by class com.rusefi.output.FileFsioSettingsConsumer
case FSIO_SETTING_FANONTEMPERATURE:

View File

@ -373,7 +373,7 @@
#define ENGINE_MAKE_VAG "VAG"
#define ENGINE_NOISE_CURVE_SIZE 8
#define ENGINE_SNIFFER_UNIT_US 10
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MIATA_1994_DEVIATOR", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
#define engineChartSize_offset 1480
#define engineCode_offset 1128
#define engineConfiguration_offset 0
@ -1212,8 +1212,8 @@
#define showHumanReadableWarning_offset 976
#define showSdCardWarning_offset 76
#define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 104376296
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 768848914
#define silentTriggerError_offset 1464
#define slowAdcAlpha_offset 2088
#define sparkDwellRpmBins_offset 332
@ -1410,7 +1410,7 @@
#define TRIGGER_SIMULATOR_PIN_COUNT 3
#define trigger_todoRemoveMeOneDay0_offset 528
#define trigger_todoRemoveMeOneDay1_offset 528
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_MINI_COOPER_R50", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_HONDA_CBR_600_CUSTOM", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_MAZDA_Z5", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
#define trigger_type_offset 524
#define trigger_unusedBit_4_10_offset 528
@ -1492,7 +1492,7 @@
#define TS_ONLINE_PROTOCOL_char z
#define TS_OUTPUT_COMMAND 'O'
#define TS_OUTPUT_COMMAND_char O
#define TS_OUTPUT_SIZE 288
#define TS_OUTPUT_SIZE 340
#define TS_PAGE_COMMAND 'P'
#define TS_PAGE_COMMAND_char P
#define TS_PERF_TRACE_BEGIN '_'
@ -1543,16 +1543,46 @@
#define ts_show_spi true
#define ts_show_trigger_comparator false
#define ts_show_tunerstudio_port true
#define TS_SIGNATURE "rusEFI 2020.11.29.all.104376296"
#define TS_SIGNATURE "rusEFI 2020.12.04.all.768848914"
#define TS_SINGLE_WRITE_COMMAND 'W'
#define TS_SINGLE_WRITE_COMMAND_char W
#define TS_TEST_COMMAND 't' // 0x74
#define TT_TT_1_16 50
#define TT_TT_2JZ_1_12 29
#define TT_TT_2JZ_3_34 25
#define TT_TT_36_2_2_2 23
#define TT_TT_3_1_CAM 31
#define TT_TT_60_2_VW 20
#define TT_TT_CHRYSLER_NGC_36_2_2 30
#define TT_TT_DAIHATSU 6
#define TT_TT_FORD_ASPIRE 1
#define TT_TT_FORD_ST170 42
#define TT_TT_GM_7X 5
#define TT_TT_GM_LS_24 27
#define TT_TT_HONDA_1_24 21
#define TT_TT_HONDA_1_4_24 13
#define TT_TT_HONDA_4_24_1 10
#define TT_TT_HONDA_CBR_600 28
#define TT_TT_HONDA_K_12_1 46
#define TT_TT_JEEP_18_2_2_2 37
#define TT_TT_JEEP_4_CYL 40
#define TT_TT_MAZDA_DOHC_1_4 15
#define TT_TT_MAZDA_MIATA_NA 3
#define TT_TT_MAZDA_MIATA_NB1 4
#define TT_TT_MAZDA_SOHC_4 7
#define TT_TT_MIATA_VVT 33
#define TT_TT_ONE 18
#define TT_TT_RENIX_44_2_2 44
#define TT_TT_RENIX_66_2_2_2 45
#define TT_TT_ROVER_K 26
#define TT_TT_SUBARU_7_6 36
#define TT_TT_SUBARU_SVX 49
#define TT_TT_TOOTHED_WHEEL 0
#define TT_TT_TOOTHED_WHEEL_36_1 9
#define TT_TT_TOOTHED_WHEEL_36_2 48
#define TT_TT_TOOTHED_WHEEL_60_2 8
#define TT_TT_VVT_BOSCH_QUICK_START 47
#define TT_TT_VVT_JZ 17
#define tunerStudioSerialSpeed_offset 728
#define twoWireBatchIgnition_offset 1476
#define twoWireBatchInjection_offset 1476
@ -1691,7 +1721,7 @@
#define veTable_offset 17440
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
#define vRefAdcChannel_offset 1470
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1"
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1", "VVT_FORD_ST170"
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
#define vvtCamSensorUseRise_offset 744
#define vvtMode_offset 2328

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD all
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 3115617215
#define TS_SIGNATURE "rusEFI 2020.11.29.all.3115617215"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 768848914
#define TS_SIGNATURE "rusEFI 2020.12.04.all.768848914"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD frankenso_na6
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 801389124
#define TS_SIGNATURE "rusEFI 2020.11.29.frankenso_na6.801389124"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3148023273
#define TS_SIGNATURE "rusEFI 2020.12.04.frankenso_na6.3148023273"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD hellen_cypress
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 1883581820
#define TS_SIGNATURE "rusEFI 2020.11.29.hellen_cypress.1883581820"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3827438289
#define TS_SIGNATURE "rusEFI 2020.12.04.hellen_cypress.3827438289"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD kin
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 559486854
#define TS_SIGNATURE "rusEFI 2020.11.29.kin.559486854"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3040749611
#define TS_SIGNATURE "rusEFI 2020.12.04.kin.3040749611"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD mre_f4
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 2925811142
#define TS_SIGNATURE "rusEFI 2020.11.29.mre_f4.2925811142"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 973302379
#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f4.973302379"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD mre_f7
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 2925811142
#define TS_SIGNATURE "rusEFI 2020.11.29.mre_f7.2925811142"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 973302379
#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f7.973302379"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD prometheus_405
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 4218195438
#define TS_SIGNATURE "rusEFI 2020.11.29.prometheus_405.4218195438"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 1863037507
#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_405.1863037507"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD prometheus_469
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 4218195438
#define TS_SIGNATURE "rusEFI 2020.11.29.prometheus_469.4218195438"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 1863037507
#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_469.1863037507"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD proteus_f4
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 1881063777
#define TS_SIGNATURE "rusEFI 2020.11.29.proteus_f4.1881063777"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3833200332
#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f4.3833200332"

View File

@ -3,6 +3,6 @@
//
#define SIGNATURE_BOARD proteus_f7
#define SIGNATURE_DATE 2020.11.29
#define SIGNATURE_HASH 1881063777
#define TS_SIGNATURE "rusEFI 2020.11.29.proteus_f7.1881063777"
#define SIGNATURE_DATE 2020.12.04
#define SIGNATURE_HASH 3833200332
#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f7.3833200332"

View File

@ -552,7 +552,8 @@ void OutputPin::initPin(const char *msg, brain_pin_e brainPin, const pin_output_
actualValue = !actualValue;
}
if (actualValue) {
firmwareError(OBD_PCM_Processor_Fault, "%s: startup pin state %s value=%d mode=%s", msg, hwPortname(brainPin), actualValue, getPin_output_mode_e(*outputMode));
// todo: https://github.com/rusefi/rusefi/issues/2006
// firmwareError(OBD_PCM_Processor_Fault, "%s: startup pin state %s value=%d mode=%s", msg, hwPortname(brainPin), actualValue, getPin_output_mode_e(*outputMode));
}
}
}

View File

@ -136,8 +136,9 @@ void PwmConfig::setFrequency(float frequency) {
}
/**
* see #handleCycleStart()
* 'periodNt' is below 10 seconds here so we use 32 bit type for performance reasons
*/
periodNt = US2NT(frequency2periodUs(frequency));
periodNt = USF2NT(frequency2periodUs(frequency));
}
void PwmConfig::stop() {

View File

@ -13,6 +13,11 @@
# (self and (coolant > fan_off_setting)) | (coolant > fan_on_setting) | is_clt_broken
FAN_CONTROL_LOGIC=(fan and (coolant > cfg_fanOffTemperature)) | (coolant > cfg_fanOnTemperature) | is_clt_broken
#
# todo: we might have a bug here?
# todo: 'time_since_boot' means 'getTimeIgnitionSeconds' in case of EFI_MAIN_RELAY_CONTROL like Proteus
# and it's negative if ignition is off? does Proteus not get fuel pump start-up priming pulse?!
#
FUEL_PUMP_LOGIC=((time_since_boot >= 0) & (time_since_boot < startup_fuel_pump_duration)) | (rpm > 0)
ALTERNATOR_LOGIC=vbatt < 14.5

View File

@ -1,74 +0,0 @@
/**
* @file trigger_bmw.cpp
*
* @date May 11, 2014
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#include "trigger_bmw.h"
static inline float addPair(TriggerWaveform *s, float a, float w) {
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
a += w;
return a;
}
void configureMiniCooperTriggerWaveform(TriggerWaveform *s) {
s->initialize(FOUR_STROKE_CAM_SENSOR);
// s->initialState[0] = 1;
float w = 360.0 / 121;
float a = w / 2;
s->addEvent720(a, T_SECONDARY, TV_FALL);
a += w;
for (int i = 0; i <= 22; i++) {
a = addPair(s, a, w);
}
a += 3 * w;
float firstGapAngle = a;
/* may be */UNUSED(firstGapAngle);
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += 3 * w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
a += w;
for (int i = 0; i < 36; i++) {
a = addPair(s, a, w);
}
s->addEvent720(376, T_PRIMARY, TV_RISE);
for (int i = 0; i < 21; i++) {
a = addPair(s, a, w);
}
a += 3 * w;
efiAssertVoid(CUSTOM_ERR_6584, absF(firstGapAngle + 360 - a) < 0.1, "shape constraint");
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += 3 * w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
a += w;
for (int i = 0; i < 33; i++) {
a = addPair(s, a, w);
}
efiAssertVoid(CUSTOM_ERR_6585, absF(720 - w / 2 - a) < 0.1, "shape constraint");
s->addEvent720(a, T_SECONDARY, TV_RISE);
s->addEvent720(720.0, T_PRIMARY, TV_FALL);
/**
* With just one tooth on camshaft synchronization is not needed
*/
s->isSynchronizationNeeded = false;
s->useOnlyPrimaryForSync = true;
}

View File

@ -1,13 +0,0 @@
/**
* @file trigger_bmw.h
*
* @date May 11, 2014
* @author Andrey Belomutskiy, (c) 2012-2020
*/
#pragma once
#include "trigger_structure.h"
void configureMiniCooperTriggerWaveform(TriggerWaveform *s);

View File

@ -574,3 +574,41 @@ void initJeep_XJ_4cyl_2500(TriggerWaveform *s) {
s->addEvent720(596 + offset, T_PRIMARY, TV_FALL); // 720
}
void configureChryslerNGC_36_2_2(TriggerWaveform *s) {
s->initialize(FOUR_STROKE_CAM_SENSOR);
float wide = 30 * 2;
float narrow = 10 * 2;
s->isSynchronizationNeeded = true;
s->setTriggerSynchronizationGap(3.5);
for (int i = 1; i < 15; i++) {
s->setTriggerSynchronizationGap3(/*gapIndex*/i, TRIGGER_GAP_DEVIATION_LOW, TRIGGER_GAP_DEVIATION_HIGH);
}
s->setTriggerSynchronizationGap3(/*gapIndex*/15, 0.4 * TRIGGER_GAP_DEVIATION_LOW, 0.4 * TRIGGER_GAP_DEVIATION_HIGH);
float base = 0;
for (int i = 0; i < 14; i++) {
s->addEventAngle(base + narrow / 2, T_PRIMARY, TV_RISE);
s->addEventAngle(base + narrow, T_PRIMARY, TV_FALL);
base += narrow;
}
s->addEventAngle(base + narrow / 2, T_PRIMARY, TV_RISE);
base += narrow / 2;
s->addEventAngle(base + wide, T_PRIMARY, TV_FALL);
base += wide;
for (int i = 0; i < 16; i++) {
s->addEventAngle(base + narrow / 2, T_PRIMARY, TV_RISE);
s->addEventAngle(base + narrow, T_PRIMARY, TV_FALL);
base += narrow;
}
// one small tooth at the end of the engine cycle
s->addEventAngle(s->getCycleDuration() - narrow / 2, T_PRIMARY, TV_RISE);
s->addEventAngle(s->getCycleDuration(), T_PRIMARY, TV_FALL);
s->useOnlyPrimaryForSync = true;
}

View File

@ -24,3 +24,5 @@ void configureDodgeStratusTriggerWaveform(TriggerWaveform *s);
void initJeep18_2_2_2(TriggerWaveform *s);
void initJeep_XJ_4cyl_2500(TriggerWaveform *s);
void configureChryslerNGC_36_2_2(TriggerWaveform *s);

View File

@ -209,80 +209,6 @@ void configureHondaCbr600(TriggerWaveform *s) {
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
}
void configureHondaCbr600custom(TriggerWaveform *s) {
// w = 15
float w = 720 / 2 / 24;
// s->initialize(FOUR_STROKE_CAM_SENSOR);
s->initialize(FOUR_STROKE_CAM_SENSOR);
s->useOnlyPrimaryForSync = true;
s->isSynchronizationNeeded = true;
s->setTriggerSynchronizationGap2(0.7, 1.1);
float a = 0;
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += w;
s->addEvent720(a - 1, T_SECONDARY, TV_FALL); // 30
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
s->addEvent720(52.4, T_PRIMARY, TV_FALL);
a += w;
s->addEvent720(a - 1, T_SECONDARY, TV_FALL); // 60
for (int i = 0;i<10;i++) {
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
}
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
s->addEvent720(381.34f, T_PRIMARY, TV_RISE);
a += w;
s->addEvent720(a - 1, T_SECONDARY, TV_FALL);
for (int i = 0;i<1;i++) {
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
}
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
s->addEvent720(449.1f, T_PRIMARY, TV_FALL);
a += w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
for (int i = 0;i<8;i++) {
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += w;
s->addEvent720(a, T_SECONDARY, TV_FALL);
}
a += w;
s->addEvent720(a, T_SECONDARY, TV_RISE);
a += w;
s->addEvent720(a - 1, T_SECONDARY, TV_FALL);
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
}
void configureHondaAccordShifted(TriggerWaveform *s) {
s->initialize(FOUR_STROKE_CAM_SENSOR);

View File

@ -20,8 +20,5 @@ void configureHonda_1_4_24(TriggerWaveform *s, bool withOneEventSignal, bool wit
void configureOnePlus16(TriggerWaveform *s);
void configureHondaCbr600(TriggerWaveform *s);
void configureHondaCbr600custom(TriggerWaveform *s);
void configureHondaK_12_1(TriggerWaveform *s);

View File

@ -52,55 +52,23 @@ void initializeMazdaMiataNaShape(TriggerWaveform *s) {
s->useOnlyPrimaryForSync = true;
}
/**
* by alexander-n8hgeg5e
* See https://rusefi.com/forum/viewtopic.php?f=5&t=1447
*/
void initialize_Mazda_Engine_z5_Shape(TriggerWaveform *s) {
s->initialize(FOUR_STROKE_CAM_SENSOR);
/**
* My Signal is: 60, 60, 102, 60
* 120, 120, 120, 78,
* ^
* |
* sync point = 0 degree from now on
* All rising edges are 60 befor some OT.
* If the edge goes high, it should look at the last past 2 events. (high-low-now)
* time1/time2 == 78/102 = 13/17 then triggerevent '0' would be nice.
*
*/
s->useRiseEdge = false;
s->tdcPosition = 0; // 1 and 3 are at top , so 0 or 360
s->setTriggerSynchronizationGap(0.7);
s->addEvent720(60.0f, T_PRIMARY, TV_FALL);
s->addEvent720(180.0f, T_PRIMARY, TV_RISE);
s->addEvent720(240.0f, T_PRIMARY, TV_FALL);
s->addEvent720(360.0f, T_PRIMARY, TV_RISE);
s->addEvent720(420.0f, T_PRIMARY, TV_FALL);
s->addEvent720(540.0f, T_PRIMARY, TV_RISE);
s->addEvent720(618.0f, T_PRIMARY, TV_FALL);
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
}
// TT_MIATA_VVT
void initializeMazdaMiataNb2Crank(TriggerWaveform *s) {
/**
* Note how we use 0..180 range while defining FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR trigger
* Note that only half of the physical wheel is defined here!
*/
s->initialize(FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR);
float o = 40;
s->tdcPosition = 60 + 655;
s->setTriggerSynchronizationGap2(0.35f, 0.98f);
// 384
s->addEventAngle(o + 56.0f, T_PRIMARY, TV_FALL);
s->addEventAngle(96.0f, T_PRIMARY, TV_FALL);
// 400
s->addEventAngle(o + 60.0f, T_PRIMARY, TV_RISE);
s->addEventAngle(o + 136.0f, T_PRIMARY, TV_FALL);
s->addEventAngle(o + 140.0f, T_PRIMARY, TV_RISE);
s->addEventAngle(100.0f, T_PRIMARY, TV_RISE);
s->addEventAngle(176.0f, T_PRIMARY, TV_FALL);
s->addEventAngle(180.0f, T_PRIMARY, TV_RISE);
}
static void initializeMazdaMiataNb1ShapeWithOffset(TriggerWaveform *s, float offset) {

View File

@ -17,7 +17,6 @@ void initializeMazdaMiataNb2Crank(TriggerWaveform *s);
void initializeMazdaMiataVVtTestShape(TriggerWaveform *s);
void configureMazdaProtegeSOHC(TriggerWaveform *s);
void configureMazdaProtegeLx(TriggerWaveform *s);
void initialize_Mazda_Engine_z5_Shape(TriggerWaveform *s);
/**
* TT_VVT_MIATA_NB2

View File

@ -25,3 +25,49 @@ void configureFiatIAQ_P8(TriggerWaveform * s) {
s->setTriggerSynchronizationGap(3);
}
void configureFordST170(TriggerWaveform * s) {
s->initialize(FOUR_STROKE_CAM_SENSOR);
s->isSynchronizationNeeded = true;
int width = 10;
int total = s->getCycleDuration() / 8;
s->addEventAngle(1 * total - width, T_PRIMARY, TV_RISE);
s->addEventAngle(1 * total, T_PRIMARY, TV_FALL);
s->addEventAngle(2 * total - width, T_PRIMARY, TV_RISE);
s->addEventAngle(2 * total, T_PRIMARY, TV_FALL);
s->addEventAngle(4 * total - width, T_PRIMARY, TV_RISE);
s->addEventAngle(4 * total, T_PRIMARY, TV_FALL);
s->addEventAngle(6 * total - width, T_PRIMARY, TV_RISE);
s->addEventAngle(6 * total, T_PRIMARY, TV_FALL);
s->addEventAngle(8 * total - width, T_PRIMARY, TV_RISE);
s->addEventAngle(8 * total, T_PRIMARY, TV_FALL);
}
void configureDaihatsu4(TriggerWaveform * s) {
s->initialize(FOUR_STROKE_CAM_SENSOR);
s->isSynchronizationNeeded = true;
int width = 10;
s->setTriggerSynchronizationGap(0.125);
s->addEventAngle(30 - width, T_PRIMARY, TV_RISE);
s->addEventAngle(30, T_PRIMARY, TV_FALL);
s->addEventAngle(s->getCycleDuration() / 3 - width, T_PRIMARY, TV_RISE);
s->addEventAngle(s->getCycleDuration() / 3, T_PRIMARY, TV_FALL);
s->addEventAngle(s->getCycleDuration() / 3 * 2 - width, T_PRIMARY, TV_RISE);
s->addEventAngle(s->getCycleDuration() / 3 * 2, T_PRIMARY, TV_FALL);
s->addEventAngle(s->getCycleDuration() - width, T_PRIMARY, TV_RISE);
s->addEventAngle(s->getCycleDuration(), T_PRIMARY, TV_FALL);
}

View File

@ -10,4 +10,6 @@
#include "trigger_structure.h"
void configureFiatIAQ_P8(TriggerWaveform * s);
void configureDaihatsu4(TriggerWaveform * s);
void configureFordST170(TriggerWaveform * s);

View File

@ -22,7 +22,6 @@
#include "global.h"
#include "os_access.h"
#include "engine.h"
#include "trigger_bmw.h"
#include "trigger_chrysler.h"
#include "trigger_gm.h"
#include "trigger_nissan.h"
@ -102,7 +101,8 @@ void TriggerWaveform::initialize(operation_mode_e operationMode) {
previousAngle = 0;
memset(isRiseEvent, 0, sizeof(isRiseEvent));
#if EFI_UNIT_TEST
memset(&triggerSignals, 0, sizeof(triggerSignals));
memset(&triggerSignalIndeces, 0, sizeof(triggerSignalIndeces));
memset(&triggerSignalStates, 0, sizeof(triggerSignalStates));
#endif
}
@ -228,8 +228,8 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex
}
#if EFI_UNIT_TEST
int signal = channelIndex * 1000 + stateParam;
triggerSignals[privateTriggerDefinitionSize] = signal;
triggerSignalIndeces[privateTriggerDefinitionSize] = channelIndex;
triggerSignalStates[privateTriggerDefinitionSize] = stateParam;
#endif
@ -240,7 +240,7 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex
expectedEventCount[channelIndex]++;
}
efiAssertVoid(CUSTOM_ERR_6599, angle > 0, "angle should be positive");
efiAssertVoid(CUSTOM_ERR_6599, angle > 0 && angle <= 1, "angle should be positive not above 1");
if (privateTriggerDefinitionSize > 0) {
if (angle <= previousAngle) {
warning(CUSTOM_ERR_TRG_ANGLE_ORDER, "invalid angle order: new=%.2f/%f and prev=%.2f/%f, size=%d",
@ -330,6 +330,7 @@ void TriggerWaveform::setTriggerSynchronizationGap2(float syncRatioFrom, float s
void TriggerWaveform::setTriggerSynchronizationGap3(int gapIndex, float syncRatioFrom, float syncRatioTo) {
isSynchronizationNeeded = true;
efiAssertVoid(OBD_PCM_Processor_Fault, gapIndex >= 0 && gapIndex < GAP_TRACKING_LENGTH, "gapIndex out of range");
this->syncronizationRatioFrom[gapIndex] = syncRatioFrom;
this->syncronizationRatioTo[gapIndex] = syncRatioTo;
if (gapIndex == 0) {
@ -427,7 +428,7 @@ void TriggerWaveform::prepareShape(TriggerFormDetails *details DECLARE_ENGINE_PA
}
void TriggerWaveform::setTriggerSynchronizationGap(float syncRatio) {
setTriggerSynchronizationGap3(/*gapIndex*/0, syncRatio * 0.75f, syncRatio * 1.25f);
setTriggerSynchronizationGap3(/*gapIndex*/0, syncRatio * TRIGGER_GAP_DEVIATION_LOW, syncRatio * TRIGGER_GAP_DEVIATION_HIGH);
}
void TriggerWaveform::setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
@ -435,11 +436,11 @@ void TriggerWaveform::setSecondTriggerSynchronizationGap2(float syncRatioFrom, f
}
void TriggerWaveform::setThirdTriggerSynchronizationGap(float syncRatio) {
setTriggerSynchronizationGap3(/*gapIndex*/2, syncRatio * 0.75f, syncRatio * 1.25f);
setTriggerSynchronizationGap3(/*gapIndex*/2, syncRatio * TRIGGER_GAP_DEVIATION_LOW, syncRatio * TRIGGER_GAP_DEVIATION_HIGH);
}
void TriggerWaveform::setSecondTriggerSynchronizationGap(float syncRatio) {
setTriggerSynchronizationGap3(/*gapIndex*/1, syncRatio * 0.75f, syncRatio * 1.25f);
setTriggerSynchronizationGap3(/*gapIndex*/1, syncRatio * TRIGGER_GAP_DEVIATION_LOW, syncRatio * TRIGGER_GAP_DEVIATION_HIGH);
}
@ -476,8 +477,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
initializeMazdaMiataVVtTestShape(this);
break;
case TT_MAZDA_Z5:
initialize_Mazda_Engine_z5_Shape(this);
case TT_FORD_ST170:
configureFordST170(this);
break;
case TT_VVT_MIATA_NB2:
@ -545,8 +546,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
configureMazdaProtegeSOHC(this);
break;
case TT_MINI_COOPER_R50:
configureMiniCooperTriggerWaveform(this);
case TT_TT_DAIHATSU:
configureDaihatsu4(this);
break;
case TT_VVT_JZ:
@ -607,8 +608,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
configureHondaCbr600(this);
break;
case TT_HONDA_CBR_600_CUSTOM:
configureHondaCbr600custom(this);
case TT_CHRYSLER_NGC_36_2_2:
configureChryslerNGC_36_2_2(this);
break;
case TT_MITSUBISHI:

View File

@ -13,6 +13,10 @@
#define FOUR_STROKE_ENGINE_CYCLE 720
#define TRIGGER_GAP_DEVIATION 0.25f
#define TRIGGER_GAP_DEVIATION_LOW (1.0f - TRIGGER_GAP_DEVIATION)
#define TRIGGER_GAP_DEVIATION_HIGH (1.0f + TRIGGER_GAP_DEVIATION)
#if EFI_ENABLE_ASSERTS
#define assertAngleRange(angle, msg, code) if (angle > 10000000 || angle < -10000000) { firmwareError(code, "angle range %s %.2f", msg, angle);angle = 0;}
#else
@ -68,7 +72,8 @@ class TriggerState;
class TriggerFormDetails;
class TriggerConfiguration;
#define GAP_TRACKING_LENGTH 4
// https://github.com/rusefi/rusefi/issues/2010 shows the corner case wheel with huge depth requirement
#define GAP_TRACKING_LENGTH 18
/**
* @brief Trigger shape has all the fields needed to describe and decode trigger signal.
@ -181,7 +186,8 @@ public:
/**
* These signals are used for trigger export only
*/
int triggerSignals[PWM_PHASE_MAX_COUNT];
int triggerSignalIndeces[PWM_PHASE_MAX_COUNT];
int triggerSignalStates[PWM_PHASE_MAX_COUNT];
#endif
MultiChannelStateSequence wave;

View File

@ -1,6 +1,5 @@
TRIGGER_DECODERS_SRC_CPP = \
$(CONTROLLERS_DIR)/trigger/decoders/trigger_bmw.cpp \
$(CONTROLLERS_DIR)/trigger/decoders/trigger_mazda.cpp \
$(CONTROLLERS_DIR)/trigger/decoders/trigger_chrysler.cpp \
$(CONTROLLERS_DIR)/trigger/decoders/trigger_structure.cpp \

View File

@ -82,6 +82,7 @@ angle_t TriggerCentral::getVVTPosition() {
static bool vvtWithRealDecoder(vvt_mode_e vvtMode) {
return vvtMode == MIATA_NB2
|| vvtMode == VVT_BOSCH_QUICK_START
|| vvtMode == VVT_FORD_ST170
|| vvtMode == VVT_4_1;
}
@ -426,6 +427,8 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timesta
engine->onTriggerSignalEvent(timestamp);
m_lastEventTimer.reset(timestamp);
int eventIndex = (int) signal;
efiAssertVoid(CUSTOM_TRIGGER_EVENT_TYPE, eventIndex >= 0 && eventIndex < HW_EVENT_TYPES, "signal type");
hwEventCounters[eventIndex]++;
@ -517,6 +520,7 @@ static void triggerShapeInfo(void) {
#if EFI_UNIT_TEST
#include <stdlib.h>
extern trigger_type_e focusOnTrigger;
#define TRIGGERS_FILE_NAME "triggers.txt"
/**
@ -536,6 +540,10 @@ void printAllTriggers() {
for (int triggerId = 1; triggerId < TT_UNUSED; triggerId++) {
trigger_type_e tt = (trigger_type_e) triggerId;
if (focusOnTrigger != TT_UNUSED && tt != focusOnTrigger) {
continue;
}
printf("Exporting %s\r\n", getTrigger_type_e(tt));
persistent_config_s pc;
@ -553,7 +561,7 @@ void printAllTriggers() {
engine->initializeTriggerWaveform(NULL PASS_ENGINE_PARAMETER_SUFFIX);
if (shape->shapeDefinitionError) {
printf("Trigger error %d\r\n", triggerId);
printf("Trigger shapeDefinitionError %d\r\n", triggerId);
exit(-1);
}
@ -566,7 +574,11 @@ void printAllTriggers() {
int triggerDefinitionCoordinate = (shape->getTriggerWaveformSynchPointIndex() + i) % shape->getSize();
fprintf(fp, "event %d %d %.2f\n", i, shape->triggerSignals[triggerDefinitionCoordinate], triggerFormDetails->eventAngles[i]);
fprintf(fp, "event %d %d %d %.2f\n",
i,
shape->triggerSignalIndeces[triggerDefinitionCoordinate],
shape->triggerSignalStates[triggerDefinitionCoordinate],
triggerFormDetails->eventAngles[i]);
}
}

View File

@ -11,6 +11,7 @@
#include "listener_array.h"
#include "trigger_decoder.h"
#include "trigger_central_generated.h"
#include "timer.h"
class Engine;
typedef void (*ShaftPositionListener)(trigger_event_e signal, uint32_t index, efitick_t edgeTimestamp DECLARE_ENGINE_PARAMETER_SUFFIX);
@ -43,6 +44,10 @@ public:
void resetCounters();
void validateCamVvtCounters();
float getTimeSinceTriggerEvent() const {
return m_lastEventTimer.getElapsedSeconds();
}
TriggerNoiseFilter noiseFilter;
trigger_type_e vvtTriggerType;
@ -67,6 +72,9 @@ public:
TriggerWaveform vvtShape;
TriggerFormDetails triggerFormDetails;
// Keep track of the last time we got a valid trigger event
Timer m_lastEventTimer;
};
void triggerInfo(void);

View File

@ -14,6 +14,10 @@
EXTERN_ENGINE;
#if EFI_UNIT_TEST
extern bool printTriggerTrace;
#endif
// this is not the only place where we have 'isUpEvent'. todo: reuse
static const bool isRisingEdge[HW_EVENT_TYPES] = { false, true, false, true, false, true };
@ -112,21 +116,32 @@ void TriggerStimulatorHelper::assertSyncPositionAndSetDutyCycle(
TriggerWaveform& shape
) {
// todo: is anything limiting this TEST_REVOLUTIONS? why does value '8' not work for example?
#define TEST_REVOLUTIONS 6
/**
* let's feed two more cycles to validate shape definition
*/
for (uint32_t i = syncIndex + 1; i <= syncIndex + GAP_TRACKING_LENGTH * shape.getSize(); i++) {
for (uint32_t i = syncIndex + 1; i <= syncIndex + TEST_REVOLUTIONS * shape.getSize(); i++) {
feedSimulatedEvent(triggerCycleCallback,
triggerConfiguration,
state, shape, i);
}
int revolutionCounter = state.getTotalRevolutionCounter();
if (revolutionCounter != GAP_TRACKING_LENGTH + 1) {
warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s rc=%d", getTrigger_type_e(triggerConfiguration.TriggerType), revolutionCounter);
if (revolutionCounter != TEST_REVOLUTIONS + 1) {
warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s revolutionCounter=%d", getTrigger_type_e(triggerConfiguration.TriggerType), revolutionCounter);
shape.setShapeDefinitionError(true);
return;
}
shape.shapeDefinitionError = false;
#if EFI_UNIT_TEST
if (printTriggerTrace) {
printf("Happy %s revolutionCounter=%d\r\n",
getTrigger_type_e(triggerConfiguration.TriggerType),
revolutionCounter);
}
#endif /* EFI_UNIT_TEST */
for (int i = 0; i < PWM_PHASE_MAX_WAVE_PER_PWM; i++) {
shape.expectedDutyCycle[i] = 1.0 * state.expectedTotalTime[i] / SIMULATION_CYCLE_PERIOD;

View File

@ -1,6 +1,8 @@
rusEfi is trying to use latest stable ChibiOS with minimal changes
rusEFI is trying to use latest stable ChibiOS with minimal changes
At the moment rusEfi custom version of ChibiOS has the following changes:
At the moment rusEFI uses https://github.com/rusefi/ChibiOS/tree/stable_18.2.rusefi
rusEFI custom version of ChibiOS has the following changes:
*) minor OS monitoring and maintainability fixes:
chDbgStackOverflowPanic allows to know which thread has stack overflow

View File

@ -28,8 +28,8 @@ public:
bool isHwUsed(adc_channel_e hwChannel) const;
int size() const;
void init(void);
int conversionCount;
int errorsCount;
uint32_t conversionCount = 0;
uint32_t errorsCount = 0;
int getAdcValueByIndex(int internalIndex) const;
void invalidateSamplesCache();
@ -38,7 +38,7 @@ public:
int getAdcValueByHwChannel(adc_channel_e hwChannel) const;
adc_state values;
int channelCount;
size_t channelCount = 0;
private:
ADCConversionGroup* hwConfig;
/**

View File

@ -64,9 +64,6 @@ float getVoltage(const char *msg, adc_channel_e hwChannel DECLARE_ENGINE_PARAMET
AdcDevice::AdcDevice(ADCConversionGroup* hwConfig, adcsample_t *buf) {
this->hwConfig = hwConfig;
this->samples = buf;
channelCount = 0;
conversionCount = 0;
errorsCount = 0;
hwConfig->sqr1 = 0;
hwConfig->sqr2 = 0;
@ -342,7 +339,7 @@ void AdcDevice::init(void) {
}
bool AdcDevice::isHwUsed(adc_channel_e hwChannelIndex) const {
for (int i = 0; i < channelCount; i++) {
for (size_t i = 0; i < channelCount; i++) {
if (hardwareIndexByIndernalAdcIndex[i] == hwChannelIndex) {
return true;
}

View File

@ -47,13 +47,10 @@
!
!
!
! this is here so that rusEfi console can access it, too
! [IMPORTANT] every time TS_OUTPUT_SIZE is changed make sure to increment TS_SIGNATURE above
!
#define TS_OUTPUT_SIZE 288
#define TS_OUTPUT_SIZE 340
!
! this is used to confirm that firmware and TunerStudio are using the same rusefi.ini version
@ -389,11 +386,41 @@ struct ThermistorConf @brief Thermistor curve parameters
end_struct
#define TT_TT_TOOTHED_WHEEL 0
#define TT_TT_FORD_ASPIRE 1
#define TT_TT_MAZDA_MIATA_NA 3
#define TT_TT_MAZDA_MIATA_NB1 4
#define TT_TT_GM_7X 5
#define TT_TT_DAIHATSU 6
#define TT_TT_MAZDA_SOHC_4 7
#define TT_TT_TOOTHED_WHEEL_60_2 8
#define TT_TT_TOOTHED_WHEEL_36_1 9
#define TT_TT_HONDA_4_24_1 10
#define TT_TT_HONDA_1_4_24 13
#define TT_TT_MAZDA_DOHC_1_4 15
#define TT_TT_VVT_JZ 17
#define TT_TT_ONE 18
#define TT_TT_60_2_VW 20
#define TT_TT_HONDA_1_24 21
#define TT_TT_36_2_2_2 23
#define TT_TT_2JZ_3_34 25
#define TT_TT_ROVER_K 26
#define TT_TT_GM_LS_24 27
#define TT_TT_HONDA_CBR_600 28
#define TT_TT_2JZ_1_12 29
#define TT_TT_CHRYSLER_NGC_36_2_2 30
#define TT_TT_3_1_CAM 31
#define TT_TT_MIATA_VVT 33
#define TT_TT_SUBARU_7_6 36
#define TT_TT_JEEP_18_2_2_2 37
#define TT_TT_JEEP_4_CYL 40
#define TT_TT_FORD_ST170 42
#define TT_TT_RENIX_44_2_2 44
#define TT_TT_RENIX_66_2_2_2 45
#define TT_TT_HONDA_K_12_1 46
#define TT_TT_VVT_BOSCH_QUICK_START 47
#define TT_TT_TOOTHED_WHEEL_36_2 48
#define TT_TT_SUBARU_SVX 49
#define TT_TT_1_16 50
#define ET_DODGE_NEON_1995 2
#define ET_FORD_ASPIRE 3
@ -977,7 +1004,7 @@ custom maf_sensor_type_e 4 bits, S32, @OFFSET@, [0:1], @@maf_sensor_type_e_enum@
bit unusedHereWeHave
bit fuelClosedLoopCorrectionEnabled;+Enables lambda sensor closed loop feedback for fuelling.
bit isVerboseIAC;+Print details into rusEfi console
bit isVerboseIAC;+Print details into rusEfi console\nenable verbose_idle
bit isVerboseETB;+Prints ETB details to rusEFI console
bit useConstantDwellDuringCranking;+If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode.
bit isEngineChartEnabled;+This options enables data for 'engine sniffer' tab in console, which comes at some CPU price

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.all.3115617215"
signature = "rusEFI 2020.12.04.all.768848914"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.all.3115617215" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.all.768848914" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:35 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4660,13 +4677,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.frankenso_na6.801389124"
signature = "rusEFI 2020.12.04.frankenso_na6.3148023273"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.frankenso_na6.801389124" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.frankenso_na6.3148023273" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:41 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:34 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4652,13 +4669,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.hellen_cypress.1883581820"
signature = "rusEFI 2020.12.04.hellen_cypress.3827438289"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.hellen_cypress.1883581820" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.hellen_cypress.3827438289" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:50:57 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:43 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4660,13 +4677,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.kin.559486854"
signature = "rusEFI 2020.12.04.kin.3040749611"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.kin.559486854" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.kin.3040749611" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:50:56 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:41 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4661,13 +4678,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.mre_f4.2925811142"
signature = "rusEFI 2020.12.04.mre_f4.973302379"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.mre_f4.2925811142" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.mre_f4.973302379" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:39 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:32 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4628,13 +4645,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.mre_f7.2925811142"
signature = "rusEFI 2020.12.04.mre_f7.973302379"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.mre_f7.2925811142" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.mre_f7.973302379" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:37 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:31 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4628,13 +4645,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.prometheus_405.4218195438"
signature = "rusEFI 2020.12.04.prometheus_405.1863037507"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.prometheus_405.4218195438" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.prometheus_405.1863037507" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:44 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:37 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4656,13 +4673,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.prometheus_469.4218195438"
signature = "rusEFI 2020.12.04.prometheus_469.1863037507"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.prometheus_469.4218195438" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.prometheus_469.1863037507" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:43 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:35 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4656,13 +4673,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.proteus_f4.1881063777"
signature = "rusEFI 2020.12.04.proteus_f4.3833200332"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.proteus_f4.1881063777" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.proteus_f4.3833200332" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:54 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:40 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4616,13 +4633,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -33,12 +33,12 @@ enable2ndByteCanID = false
[MegaTune]
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
signature = "rusEFI 2020.11.29.proteus_f7.1881063777"
signature = "rusEFI 2020.12.04.proteus_f7.3833200332"
[TunerStudio]
queryCommand = "S"
versionInfo = "V" ; firmwave version for title bar.
signature = "rusEFI 2020.11.29.proteus_f7.1881063777" ; signature is expected to be 7 or more characters.
signature = "rusEFI 2020.12.04.proteus_f7.3833200332" ; signature is expected to be 7 or more characters.
[Constants]
; new packet serial format with CRC
@ -74,7 +74,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:48 UTC 2020
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:38 UTC 2020
pageSize = 20000
page = 1
@ -1357,7 +1357,7 @@ page = 1
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
isVerboseIAC = "Print details into rusEfi console"
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
isVerboseETB = "Prints ETB details to rusEFI console"
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
@ -1464,6 +1464,8 @@ page = 1
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -1542,12 +1544,17 @@ page = 1
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
; see TS_OUTPUT_SIZE in console source code
ochBlockSize = 288
ochBlockSize = 340
;
; see TunerStudioOutputChannels struct
@ -1763,12 +1770,13 @@ page = 1
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, "Time", float, "%.3f"
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -4616,13 +4633,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -80,6 +80,8 @@ enable2ndByteCanID = false
; CONFIG_DEFINITION_END
idleRpmPid_offset = "Constant base value"
; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C
useLegacyFTempUnits = false
[Tuning]
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
@ -158,6 +160,11 @@ enable2ndByteCanID = false
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
;
; in order to add new TunerStudio gauge you need to chagne two places
; 1) add a line here in '[OutputChannels]'
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
;
[OutputChannels]
ochGetCommand = "O%2o%2c"
@ -379,12 +386,13 @@ enable2ndByteCanID = false
highFuelPressure = scalar, S16, 278, "bar", {1/@@PACK_MULT_HIGH_PRESSURE@@}, 0
targetLambda = scalar, U16, 280, "",{1/@@PACK_MULT_LAMBDA@@}, 0.0
AFRValue = scalar, U16, 282, "AFR",{1/@@PACK_MULT_AFR@@}, 0.0
VssAcceleration = scalar, S16, 284, "m/s2", {1/@@PACK_MULT_MS@@}, 0.0
;
; see TunerStudioOutputChannels struct
;
; todo: generate this section programatically
; todo: generate this section programmatically
LM_SPEED_DENSITY = {3},
LM_REAL_MAF = {4}
@ -1049,6 +1057,9 @@ gaugeCategory = Knock
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
gaugeCategory = DynoView
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
[WueAnalyze]
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
@ -1148,6 +1159,10 @@ gaugeCategory = Knock
showPanel = spi, spiFunction
showPanel = con, connection
;
; this section defines how we log output channels
; see [OutputChannels]
;
[Datalog]
; Channel Label Type Format
entry = time, @@GAUGE_NAME_TIME@@, float, "%.3f"
@ -1277,6 +1292,8 @@ gaugeCategory = Knock
entry = knock7, "Knock 7", int, "%d"
entry = knock8, "Knock 8", int, "%d"
entry = VssAcceleration, "Accel", float, "%.3f"
; tpsADC = U16, "ADC",
; alignmet = U16, "al",
; atmPres = F32, "pres",
@ -3268,13 +3285,14 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
field = "Activation Mode", launchActivationMode
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
field = ""
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
field = ""
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}

View File

@ -20,8 +20,13 @@
#define MS2US(MS_TIME) ((MS_TIME) * 1000)
// microseconds to ticks
// since only about 20 seconds of ticks fit in 32 bits this macro is casting parameter into 64 bits 'efitime_t' type
// please note that int64 <-> float is a heavy operation thus we have 'USF2NT' below
#define US2NT(us) (((efitime_t)(us)) * US_TO_NT_MULTIPLIER)
// microseconds to ticks, but floating point
// If converting a floating point time period, use this macro to avoid
// the expensive conversions from int64 <-> float
#define USF2NT(us_float) ((us_float) * US_TO_NT_MULTIPLIER)
// And back
@ -29,6 +34,7 @@
// milliseconds to ticks
#define MS2NT(msTime) US2NT(MS2US(msTime))
// See USF2NT above for when to use MSF2NT
#define MSF2NT(msTimeFloat) USF2NT(MS2US(msTimeFloat))
/**

43
firmware/util/timer.cpp Normal file
View File

@ -0,0 +1,43 @@
#include "timer.h"
#include "global.h"
void Timer::reset() {
m_lastReset = getTimeNowNt();
}
void Timer::reset(efitick_t nowNt) {
m_lastReset = nowNt;
}
bool Timer::hasElapsedSec(float seconds) const {
return hasElapsedMs(seconds * 1e3);
}
bool Timer::hasElapsedMs(float milliseconds) const {
return hasElapsedUs(milliseconds * 1e3);
}
bool Timer::hasElapsedUs(float microseconds) const {
auto delta = getTimeNowNt() - m_lastReset;
// If larger than 32 bits, timer has certainly expired
if (delta >= UINT32_MAX) {
return true;
}
auto delta32 = (uint32_t)delta;
return delta32 > USF2NT(microseconds);
}
float Timer::getElapsedSeconds() const {
auto delta = getTimeNowNt() - m_lastReset;
if (delta > UINT32_MAX - 1) {
delta = UINT32_MAX - 1;
}
auto delta32 = (uint32_t)delta;
return NT2US(delta32);
}

23
firmware/util/timer.h Normal file
View File

@ -0,0 +1,23 @@
#pragma once
#include "efitime.h"
class Timer {
public:
void reset();
// Reset the timer to a known timestamp (don't take a timestamp internally)
void reset(efitick_t nowNt);
bool hasElapsedSec(float seconds) const;
bool hasElapsedMs(float ms) const;
bool hasElapsedUs(float us) const;
// Return the elapsed time since the last reset.
// If the elapsed time is longer than 2^32 timer tick counts,
// then a time period representing 2^32 counts will be returned.
float getElapsedSeconds() const;
private:
efitick_t m_lastReset = INT64_MIN;
};

View File

@ -17,6 +17,7 @@ UTILSRC_CPP = \
$(PROJECT_DIR)/util/loggingcentral.cpp \
$(PROJECT_DIR)/util/cli_registry.cpp \
$(PROJECT_DIR)/util/efilib.cpp \
$(PROJECT_DIR)/util/timer.cpp \
UTIL_INC = \

View File

@ -2,7 +2,7 @@
<configuration default="false" name="TriggerImage" type="Application" factoryName="Application" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.rusefi.TriggerImage" />
<module name="ui" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<option name="PROGRAM_PARAMETERS" value="../unit_tests" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.rusefi.ui.console.*" />

View File

@ -149,7 +149,6 @@ public class IoUtil {
}
static void realHardwareConnect(LinkManager linkManager, String port) {
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_OUTPIN, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
linkManager.getEngineState().registerStringValueAction(AverageAnglesUtil.KEY, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);

View File

@ -2,6 +2,8 @@ package com.rusefi;
import com.devexperts.logging.Logging;
import com.rusefi.autodetect.PortDetector;
import com.rusefi.config.generated.Fields;
import com.rusefi.core.EngineState;
import com.rusefi.io.LinkManager;
import org.jetbrains.annotations.NotNull;
@ -15,9 +17,9 @@ import static com.rusefi.Timeouts.SECOND;
* A few jumper wires are used to test some subsystems as realistically as possible:
* PD1 <=> PC6
* PD2 <=> PA5
*
*
*
* <p>
* <p>
* <p>
* this test connects to real hardware via serial port
* Andrey Belomutskiy, (c) 2013-2020
* 2/22/2015
@ -25,6 +27,7 @@ import static com.rusefi.Timeouts.SECOND;
public class RealHwTest {
private static final Logging log = getLogging(RealHwTest.class);
private static final int STARTUP_SLEEP = 20;
private volatile static String firmwareVersion;
public static void main(String[] args) throws InterruptedException {
log.info("Sleeping " + STARTUP_SLEEP + " seconds to give OS time to connect VCP driver");
@ -92,9 +95,18 @@ public class RealHwTest {
private static void runRealHardwareTest(String port) {
LinkManager linkManager = new LinkManager().setCompositeLogicEnabled(false);
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, new EngineState.ValueCallback<String>() {
@Override
public void onUpdate(String firmwareVersion) {
RealHwTest.firmwareVersion = firmwareVersion;
}
});
IoUtil.realHardwareConnect(linkManager, port);
// first run tests which require real hardware
new HardwareTests(linkManager.getCommandQueue()).runRealHardwareTests();
if (firmwareVersion == null)
throw new IllegalStateException("firmwareVersion has not arrived");
// now run common part of the test which should be same on real hardware and simulator
new AutoTest(linkManager, linkManager.getCommandQueue()).mainTestBody();

View File

@ -1,6 +1,6 @@
package com.rusefi.config.generated;
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
// by class com.rusefi.output.FileJavaFieldsConsumer
import com.rusefi.config.*;
@ -1167,7 +1167,7 @@ public class Fields {
public static final int servoOutputPins8_offset = 3147;
public static final int showHumanReadableWarning_offset = 976;
public static final int showSdCardWarning_offset = 76;
public static final int SIGNATURE_HASH = 104376296;
public static final int SIGNATURE_HASH = 768848914;
public static final int silentTriggerError_offset = 1464;
public static final int slowAdcAlpha_offset = 2088;
public static final int sparkDwellRpmBins_offset = 332;
@ -1423,7 +1423,7 @@ public class Fields {
public static final char TS_IO_TEST_COMMAND = 'Z';
public static final char TS_ONLINE_PROTOCOL = 'z';
public static final char TS_OUTPUT_COMMAND = 'O';
public static final int TS_OUTPUT_SIZE = 288;
public static final int TS_OUTPUT_SIZE = 340;
public static final char TS_PAGE_COMMAND = 'P';
public static final char TS_PERF_TRACE_BEGIN = '_';
public static final char TS_PERF_TRACE_GET_BUFFER = 'b';
@ -1447,14 +1447,44 @@ public class Fields {
public static final char TS_SD_R_COMMAND = 'r';
public static final char TS_SD_W_COMMAND = 'w';
public static final char TS_SET_LOGGER_SWITCH = 'l';
public static final String TS_SIGNATURE = "rusEFI 2020.11.29.all.104376296";
public static final String TS_SIGNATURE = "rusEFI 2020.12.04.all.768848914";
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
public static final int TT_TT_1_16 = 50;
public static final int TT_TT_2JZ_1_12 = 29;
public static final int TT_TT_2JZ_3_34 = 25;
public static final int TT_TT_36_2_2_2 = 23;
public static final int TT_TT_3_1_CAM = 31;
public static final int TT_TT_60_2_VW = 20;
public static final int TT_TT_CHRYSLER_NGC_36_2_2 = 30;
public static final int TT_TT_DAIHATSU = 6;
public static final int TT_TT_FORD_ASPIRE = 1;
public static final int TT_TT_FORD_ST170 = 42;
public static final int TT_TT_GM_7X = 5;
public static final int TT_TT_GM_LS_24 = 27;
public static final int TT_TT_HONDA_1_24 = 21;
public static final int TT_TT_HONDA_1_4_24 = 13;
public static final int TT_TT_HONDA_4_24_1 = 10;
public static final int TT_TT_HONDA_CBR_600 = 28;
public static final int TT_TT_HONDA_K_12_1 = 46;
public static final int TT_TT_JEEP_18_2_2_2 = 37;
public static final int TT_TT_JEEP_4_CYL = 40;
public static final int TT_TT_MAZDA_DOHC_1_4 = 15;
public static final int TT_TT_MAZDA_MIATA_NA = 3;
public static final int TT_TT_MAZDA_MIATA_NB1 = 4;
public static final int TT_TT_MAZDA_SOHC_4 = 7;
public static final int TT_TT_MIATA_VVT = 33;
public static final int TT_TT_ONE = 18;
public static final int TT_TT_RENIX_44_2_2 = 44;
public static final int TT_TT_RENIX_66_2_2_2 = 45;
public static final int TT_TT_ROVER_K = 26;
public static final int TT_TT_SUBARU_7_6 = 36;
public static final int TT_TT_SUBARU_SVX = 49;
public static final int TT_TT_TOOTHED_WHEEL = 0;
public static final int TT_TT_TOOTHED_WHEEL_36_1 = 9;
public static final int TT_TT_TOOTHED_WHEEL_36_2 = 48;
public static final int TT_TT_TOOTHED_WHEEL_60_2 = 8;
public static final int TT_TT_VVT_BOSCH_QUICK_START = 47;
public static final int TT_TT_VVT_JZ = 17;
public static final int tunerStudioSerialSpeed_offset = 728;
public static final int twoWireBatchIgnition_offset = 1476;
public static final int twoWireBatchInjection_offset = 1476;

View File

@ -1,6 +1,6 @@
<roms>
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Sun Nov 29 03:21:47 UTC 2020 -->
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Fri Dec 04 16:38:30 UTC 2020 -->
<rom>
<romid>

View File

@ -1,5 +1,6 @@
package com.rusefi;
import com.rusefi.config.generated.Fields;
import com.rusefi.trigger.WaveState;
import com.rusefi.ui.engine.UpDownImage;
import com.rusefi.ui.util.FrameHelper;
@ -9,15 +10,18 @@ import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* This utility produces images of trigger signals supported by rusEfi
*
* This utility produces images of trigger signals supported by rusEFI
* <p>
* 06/23/15
* Andrey Belomutskiy, (c) 2013-2020
*/
@ -27,12 +31,63 @@ public class TriggerImage {
private static final String INPUT_FILE_NAME = "triggers.txt";
private static final String TOP_MESSAGE = StartupFrame.LINK_TEXT;
private static final String DEFAULT_WORK_FOLDER = ".." + File.separator + "unit_tests";
private static final int WHEEL_BORDER = 20;
private static final int WHEEL_DIAMETER = 500;
private static final int SMALL_DIAMETER = 420;
/**
* number of extra frames
*/
public static int EXTRA_COUNT = 1;
public static void main(String[] args) throws IOException, InvocationTargetException, InterruptedException {
private static String getTriggerName(TriggerWheelInfo triggerName) {
switch (triggerName.id) {
case Fields.TT_TT_FORD_ASPIRE:
return "Ford Aspire";
case Fields.TT_TT_VVT_BOSCH_QUICK_START:
return "Bosch Quick Start";
case Fields.TT_TT_MAZDA_MIATA_NA:
return "Miata NA";
case Fields.TT_TT_MAZDA_MIATA_NB1:
return "Miata NB";
case Fields.TT_TT_SUBARU_SVX:
return "Subaru SVX";
case Fields.TT_TT_HONDA_K_12_1:
return "Honda K 1/12";
case Fields.TT_TT_HONDA_1_24:
return "Honda 1+24";
case Fields.TT_TT_SUBARU_7_6:
return "Subaru 7/6";
case Fields.TT_TT_GM_LS_24:
return "GM 24x";
case Fields.TT_TT_GM_7X:
return "GM 7x";
case Fields.TT_TT_CHRYSLER_NGC_36_2_2:
return "Chrysler NGC 36/2/2";
case Fields.TT_TT_ONE:
return "Single Tooth";
case Fields.TT_TT_2JZ_1_12:
return "2JZ 1/12";
case Fields.TT_TT_JEEP_4_CYL:
return "Jeep 4 cylinder";
case Fields.TT_TT_JEEP_18_2_2_2:
return "18/2/2/2";
case Fields.TT_TT_RENIX_44_2_2:
return "44/2/2";
case Fields.TT_TT_RENIX_66_2_2_2:
return "66/2/2/2";
case Fields.TT_TT_TOOTHED_WHEEL_36_1:
return "36/1";
case Fields.TT_TT_TOOTHED_WHEEL_36_2:
return "36/2";
case Fields.TT_TT_TOOTHED_WHEEL_60_2:
return "60/2";
}
return triggerName.triggerName;
}
public static void main(String[] args) throws InvocationTargetException, InterruptedException {
final String workingFolder;
if (args.length != 1) {
workingFolder = DEFAULT_WORK_FOLDER;
@ -42,6 +97,7 @@ public class TriggerImage {
FrameHelper f = new FrameHelper();
JPanel content = new JPanel(new BorderLayout());
final TriggerPanel triggerPanel = new TriggerPanel() {
@Override
public Dimension getPreferredSize() {
@ -49,13 +105,18 @@ public class TriggerImage {
}
};
f.showFrame(triggerPanel);
JPanel topPanel = new JPanel(new FlowLayout());
content.add(topPanel, BorderLayout.NORTH);
content.add(triggerPanel, BorderLayout.CENTER);
f.showFrame(content);
f.getFrame().setSize(900, 700);
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
try {
generateImages(workingFolder, triggerPanel);
generateImages(workingFolder, triggerPanel, topPanel, content);
} catch (IOException e) {
throw new IllegalStateException(e);
}
@ -64,7 +125,7 @@ public class TriggerImage {
System.exit(-1);
}
private static void generateImages(String workingFolder, TriggerPanel trigger) throws IOException {
private static void generateImages(String workingFolder, TriggerPanel trigger, JPanel topPanel, JPanel content) throws IOException {
String fileName = workingFolder + File.separator + INPUT_FILE_NAME;
BufferedReader br = new BufferedReader(new FileReader(fileName));
@ -77,27 +138,34 @@ public class TriggerImage {
}
if (line.startsWith(TRIGGERTYPE)) {
readTrigger(br, line, trigger);
readTrigger(br, line, trigger, topPanel, content);
}
}
}
private static void readTrigger(BufferedReader reader, String line, TriggerPanel triggerPanel) throws IOException {
String[] tokens = line.split(" ");
String idStr = tokens[1];
String eventCountStr = tokens[2];
String triggerName = tokens[3];
System.out.println("Processing " + line + " " + idStr);
triggerPanel.tdcPosition = Double.parseDouble(tokens[4]);
int eventCount = Integer.parseInt(eventCountStr);
int id = Integer.parseInt(idStr);
// if (id != 20)
private static void readTrigger(BufferedReader reader, String line, TriggerPanel triggerPanel, JPanel topPanel, JPanel content) throws IOException {
TriggerWheelInfo triggerWheelInfo = TriggerWheelInfo.readTriggerWheelInfo(line, reader);
// if (triggerWheelInfo.id != Fields.TT_TT_SUBARU_7_6)
// return;
System.out.println("id=" + id + ", count=" + eventCount + ", name=" + triggerName);
List<WaveState> waves = readTrigger(reader, eventCount);
topPanel.removeAll();
JPanel firstWheelControl = createWheelPanel(triggerWheelInfo.getFirstWheeTriggerSignals());
topPanel.add(firstWheelControl);
topPanel.add(StartupFrame.createLogoLabel());
if (!triggerWheelInfo.waves.get(1).list.isEmpty()) {
JPanel secondWheelControl = createWheelPanel(triggerWheelInfo.getSecondWheeTriggerSignals());
topPanel.add(secondWheelControl);
}
UiUtils.trueLayout(topPanel);
UiUtils.trueLayout(content);
triggerPanel.tdcPosition = triggerWheelInfo.tdcPosition;
List<WaveState> waves = triggerWheelInfo.waves;
EngineReport re0 = new EngineReport(waves.get(0).list, 720, 720 * (1 + EXTRA_COUNT));
System.out.println(re0);
@ -134,20 +202,98 @@ public class TriggerImage {
if (isThirdVisible)
triggerPanel.add(upDownImage2);
triggerPanel.name = triggerName;
triggerPanel.id = id;
triggerPanel.name = getTriggerName(triggerWheelInfo);
// triggerPanel.id = "#" + triggerWheelInfo.id;
UiUtils.trueLayout(triggerPanel);
UiUtils.trueRepaint(triggerPanel);
content.paintImmediately(content.getVisibleRect());
new File(OUTPUT_FOLDER).mkdir();
UiUtils.saveImage(OUTPUT_FOLDER + File.separator + "trigger_" + id + ".png", triggerPanel);
UiUtils.saveImage(OUTPUT_FOLDER + File.separator + "trigger_" + triggerWheelInfo.id + ".png", content);
}
@NotNull
private static List<WaveState> readTrigger(BufferedReader reader, int count) throws IOException {
private static JPanel createWheelPanel(List<TriggerSignal> wheel) {
JPanel clock = new JPanel() {
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.black);
for (int i = 0; i < wheel.size(); i++) {
TriggerSignal current = wheel.get(i);
drawRadialLine(g, current.angle);
double nextAngle = i == wheel.size() - 1 ? 360 + wheel.get(0).angle : wheel.get(i + 1).angle;
int arcDuration = (int) (nextAngle - current.angle);
if (current.state == 1) {
g.drawArc(WHEEL_BORDER, WHEEL_BORDER, WHEEL_DIAMETER, WHEEL_DIAMETER, (int) current.angle, arcDuration);
} else {
int corner = WHEEL_BORDER + (WHEEL_DIAMETER - SMALL_DIAMETER) / 2;
g.drawArc(corner, corner, SMALL_DIAMETER, SMALL_DIAMETER, (int) current.angle, arcDuration);
}
}
}
@Override
public Dimension getPreferredSize() {
return new Dimension(WHEEL_DIAMETER + 2 * WHEEL_BORDER, WHEEL_DIAMETER + 2 * WHEEL_BORDER);
}
};
// clock.setBackground(Color.orange);
return clock;
}
private static void drawRadialLine(Graphics g, double angle) {
int center = WHEEL_BORDER + WHEEL_DIAMETER / 2;
// converting to 'drawArc' angle convention
angle = 90 + angle;
double radianAngle = Math.toRadians(angle);
int smallX = (int) (SMALL_DIAMETER / 2 * Math.sin(radianAngle));
int smallY = (int) (SMALL_DIAMETER / 2 * Math.cos(radianAngle));
int largeX = (int) (WHEEL_DIAMETER / 2 * Math.sin(radianAngle));
int largeY = (int) (WHEEL_DIAMETER / 2 * Math.cos(radianAngle));
g.drawLine(center + smallX, center + smallY, center + largeX, center + largeY);
}
@NotNull
static List<WaveState> convertSignalsToWaves(List<TriggerSignal> signals) {
/**
* todo: what does this code do? does this work?
* looks to be repeating trigger share couple of times? but not visible on images somehow?
*/
List<TriggerSignal> toShow = new ArrayList<>(signals);
for (int i = 1; i <= 2 + EXTRA_COUNT; i++) {
for (TriggerSignal s : signals)
toShow.add(new TriggerSignal(s.waveIndex, s.state, s.angle + i * 720));
}
List<WaveState> waves = new ArrayList<>();
waves.add(new WaveState());
waves.add(new WaveState());
waves.add(new WaveState());
for (TriggerSignal s : toShow) {
WaveState.trigger_value_e signal = (s.state == 0) ? WaveState.trigger_value_e.TV_LOW : WaveState.trigger_value_e.TV_HIGH;
WaveState waveState = waves.get(s.waveIndex);
waveState.handle(signal, s.angle);
}
for (WaveState wave : waves)
wave.wrap();
return waves;
}
@NotNull
static List<TriggerSignal> readSignals(BufferedReader reader, int count) throws IOException {
String line;
String[] tokens;
List<Signal> signals = new ArrayList<>();
List<TriggerSignal> signals = new ArrayList<>();
int index = 0;
while (index < count) {
@ -157,66 +303,25 @@ public class TriggerImage {
tokens = line.split(" ");
if (tokens.length < 4)
throw new IllegalStateException("Unexpected [" + line + "]");
String signalStr = tokens[2];
int signal = Integer.parseInt(signalStr);
String angleStr = tokens[3];
double angle = Double.parseDouble(angleStr);
int signalIndex = Integer.parseInt(tokens[2]);
int signalState = Integer.parseInt(tokens[3]);
double angle = Double.parseDouble(tokens[4]);
Signal s = new Signal(signal, angle);
TriggerSignal s = new TriggerSignal(signalIndex, signalState, angle);
// System.out.println(s);
signals.add(s);
index++;
}
List<Signal> toShow = new ArrayList<>(signals);
for (int i = 1; i <= 2 + EXTRA_COUNT; i++) {
for (Signal s : signals)
toShow.add(new Signal(s.signal, s.angle + i * 720));
}
List<WaveState> waves = new ArrayList<>();
waves.add(new WaveState());
waves.add(new WaveState());
waves.add(new WaveState());
for (Signal s : toShow) {
int waveIndex = s.signal / 1000;
WaveState.trigger_value_e signal = (s.signal % 1000 == 0) ? WaveState.trigger_value_e.TV_LOW : WaveState.trigger_value_e.TV_HIGH;
WaveState waveState = waves.get(waveIndex);
waveState.handle(signal, s.angle);
}
for (WaveState wave : waves)
wave.wrap();
return waves;
return signals;
}
public static int angleToTime(double prevUp) {
return (int) (prevUp);
}
private static class Signal {
private final int signal;
private final double angle;
public Signal(int signal, double angle) {
this.signal = signal;
this.angle = angle;
}
@Override
public String toString() {
return "Signal{" +
"signal=" + signal +
", angle=" + angle +
'}';
}
}
private static class TriggerPanel extends JPanel {
public String name = "";
public int id;
public String id;
public double tdcPosition;
@Override
@ -239,8 +344,9 @@ public class TriggerImage {
int h = getHeight();
g.drawString(name, 0, (int) (h * 0.75));
g.drawString("#" + id, 0, (int) (h * 0.9));
g.drawString(name, 50, (int) (h * 0.75));
if (id != null)
g.drawString(id, 0, (int) (h * 0.9));
g.setColor(Color.green);
int tdcFontSize = (int) (f.getSize() * 1.5);

View File

@ -0,0 +1,22 @@
package com.rusefi;
public class TriggerSignal {
final double angle;
final int state;
final int waveIndex;
public TriggerSignal(int waveIndex, int state, double angle) {
this.waveIndex = waveIndex;
this.state = state;
this.angle = angle;
}
@Override
public String toString() {
return "Signal{" +
"signal=" + waveIndex +
", state=" + state +
", angle=" + angle +
'}';
}
}

View File

@ -0,0 +1,97 @@
package com.rusefi;
import com.rusefi.config.generated.Fields;
import com.rusefi.trigger.WaveState;
import org.jetbrains.annotations.NotNull;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
class TriggerWheelInfo {
final int id;
final double tdcPosition;
final String triggerName;
final List<WaveState> waves;
final List<TriggerSignal> signals;
public TriggerWheelInfo(int id, double tdcPosition, String triggerName, List<WaveState> waves, List<TriggerSignal> signals) {
this.id = id;
this.tdcPosition = tdcPosition;
this.triggerName = triggerName;
this.waves = waves;
this.signals = signals;
}
static TriggerWheelInfo readTriggerWheelInfo(String line, BufferedReader reader) throws IOException {
String[] tokens = line.split(" ");
String idStr = tokens[1];
int eventCount = Integer.parseInt(tokens[2]);
String triggerName = tokens[3];
System.out.println("Processing " + line + " " + idStr);
int id = Integer.parseInt(idStr);
double tdcPosition = Double.parseDouble(tokens[4]);
System.out.println("id=" + id + ", count=" + eventCount + ", name=" + triggerName);
List<TriggerSignal> signals = TriggerImage.readSignals(reader, eventCount);
List<WaveState> waves = TriggerImage.convertSignalsToWaves(signals);
return new TriggerWheelInfo(id, tdcPosition, triggerName, waves, signals);
}
@NotNull
List<TriggerSignal> getFirstWheeTriggerSignals() {
List<TriggerSignal> firstWheel = getTriggerSignals(0);
if (isFirstCrankBased()) {
return takeFirstHalf(firstWheel);
} else {
return compressAngle(firstWheel);
}
}
@NotNull
private List<TriggerSignal> getTriggerSignals(int index) {
return signals.stream().filter(signal -> signal.waveIndex == index).collect(Collectors.toList());
}
@NotNull
private List<TriggerSignal> takeFirstHalf(List<TriggerSignal> wheel) {
return wheel.stream().filter(triggerSignal -> triggerSignal.angle < 360).collect(Collectors.toList());
}
/**
* this is about converting 720 cycle of crank wheel shape into normal 360 circle range
*/
@NotNull
private static List<TriggerSignal> compressAngle(List<TriggerSignal> wheel) {
return wheel.stream().map(triggerSignal -> new TriggerSignal(triggerSignal.waveIndex, triggerSignal.state, triggerSignal.angle / 2)).collect(Collectors.toList());
}
public List<TriggerSignal> getSecondWheeTriggerSignals() {
List<TriggerSignal> secondWheel = getTriggerSignals(1);
if (isSecondCamBased()) {
return compressAngle(secondWheel);
} else {
return takeFirstHalf(secondWheel);
}
}
private boolean isFirstCrankBased() {
return id == Fields.TT_TT_GM_LS_24 ||
id == Fields.TT_TT_HONDA_K_12_1 ||
id == Fields.TT_TT_RENIX_44_2_2 ||
id == Fields.TT_TT_RENIX_66_2_2_2 ||
id == Fields.TT_TT_MIATA_VVT ||
id == Fields.TT_TT_GM_7X;
}
private boolean isSecondCamBased() {
return id == Fields.TT_TT_MAZDA_MIATA_NA ||
id == Fields.TT_TT_MAZDA_DOHC_1_4 ||
id == Fields.TT_TT_FORD_ASPIRE;
}
}

View File

@ -1,11 +1,13 @@
.container {
max-width: 800px; }
max-width: 800px;
overflow-y: hidden;
}
.header {
/* margin-top: 6rem; */
background-image: linear-gradient( 180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.25) 100%),url('../images/site/bg.jpg');
background-attachment:fixed;
/* background-size: cover; */
background-size: 100%;
background-size: cover;
background-repeat: no-repeat;
padding-top: 6rem;
text-align: center; }
.value-prop {
@ -94,13 +96,22 @@
margin-left: 2rem;
}
.footer {
padding-top: 1rem;
margin-bottom: 1rem;
background-color: #222;
padding-top: 2rem;
padding-bottom: 1rem;
text-align: center;
}
.footer a{
margin-left: 1rem;
margin-right: 1rem;
}
/* Larger than phone */
@media (min-width: 550px) {
.container {
overflow-y: visible;
}
.header {
/* margin-top: 18rem; */
padding-top: 18rem;}
@ -127,6 +138,9 @@
/* Larger than tablet */
@media (min-width: 750px) {
.container {
overflow-y: visible;
}
/* Navbar */
.navbar + .docs-section {
border-top-width: 0; }
@ -143,7 +157,7 @@
.navbar-spacer {
display: none; }
.navbar > .container {
width: 100%; }
width: 80%; }
.navbar-list {
list-style: none;
margin-bottom: 0; }
@ -254,7 +268,8 @@
}
.dl-link {
margin-left: 25rem; }
/* margin-left: 25rem; */
float: right;}
td.oddrow {
background-color: rgb(230, 230, 230);

View File

@ -89,11 +89,11 @@
<ul class="popover-list">
<li class="popover-item">
<a class="popover-link" href="index.html#microrusefi">microRusEFI</a>
<!-- </li> -->
<!-- <li class="popover-item">
<a class="popover-link" href="index.html#proteus">Proteus</a>
</li>
<li class="popover-item">
<a class="popover-link" href="https://github.com/mck1117/proteus/">Proteus</a>
</li>
<!--<li class="popover-item">
<a class="popover-link" href="#buttons">Frankenstein</a>
</li>
<li class="popover-item">
@ -162,48 +162,48 @@
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='evenrow'>Wasted Ignition</td>
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'>Direct Injection</td>
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='evenrow'>Rotary Engines</td>
<td class='evenrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
<td>Acceleration enrichment - wall wetting/fuel trip/tau factor</td>
<td><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'>Closed Loop Fueling</td>
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='evenrow'>Electronic Throttle Body</td>
<td class='evenrow'>Wasted Ignition</td>
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'>Knock Sensing</td>
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
<td class='oddrow'>Electronic Throttle Body</td>
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='evenrow'>Boost Control</td>
<td class='evenrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'>Launch Control</td>
<td class='oddrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'><a href='https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers'>20+ OEM triggers supported</a></td>
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='evenrow'>Automatic Transmission Control</td>
<td class='evenrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'><a href='https://github.com/rusefi/rusefi/wiki/GDI-status'>Direct Injection</a></td>
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='evenrow'>Flat Shifting</td>
<td class='evenrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td class='oddrow'>Automatic Transmission Control</td>
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
</tr>
<tr>
<td>Acceleration enrichment - wall wetting/fuel trip/tau factor</td>
<td><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
<td class='oddrow'>Rotary Engines</td>
<td class='oddrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
</tr>
</tbody>
</table>
@ -259,15 +259,7 @@
<h6 class="docs-header">Shop</h6>
<p>The following rusEFI hardware is currently available on eBay:</p>
<div class="docs-example">
<table class="u-full-width">
<!-- <thead>
<tr>
<th>picture</th>
<th>item</th>
<th>description</th>
<th>link</th>
</tr>
</thead> -->
<table class="u-half-width">
<tbody>
<tr>
<td><img src="images/site/38p_board.jpg" width="250px" alt=""></td>

View File

@ -1,7 +1,7 @@
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger" />
<meta http-equiv="refresh" content="0; url=https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" />
</head>
<body>
@ -9,7 +9,7 @@
<br><br><br><br><br>
<a href="https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger">https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger</a>
<a href="https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers">https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers</a>
</center>

View File

@ -21,6 +21,8 @@
#define EFI_LAUNCH_CONTROL TRUE
#define EFI_DYNO_VIEW TRUE
#define EFI_BOOST_CONTROL TRUE
#define EFI_IDLE_CONTROL TRUE

View File

@ -1,6 +1,6 @@
/**
* @file main.cpp
* @file First step towards unit-testing rusEfi algorithms
* @file Unit tests (and some integration tests to be fair) of rusEFI
*
* @author Andrey Belomutskiy, (c) 2012-2020
*/
@ -32,14 +32,23 @@ efitick_t getTimeNowNt(void) {
LoggingWithStorage sharedLogger("main");
extern bool printTriggerDebug;
extern bool printTriggerTrace;
bool verboseMode = false;
trigger_type_e focusOnTrigger = TT_UNUSED;
GTEST_API_ int main(int argc, char **argv) {
// printTriggerDebug = true;
if (focusOnTrigger != TT_UNUSED) {
printTriggerDebug = true;
printTriggerTrace = true;
}
// resizeMap();
printf("Success 20200510\r\n");
printf("Success 20201203\r\n");
printAllTriggers();
if (focusOnTrigger != TT_UNUSED) {
return;
}
testing::InitGoogleTest(&argc, argv);
// uncomment if you only want to run selected tests

View File

@ -0,0 +1,114 @@
#include "engine_test_helper.h"
#include "engine_controller.h"
#include "dynoview.h"
#include "vehicle_speed.h"
#include <gtest/gtest.h>
void printResults(DynoView *dut) {
#ifdef DBG_TESTS
std::cerr.precision(32);
std::cerr << "Acceleration m/s " << dut->getAcceleration() << std::endl;
std::cerr << "Car force in N " << dut->getEngineForce() << std::endl;
std::cerr << "Car power in KW "<< dut->getEnginePower() << std::endl;
std::cerr << "Car HP " << dut->getEngineHP() << std::endl;
std::cerr << "Car Torque at wheel Nm " << dut->getEngineTorque() << std::endl;
#else
(void)dut;
#endif
}
TEST(DynoView, VSS_T1) {
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
DynoView dut;
INJECT_ENGINE_REFERENCE(&dut);
// Test Speed trashold
engineConfiguration->vehicleWeight = 900;
eth.moveTimeForwardMs(50);
setMockVehicleSpeed(18.0);
dut.update(ICU);
eth.smartMoveTimeForwardSeconds(20);
setMockVehicleSpeed(126.0);
dut.update(ICU);
ASSERT_EQ(1.5, dut.getAcceleration());
}
TEST(DynoView, algo) {
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
DynoView dut;
INJECT_ENGINE_REFERENCE(&dut);
// Test Speed trashold
engineConfiguration->vehicleWeight = 900;
//to capture vss
setMockVehicleSpeed(35*3.6);
dut.update(ICU);
dut.setAcceleration(1.5);
dut.updateHP();
ASSERT_EQ(1.5, dut.getAcceleration());
ASSERT_EQ(1350, dut.getEngineForce());
ASSERT_EQ(47, dut.getEnginePower());
ASSERT_EQ(63, dut.getEngineHP());
printResults(&dut);
}
TEST(DynoView, VSS_fast) {
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
DynoView dut;
INJECT_ENGINE_REFERENCE(&dut);
// Test Speed trashold
engineConfiguration->vehicleWeight = 900; //kg
engine->rpmCalculator.mockRpm = 2200;
eth.moveTimeForwardMs(50);
setMockVehicleSpeed(50.0);
dut.update(CAN);
//delay 50ms
eth.moveTimeForwardMs(50);
setMockVehicleSpeed(50.252);
dut.update(CAN);
ASSERT_EQ(1259, dut.getEngineForce());
printResults(&dut);
}
TEST(DynoView, VSS_Torque) {
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
DynoView dut;
INJECT_ENGINE_REFERENCE(&dut);
// Test Speed trashold
engineConfiguration->vehicleWeight = 900; //kg
engine->rpmCalculator.mockRpm = 2200;
eth.moveTimeForwardMs(50);
setMockVehicleSpeed(80.0);
dut.update(CAN);
//delay 50ms
eth.moveTimeForwardMs(50);
setMockVehicleSpeed(80.504);
dut.update(CAN);
ASSERT_EQ(242, dut.getEngineTorque());
printResults(&dut);
}

Some files were not shown because too many files have changed in this diff Show More