diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 6c7947cc57..47fdf20671 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -121,6 +121,8 @@ case MT_MPX4250A: return "MT_MPX4250A"; case MT_SUBY_DENSO: return "MT_SUBY_DENSO"; +case MT_MAZDA_1_BAR: + return "MT_MAZDA_1_BAR"; case MT_TOYOTA_89420_02010: return "MT_TOYOTA_89420_02010"; case MT_BOSCH_2_5: diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 18c8b8e3f4..de17b3afe1 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -785,6 +785,8 @@ typedef enum { MT_BOSCH_2_5 = 10, + MT_MAZDA_1_BAR = 11, + Force_4_bytes_size_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 4b9459b5e1..444ae6ff96 100644 --- a/firmware/controllers/sensors/map.cpp +++ b/firmware/controllers/sensors/map.cpp @@ -71,6 +71,11 @@ static FastInterpolation dodgeNeon2003(0.4 /* volts */, 15.34 /* kPa */, 4.5 /* static FastInterpolation densoToyota(3.7 - 2 /* volts */, 33.322271 /* kPa */, 3.7 /* volts */ , 100 /* kPa */); +/** + * Open question how to get this Miata NB2 sensor read MAP + */ +static FastInterpolation mazda1bar(0 /* volts */, 15 /* kPa */, 5 /* volts */ , 115 /* kPa */); + /** * Bosch 2.5 Bar TMap Map Sensor with IAT */ @@ -100,6 +105,7 @@ float decodePressure(float voltage, air_pressure_sensor_config_s * mapConfig DEC case MT_TOYOTA_89420_02010: case MT_MPX4100: case MT_BOSCH_2_5: + case MT_MAZDA_1_BAR: return getDecoder(mapConfig->type)->getValue(voltage); default: firmwareError(CUSTOM_ERR_MAP_TYPE, "Unknown MAP type: p %d", mapConfig->type); @@ -201,6 +207,8 @@ static FastInterpolation *getDecoder(air_pressure_sensor_type_e type) { return &gm3bar; case MT_TOYOTA_89420_02010: return &densoToyota; + case MT_MAZDA_1_BAR: + return &mazda1bar; case MT_BOSCH_2_5: return &bosch2_5; default: diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 0b45a00e5c..dfcadd2119 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -310,7 +310,7 @@ struct gppwm_channel gppwm_table_t table; end_struct -custom air_pressure_sensor_type_e 4 bits, U32, @OFFSET@, [0:7] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "type11", "type12", "type13" +custom air_pressure_sensor_type_e 4 bits, U32, @OFFSET@, [0:7] "Custom", "DENSO183", "MPX4250", "HONDA3BAR", "NEON_2003", "22012AA090", "3 Bar", "MPX4100", "Toyota 89420-02010", "MPX4250A", "Bosch 2.5", "Mazda1Bar", "type12", "type13" ! ! lower 16 values are used on stm32 rusEfi, values above 16 are related to Kinetis work in progress !