diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index dd4829f273..fac7b94dca 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -628,6 +628,8 @@ case MT_SUBY_DENSO: return "MT_SUBY_DENSO"; case MT_GM_3_BAR: return "MT_GM_3_BAR"; +case MT_MPX4100: + return "MT_MPX4100"; } return NULL; } diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 4d6a57ba26..69c279321e 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -536,6 +536,9 @@ typedef enum { typedef enum { MT_CUSTOM = 0, MT_DENSO183 = 1, + /** + * 20 to 250 kPa (2.9 to 36.3 psi) 0.2 to 4.9 V OUTPUT + */ MT_MPX4250 = 2, MT_HONDA3BAR = 3, MT_DODGE_NEON_2003 = 4, @@ -548,6 +551,11 @@ typedef enum { */ MT_GM_3_BAR = 6, + /** + * 20 to 105 kPa (2.9 to 15.2 psi) 0.3 to 4.9 V Output + */ + MT_MPX4100 = 7, + Force_4b_cranking_map_type = ENUM_32_BITS, } air_pressure_sensor_type_e; diff --git a/firmware/controllers/sensors/map.cpp b/firmware/controllers/sensors/map.cpp index 271b5dbe80..1e15a3a684 100644 --- a/firmware/controllers/sensors/map.cpp +++ b/firmware/controllers/sensors/map.cpp @@ -45,6 +45,8 @@ static FastInterpolation gm3bar(0.631, 40, 4.914, 304); static FastInterpolation mpx4250(0, 8, 5, 260); +static FastInterpolation mpx4100(0.3, 20, 4.9, 105); + static FastInterpolation dodgeNeon2003(0.5, 0, 4.5, 100); /** @@ -70,6 +72,8 @@ float decodePressure(float voltage, air_pressure_sensor_config_s * config) { return subyDenso.getValue(voltage); case MT_GM_3_BAR: return gm3bar.getValue(voltage); + case MT_MPX4100: + return mpx4100.getValue(voltage); default: firmwareError("Unknown MAP type: %d", config->type); return NAN; diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 721caf86a3..5fb20cf168 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -291,5 +291,5 @@ int getRusEfiVersion(void) { return 123; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE[0] * 0 != 0) return 3211; // this is here to make the compiler happy about the unused array - return 20150815; + return 20150816; } diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index c003994ab9..7ddffb6f43 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -67,7 +67,7 @@ page = 1 map_samplingWindow = array, F32, 208, [8], "deg", 1, 0, 0.0, 90, 2 map_sensor_valueAt0 = scalar, F32, 240, "kpa", 1, 0, 0, 450, 2 map_sensor_valueAt5 = scalar, F32, 244, "kpa", 1, 0, 0, 450, 2 - map_sensor_type = bits, U32, 248, [0:2] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "INVALID" + map_sensor_type = bits, U32, 248, [0:2] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "MPX4100" map_sensor_hwChannel = bits, U32, 252, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" clt_tempC_1 = scalar, F32, 256, "*C", 1, 0, -40, 200, 1 clt_tempC_2 = scalar, F32, 260, "*C", 1, 0, -40, 200, 1