MAF Sensor
Overview
The Mass Air Flow (MAF) sensor measures the mass of air entering the engine. This may optionally be used to calculate the amount of fuel required to maintain the desired air/fuel ratio.
The MAF sensor is typically a hot wire or hot film sensor, which heats a wire or film to a constant temperature and measures the cooling effect of the air flow. The cooling effect is proportional to the mass of air flowing past the sensor.
The voltage output of the MAF sensor is often non-linear, so the ECU may apply a calibration curve to convert the raw voltage into a more useful linearized form.
MAF Sensor Options
Option | Description |
---|---|
Use MAF as the “Engine Load” measurement? | |
Set to 0 if using MAF for Engine Load. | |
Do not set if using MAF for Engine Load. | |
Select an input channel to use for MAF. This could be an Analogue input or another source such as CAN bus. | |
Swaps the bytes from the 16bit MAF source. This may be required if the source is from a little-endian (Intel) 16bit CAN signal. | |
Raw MAF sensor reading as obtained from the MAF source. | |
If ON, the MAF sensor reading is not compensated for engine speed. Otherwise, the MAF sensor reading is multiplied by the inverse engine speed and divided down. | |
If ON, the MAF sensor reading is not multiplied by 16, following speed compensation. This option does nothing if |
|
MAF Sensor Table to convert raw MAF sensor voltage into a linearized form. | |
Number of internal teeth over which to average the MAF sensor readings when running. Typically this would be set to 1, 2 or 3 revolutions; the actual value to set here would depend upon the number of internal teeth per revolution which should be configured in the |
|
Minimum MAF sensor reading, below which an error condition is indicated. | |
Maximum MAF sensor reading, above which an error condition is indicated. | |
Linearized MAF reading, scaled using MAF (Load) Scalar. | |
Linearized MAF reading, scaled using MAF Scalar. | |
Compensated MAF reading, scaled using MAF (Load) Scalar. | |
Compensated MAF reading, scaled using MAF Scalar. | |
Indicates an error condition with the MAF sensor. |
Flowchart
flowchart TD MAFMIN@{ shape: diamond, label: "< MAF Min"} MAFMAX@{ shape: diamond, label: "> MAF Max"} MAFNSPD@{ shape: diamond, label: "MAF no Speed comp"} NOMAFMUL@{ shape: diamond, label: "MAF no X16"} MAFRAW["MAF Raw"] MAF_Source(["MAF source"])-- RUNNING? -->MAFSMP(["MAF samples"]) MAFSMP-->MAFAVG["Average"]-->MAFRAW MAFCAL(["MAF Cal [teeth]"])--"Window Size"-->MAFAVG MAF_Source--"NOT RUNNING"-->MAFRAW MAFRAW-->MAFMIN MAFMIN-- Y -->ERROR_MAF(["Error MAF"]) MAFMIN-- N -->MAFMAX MAFMAX-- Y -->ERROR_MAF(["Error MAF"]) MAFMAX-- N -->MAFTBLW["MAF Sensor Table"] SPEEDN(["− Engine Speed"]) MAFTBLW-->MAFLIN(["MAF Linear [MAF Load Units]"]) MAFLIN-->MAFLINSCALED(["MAF Linear Scaled [MAF Units]"]) MAFLIN-->MAFNSPD MAFNSPD-- N -->SPEEDMUL["×"] MAFNSPD-- Y -->MAFLOAD SPEEDN-->SPEEDMUL SPEEDMUL-->NOMAFMUL NOMAFMUL-- N -->MUL16["×16"] NOMAFMUL-- Y -->MAFLOAD MUL16--> Overflow -->ERROR_MAF MUL16-->MAFLOAD MAFLOAD(["MAF as Load [MAF (Load)]"]) MAFLOAD-- "MAF AND NOT MAP AND NOT "Load Source"" -->LOAD(["Engine Load [Load]"]) MAFLOAD-->MAFLOAD_SCALED(["MAF as Load Scaled [MAF Units]"])