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]"])