I thought it may be an interesting project to adapt a MAF from a Boxster (Part No. 2009 2010 2011 2012)
At first I was just going to 3D print an adaptor to go between the air filter box and the MAF, and use a reducer to go from the MAF outlet to the J-boot. Then use an Arduino board to convert the MAF output to the equivalent AFM output. However I did a trial fitment and the MAF was going to be too big to fit in the same space as the AFM. So instead I opted to design a new housing for the internals of the MAF and have now completed that design, printed it and fitted it to my 951.
The finished MAF.
Fitted to the car.
Hit the limit for this post, more to come...
951 MAF using Boxster MAF components
-
markagsmith5
- Posts: 42
- Joined: Sat May 07, 2022 10:11 pm
- Location: Redlands, QLD, Australia
- Has thanked: 9 times
- Been thanked: 30 times
You need to be registered and logged in to download files. Registration is free and easy!
1987 944 Turbo
2024 BYD Seal Premium
2024 BYD Seal Premium
-
markagsmith5
- Posts: 42
- Joined: Sat May 07, 2022 10:11 pm
- Location: Redlands, QLD, Australia
- Has thanked: 9 times
- Been thanked: 30 times
... continued
To determine the relationship between the MAF and AFM outputs, I connected the MAF to the inlet of the AFM using the below adapter and ran the engine capturing the data with an Arduino R4 Minima and a laptop
This is a graph of both the MAF and AFM output v time
Graph of the AFM output v the MAF output after sorting the data by AFM output. Then inserted a 2nd degree polynomial trend line using LiberOffice Calc. Also tried a linear trend line but it didn't quite fit as well as the polynomial.
The original graph with the addition of data calculated using the polynomial.
The Arduino code to capture the data above
The Arduino code to capture the data above
You need to be registered and logged in to download files. Registration is free and easy!
1987 944 Turbo
2024 BYD Seal Premium
2024 BYD Seal Premium
-
markagsmith5
- Posts: 42
- Joined: Sat May 07, 2022 10:11 pm
- Location: Redlands, QLD, Australia
- Has thanked: 9 times
- Been thanked: 30 times
... and more
The circuit diagram used to capture the comparison.
The completed MAF showing the Arduino R4 with a micro SD card sensor and breadboard incorporating the circuit belowI took a few resistance measurements of the NTC from both the MAF and AFM at various temperatures and there seemed to be about a 250 ohm difference between the two, hence the 250 ohm resistor.
To get the 12v supply required by the MAF I ran a wire from connector T21 pin 3 to a new female spade connector inserted into the vacant terminal 5 spot in the AFM connector.
The Arduino code for the MAF I understand that the original AFM measures the air flow volume and the MAF measures (as the name suggests) the mass air flow. So I guess the question are
Should there be adjustments for temperature and/or air pressure? Maybe add an Arduino air pressure sensor?
What about relative humidity? Maybe incorporate an Arduino humidity sensor?
With regard to the temperature, would a simple fix be to just use a fixed resistor? The temperature on the day I ran the test to compare the MAF with the AFM, the ambient temperature was 25 °C and the relative humidity 42%.
In the next post I'll show the parts required to construct the MAF
To get the 12v supply required by the MAF I ran a wire from connector T21 pin 3 to a new female spade connector inserted into the vacant terminal 5 spot in the AFM connector.
The Arduino code for the MAF I understand that the original AFM measures the air flow volume and the MAF measures (as the name suggests) the mass air flow. So I guess the question are
Should there be adjustments for temperature and/or air pressure? Maybe add an Arduino air pressure sensor?
What about relative humidity? Maybe incorporate an Arduino humidity sensor?
With regard to the temperature, would a simple fix be to just use a fixed resistor? The temperature on the day I ran the test to compare the MAF with the AFM, the ambient temperature was 25 °C and the relative humidity 42%.
In the next post I'll show the parts required to construct the MAF
You need to be registered and logged in to download files. Registration is free and easy!
1987 944 Turbo
2024 BYD Seal Premium
2024 BYD Seal Premium
-
markagsmith5
- Posts: 42
- Joined: Sat May 07, 2022 10:11 pm
- Location: Redlands, QLD, Australia
- Has thanked: 9 times
- Been thanked: 30 times
The Boxster MAF
The majority of the components prior to assembly, excluding the SD card sensor and breadboard. I hacked up the Boxster MAF and extracted the actual sensor module and also cut out the vane that followed the sensor. The stainless steel pipe is 80 mm OD, 1.5 mm thick and 60 mm long. Assembled all with super glue.
I did forget in a previous post with the Arduino code, that 2 or 3 files can be added to the SD card.
COEFF.TXT with 3 lines containing the coefficients, a, b and c that can be used to override the default values in the Arduino code used in a polynomial equation, a*x^2+b*x+c, to convert the MAF output to the equivalent AFM output.
Content example
-0.0005717624
1.8728749
-342.264556
NEXTFILE.TXT with a single line containing a sequence number to be used in the name of a log file to be written to the SD card. The log file name is then MAF00001.LOG. If NEXTFILE.TXT does not exist then it will be created if logging is required.
Content example
1
LOGDATA.TXT contents irrelevant as this is a flag to turn logging on. If it doesn't exist no logging will occur. From some preliminary tests, logging seems to add about 7 ms to each cycle.
I did forget in a previous post with the Arduino code, that 2 or 3 files can be added to the SD card.
COEFF.TXT with 3 lines containing the coefficients, a, b and c that can be used to override the default values in the Arduino code used in a polynomial equation, a*x^2+b*x+c, to convert the MAF output to the equivalent AFM output.
Content example
-0.0005717624
1.8728749
-342.264556
NEXTFILE.TXT with a single line containing a sequence number to be used in the name of a log file to be written to the SD card. The log file name is then MAF00001.LOG. If NEXTFILE.TXT does not exist then it will be created if logging is required.
Content example
1
LOGDATA.TXT contents irrelevant as this is a flag to turn logging on. If it doesn't exist no logging will occur. From some preliminary tests, logging seems to add about 7 ms to each cycle.
You need to be registered and logged in to download files. Registration is free and easy!
1987 944 Turbo
2024 BYD Seal Premium
2024 BYD Seal Premium
-
markagsmith5
- Posts: 42
- Joined: Sat May 07, 2022 10:11 pm
- Location: Redlands, QLD, Australia
- Has thanked: 9 times
- Been thanked: 30 times
Seems to run well, and yes I did install a wideband AFR.
1987 944 Turbo
2024 BYD Seal Premium
2024 BYD Seal Premium
- PSU_Crash
- Posts: 289
- Joined: Sun Apr 06, 2025 4:34 pm
- Location: Decatur, Tennessee
- Has thanked: 192 times
- Been thanked: 113 times
That is a lot of work, for sure!
I have to ask, why did you decide to go with the Boxster MAF instead of a readily available MAF kit? Aside from the fun of geeking out and creating this, of course. I've been guilty of such endeavors just to see if I could make it work.
I have to ask, why did you decide to go with the Boxster MAF instead of a readily available MAF kit? Aside from the fun of geeking out and creating this, of course. I've been guilty of such endeavors just to see if I could make it work.
'86 Zermatt Silver 944 N/A 
'86 Mitsubishi Starion - Purpose built SM class Autocross car
'87 Chrysler Conquest - Mid LS Swap
'86 Mitsubishi Starion - Purpose built SM class Autocross car
'87 Chrysler Conquest - Mid LS Swap
-
markagsmith5
- Posts: 42
- Joined: Sat May 07, 2022 10:11 pm
- Location: Redlands, QLD, Australia
- Has thanked: 9 times
- Been thanked: 30 times
Tbh, I didn't even think to look for a kit, but regardless I thought it would be a challenge and given that I retired 5 years ago I like to keep occupied and exercise my brain a bit.
I think, apart from my time, this cost me < $150 AUD. I also note that some of the kits (maybe all) require a new set of chips, but I may be wrong.
I think, apart from my time, this cost me < $150 AUD. I also note that some of the kits (maybe all) require a new set of chips, but I may be wrong.
1987 944 Turbo
2024 BYD Seal Premium
2024 BYD Seal Premium
- Tom
- Site Admin
- Posts: 8989
- Joined: Fri Jun 25, 2021 2:04 pm
- Location: Silicon Valley, CA
- Has thanked: 947 times
- Been thanked: 4040 times
- Contact:
Awesome project! Huge props to you! I'm drawn to these types of projects, but take my comments as peanut gallery thoughts. I don't want to be one of those internet guys who have never done it, telling the guy who actually did it, how to do it.
Were/are you able to capture flow data for the AFM and MAF at the same time? The more/better data you can get on the AFM and MAF outputs for the same flow/conditions, the better the results I'd say. The DME is designed around the AFM signal curve, with modifiers for air temp, coolant temp, altitude sensor, battery voltage, etc. As such, the more you can make your output match the AFM load and temp signals under all conditions, the better the car will likely run. Are you calculating the conversion real time in the arduino? If you are using a best fit curve, have you considered more of a look up table with interpolation approach? I've started using Esp32 devices for things that benefit from brute force processing power. The R4 is faster than the original ATMega Uno, but the Esp32 takes it to a whole new level. Works with the Arduino IDE too.
https://store-usa.arduino.cc/products/n ... ZYEALw_wcB
Were/are you able to capture flow data for the AFM and MAF at the same time? The more/better data you can get on the AFM and MAF outputs for the same flow/conditions, the better the results I'd say. The DME is designed around the AFM signal curve, with modifiers for air temp, coolant temp, altitude sensor, battery voltage, etc. As such, the more you can make your output match the AFM load and temp signals under all conditions, the better the car will likely run. Are you calculating the conversion real time in the arduino? If you are using a best fit curve, have you considered more of a look up table with interpolation approach? I've started using Esp32 devices for things that benefit from brute force processing power. The R4 is faster than the original ATMega Uno, but the Esp32 takes it to a whole new level. Works with the Arduino IDE too.
